360 likes | 872 Views
PROGRAMMING LANGUAGE. USING C/ C++. Tentang saya. Nur Cahyo Wibowo, S.Kom S1 Teknik Informatika ITS 1998 – 2003 HP 081330266109 Email: bluejundi@upnjatim.ac.id atau bluejundi@yahoo.com MK : BP, BPL, Sistem Digital, DAA, Pemeliharaan PL, Arsitektur PL Sedang menempuh S2 di ITS 2006.
E N D
PROGRAMMING LANGUAGE USING C/ C++
Tentang saya • Nur Cahyo Wibowo, S.Kom • S1 Teknik Informatika ITS 1998 – 2003 • HP 081330266109 • Email: bluejundi@upnjatim.ac.id atau bluejundi@yahoo.com • MK : BP, BPL, Sistem Digital, DAA, Pemeliharaan PL, Arsitektur PL • Sedang menempuh S2 di ITS 2006
BAHASA PEMROGRAMAN • MATA KULIAH DASAR INFORMATIKA • PRASYARAT PEMILIHAN PROGRAM STUDI [ SI MAUPUN TF ] • PENILAIAN: • UTS 30 % • UAS 40 % • QUIZ 15 % • TUGAS 15 %
SOFTWARE O/ S HARDWARE PROGRAMMING GAMES APPLICATIONS BRAINWARE PROLOG: THE COMPUTER SYSTEM
PROGRAMMING FRAMEWORK FILE APLIKASI COMPILING RUNNING SOURCE CODE MEMORI/ RAM OPERATING CODING USER PROGRAMMER
LANGUAGE GENERATION • 1ST GENERATION ASSEMBLER • 2ND GENERATION FORTRAN, C, PASCAL, BASIC • 3RD GENERATION DELPHI, JAVA, VISUAL BASIC • 4TH GENERATION SQL (STRUCTURED QUERY LANGUAGE)
ALGORITHM • Adalah urutan langkah-langkah logika yang menyatakan suatu tugas dalam menyelesaikan suatu masalah atau problem. • Contoh: Buat algoritma untuk menentukan apakah suatu bilangan merupakan bilangan ganjil atau bilangan genap. Algoritmanya : • Bagi bilangan dengan bilangan 2. • Hitung sisa hasil bagi pada langkah 1. • Bila sisa hasil bagi sama dengan 0 maka bilangan itu adalah bilangan genap tetapi bila sisa hasil bagi sama dengan 1 maka bilangan itu adalah bilangan ganjil.
FLOWCHART • BIASA DISEBUT DENGAN DIAGRAM ALIR. • SALAH SATU METODE UNTUK MEREPRESENTASIKAN ALGORITMA SELAIN PSEUDOCODE DAN URUT-URUTAN LANGKAH. • MENGGUNAKAN SIMBOL-SIMBOL BANGUN DATAR BESERTA ANAK PANAH SEBAGAI PENUNJUK ARAH PROSES.
Start A Input Bilangan Apakah Sisa = 0 T Hitung sisa bagi antara bilangan dengan angka 2 Y Cetak Genap Cetak Ganjil A End Contoh: Flowchart untuk menentukan bilangan genap atau ganjil
AKAR PERS. KUADRAT • Mulai • Masukkan nilai variabel A, B, C • Hitung D =B2 – 4*A*C • Jika D = 0 maka X1 = X2 = – B/(2*A) Tapi jika D < 0 maka X1, X2 Imaginer selain itu maka X1,2 = (– B ± √D)/(2*A) • TampilkanX1, X2 • Selesai
Start Input Nilai A, B, C D = B2 – 4*A*C D < 0 ? D = 0 ? X = (– B ± √D)/(2*A) T T Y Y X1 = X2 = – B/(2*A) X1, X2 Imaginer Cetak X1, X2 End DIKET: Y = AX2 + BX + C FLOWCHART AKAR PERSAMAAN KUADRAT
Bilangan Faktorial • Mulai • Masukkan N (N adalah bilangan yang akan dihitung nilai faktorialnya) • Set variabel Faktorial 1 • Set variabel Angka 1 • Hitung Faktorial Faktorial * Angka • Angka Angka + 1 • Apakah Angka > N ? Jika TIDAK kembali ke langkah (4). Jika YA tampilkan nilai Faktorial. • Selesai
A Start Faktorial = Faktorial * Angka Input N Angka = Angka + 1 Angka > N ? Faktorial 1 Angka 1 Cetak Faktorial End A EX. 4! = 4 x 3 x 2 x 1 = 24 FLOWCHART FAKTORIAL T Y
LATIHAN SOAL • Buatlah algoritma + flowchart untuk memasak mi instan! • Buatlah algoritma + flowchart untuk naik angkot/ lyn! • Buat algoritma untuk menghitung jumlah N suku dari deret aritmatika dengan pola berikut : Sn = 3 + 7 + 11 + …… + (4n-1) • Buat flowchart untuk mencetak pasangan nilai X dan Y dimana hubungan antara X dan Y memenuhi persamaan Y = X3 – 2X +1 dan nilai x berubah dari –10 sampai 10 ! • Buat algoritma + flowchart untuk menentukan apakah suatu bilangan merupakan bilangan prima atau bukan! • Buat algoritma + flowchart untuk mencetak N buah bilangan prima yang pertama!
LEARNING SUBJECTS • Introduction to Programming • Algorithm and Flow Chart • Data Type and Variable • Input and Output • Sequential Programming Top Down • Branching Selecting What is The Next Step? • Looping Doing Some Task for Many Times • Function/ Subrutin Part of Program • Array Collection of Same Type of Data • Struct Collection of Different Types of Data • Pointer Memory Accessability
PROGRAMMING STEPS • ANALISA MASALAHNYA • INPUT-NYA APA SAJA? • ALGORITMA PROSESNYA BAGAIMANA? • OUTPUT-NYA APA? • KETIK SOURCE CODE-NYA • HEADER FILES #include < library > • GLOBAL SECTIONS VARIABEL GLOBAL, FUNGSI BANTU • MAIN SECTIONS VARIABEL LOKAL, INPUT, PROSES, OUTPUT • JALANKAN PROGRAMNYA ADA ERROR ? • TES HASILNYA SUDAH BENAR ? • BUAT ARSIP/ DOKUMENTASINYA
VARIABEL & TIPE DATA • Variabel = penyimpan nilai/ data. • Setiap masalah harus dianalisa terlebih dahulu variabel apa saja yang terlibat/ dibutuhkan. • Setiap variabel ditentukan tipe datanya yang sesuai. • Variabel • Utama menyimpan data input/ output • Bantu dipakai selama proses • Tipe data • Angka int, float, double, long, single • Karakter char • Turunan array, struct, union, pointer
INPUT & OUTPUT • FORMAT • Angka %i, %d, %f • Huruf/ karakter %c • String/ array of char %s • Alamat memori %p • INPUT • scanf(format, variabel) scanf ( “%d”, &angka ); • getch(), getche(), getchar() • gets(variabel) gets ( nama ); • OUTPUT • printf(kalimat, variabel) printf ( “IPK = %f“, ipk ); • putch(), putchar() • puts(variabel) puts ( alamat );
CONTROL STRUCTURES • SEQUENTIAL/ URUTAN Program dijalankan mulai dari perintah paling atas/ awal sampai paling akhir secara berurutan/ sekuensial. • BRANCHING/ PERCABANGAN Penyeleksian kondisi (TRUE/ FALSE) untuk menentukan proses selanjutnya • LOOPING/ PERULANGAN Mengulangi proses selama syarat/ kondisi tertentu terpenuhi
Entry Action 1 Action 2 Action 3 Exit SEQUENTIAL/ URUTAN
Entry Condition 1 TRUE FALSE Condition 2 Action 1 FALSE TRUE Action 2 Action 3 Exit BRANCHING/ PERCABANGAN
Entry Action 1 Action 2 Looping 1 Y Y if 1 T if 2 Looping 2 T Action 3 Exit LOOPING/ PERULANGAN
IF - ELSE • Biasa digunakan untuk seleksi nilai/ data • Kondisi jamak ((kondisi_1) &&/ || (kondisi_2)) • if (kondisi=TRUE) jalankan_statement_ini • if (kondisi=TRUE) statement_1 else statement_2 // if kondisi=FALSE • if (kondisi=TRUE) statement_1 else if (kondisi=TRUE) statement_2 else statement_3 // if kondisi=FALSE • if (kondisi=TRUE) if (kondisi=TRUE) nested_statement
SWITCH - CASE • Biasa digunakan untuk membuat menu dalam program switch (variabel_pilihan) { case nilai_1 : statemen_1; break; case nilai_2 : statemen_2; break; case nilai_3 : statemen_3; break; … default: statemen_default; } • Bisa berbentuk nested/ bersarang
LOOP FOR • Syntax source code lebih ringkas • Biasa dipakai untuk perulangan yang sudah jelas jumlah perulangannya for(nilai_awal; syarat_ulang; inc/dec) { statemen_yang_akan_diulang2; }
LOOP WHILE & DO-WHILE • Biasa dipakai untuk perulangan dengan kondisi bersyarat/ logika • while (kondisi=TRUE) { jalankan_statemen_ini; } • do { jalankan_statemen_ini; } while (kondisi=TRUE)
NESTED LOOP • Perulangan bersarang (terjadi di dalam perulangan) • Yang biasa dipakai adalah loop FOR karena lebih mudah & ringkas • Contoh kasus yang sering dipakai adalah pengolahan tampilan, angka dan matrik for(int i=1; i<=5; i++) { for(int j=1; j<=i; j++) printf(“%d “, j); // milik loop for dalam printf(“\n”); // milik loop for luar }
FUNGSI • Adalah subrutin/ subprogram/ potongan program • Mempunyai tugas tertentu • Mempunyai bagian RETURN VALUE dan PARAMETER/ ARGUMEN • Ada istilah deklarasi & prototype fungsi tipe_return_valuenama_fungsi (parameter) { statemen2; // badan fungsi return (return_value/ variabel); }
ARRAY 1 DIMENSI • ARRAY adalah TIPE DATA TURUNAN • 1 variabel bisa untuk menyimpan banyak data yang bertipe sama • Memiliki indeks untuk tiap elemen • Umumnya menggunakan LOOPING untuk INPUT, PROSES & OUTPUT data-datanya
ARRAY MULTIDIMENSI (2) • Mempunyai elemen BARIS & KOLOM • Dapat dipakai untuk representasi sebuah MATRIK • Struktur data untuk rekapitulasi informasi berdasar baris dan kolom TABEL, misal: penjualan barang • Memakai NESTED LOOPING dalam operasinya
STRUCT • STRUCT adalah TIPE DATA TURUNAN • 1 variabel bisa untuk menyimpan beberapa data yang bisa berbeda tipenya • Menggunakan operator titik (.) untuk mengakses tiap elemen datanya. • Seringkali dikombinasikan dengan ARRAY ARRAY of STRUCT
POINTER • Adalah TIPE DATA TURUNAN • Variabel bertipe pointer digunakan untuk menyimpan ALAMAT sebuah data, BUKAN NILAI datanya. • Operator yang sering dipakai: • & mendapatkan alamat memori • * mengakses nilai dari sebuah pointer