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 %
PROLOG: THE COMPUTER SYSTEM HARDWARE SOFTWARE BRAINWARE PROGRAMMING O/ S GAMES APPLICATIONS
PROGRAMMING FRAMEWORK FILE APLIKASI COMPILING RUNNING SOURCE CODE MEMORI/ RAM OPERATING CODING USER PROGRAMMER
PROGRAMMING HISTORY
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.
SIMBOL NAMA FUNGSI TERMINATOR (FLOW LINE) PREPARATION PROSES Permulaan/ akhir program GARIS ALIR (FLOW LINE) Arah aliran program PREPARATION Proses inisialisasi/ pemberian harga awal PROSES Proses perhitungan/ proses pengolahan data
Proses input/ output data, parameter, informasi PREDEFINED PROCESS (SUB PROGRAM) Permulaan sub program/ proses menjalankan sub program DECISION Perbandingan pernyataan, penyeleksian data yang memberikan pilihan untuk langkah selanjutnya ON PAGE CONNECTOR Penghubung bagian-bagian flowchart yang berada pada satu halaman OFF PAGE CONNECTOR Penghubung bagian-bagian flowchart yang berada pada halaman berbeda
Hitung sisa bagi antara bilangan dengan angka 2 Contoh: Flowchart untuk menentukan bilangan genap atau ganjil Y T Start Input Bilangan Hitung sisa bagi antara bilangan dengan angka 2 A Apakah Sisa = 0 Cetak Genap Cetak Ganjil End
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) Tampilkan X1, X2 Selesai
FLOWCHART AKAR PERSAMAAN KUADRAT Start Input Nilai A, B, C D = 0 ? Cetak X1, X2 End X = (– B ± √D)/(2*A) D = B2 – 4*A*C X1 = X2 = – B/(2*A) Y T D < 0 ? X1, X2 Imaginer 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
Faktorial = Faktorial * Angka FLOWCHART FAKTORIAL EX. 4! = 4 x 3 x 2 x 1 = 24 Start Input N Faktorial = Faktorial * Angka A Angka > N ? Cetak Faktorial End Faktorial 1 Angka 1 Angka = Angka + 1 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 KETIK SOURCE CODE-NYA 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 BRANCHING/ PERCABANGAN 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
SEQUENTIAL/ URUTAN Action 1 Action 2 Action 3 Entry Exit
BRANCHING/ PERCABANGAN Entry Condition 1 Action 1 Condition 2 Action 3 Action 2 Exit TRUE FALSE
LOOPING/ PERULANGAN Action 1 Action 2 Action 3 Entry Exit if 1 if 2
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 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
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_value nama_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