MODUL PRAKTIKUM ALGORITMA DAN STRUKTUR DATA PERTEMUAN 1 Disusun oleh : Tim Asisten JURUSAN TEKNIK INFORMATIKA FAKULTAS SAINS DAN TEKNOLOGI UNIVERSITAS ISLAM NEGERI SUNAN KALIJAGA YOGYAKARTA 2011 0 A. Pengantar bahasa C a. Struktur Program C Sebelum membuat program, maka struktur dari program tersebut harus diketahui terlebih dahulu. Tiap bahasa komputer memiliki struktur program yang berbeda. Dengan berpedoman pada struktur tersebut, maka pemrogram dapat memulai bagaimana menulis program dan memahami dari program yang ia tulis. Struktur program bahasa C pada prinsipnya adalah terdiri dari fungsi-fungsi. Fungsi pertama yang harus ada dalam bahasa C adalah fungsi main(). Adanya fungsi main(), mengindikasikan bahwa instruksi-instruksi yang ada di dalam badan fungsi main() inilah yang akan pertama kali dijalankan. Suatu fungsi diawali dengan tanda kurung kurawal buka ( { ) dan diakhiri dengan tanda kurung kurawal tutup ( } ). Gambar berikut ini adalah struktur program dari bahasa C. main() { Statemen-statemen; Fungsi utama } fungsi_fungsi_lain() { Statemen-statemen; Fungsi lain yang ditulis oleh pemrograman } Gambar 1. Struktur program bahasa C 1 b. Program Sederhana Setelah kita mengetahui struktur program dalam bahasa C, selanjutnya kita bisa membuat program yang sederhana seperti berikut ini : Gambar 2. Program sederhana dengan bahasa C Ketarangan program : Baris 1 #Include <stdio.h> Perhatikan baris 8, pada baris 8 terdapat fungsi printf() dan scanf(). Jika kita menggunakan kedua fungsi ini maka nama file yang berisi prototype dari kedua fungsi ini harus disertakan dengan preprocessor directive #include. File yang berisi prototype tersebut disebut file judul atau header file (berekstensi .h). Untuk fungsi printf() dan scanf(), file judulnya (header file) adalah stdio.h. Baris 4 main() => ini adalah fungsi yang harus ada dalam program, fungsi ini menjadi titik awal acuan compiler C untuk melaksanakan perintah-perintah program. Baris 5 Tanda kurung kurawal buka ( { ) merupakan penanda awal dari fungsi main(). 2 Baris 6 – baris 15 Pada contoh kali ini kita menggunakan 8 buah statement (pernyataan). Setiap pernyataan dipisahkan oleh tanda titik koma (;). Gambar 3. Setiap pernyataan dipisahkan oleh tanda titik koma Baris 16 Tanda kurung kurawal tutup ( } ) mengindikasikan akhir dari fungsi main(). Output : Jika program diatas kita running maka hasilnya kurang lebih sebagai berikut : Gambar 4. Output program sederhana c. Memecah baris statement (pernyataan) Suatu pernyataan yang panjang dapat ditulis dalam beberapa baris penulisan. Cara memecah statemen ada dua veris. Versi pertama dapat diperlihatkan pada contoh berikut ini. 3 Versi 1 Gambar 5. Memecah baris statement versi pertama Jika program diatas kita simpan dan kita running, hasilnya adalah sebagai berikut : Gambar 6. Hasil memecah statement versi pertama Versi 2 Gambar 7 Memecah baris statement versi kedua Jika program diatas kita simpan dan kita running, hasilnya adalah sebagai berikut : Gambar 8 Hasil memecah statement versi kedua 4 d. Kata kunci Kaca kunci (keywords) merupakan kata-kata yang digunakan oleh kompiler dan tidak dapat digunakan oleh pemakai program sebagai nama pengenal. Bahasa C standar ANSI (American National Standards Institute) mendefinisikan 32 kaca kunci (keywords) sebagai berikut : auto enum short volatile break extern signed while case float sizeof char for static const goto struct continue if switch default int typedef do long union double register unsigned else return void Gambar 9. Daftar 32 kata kunci (keywords) bahasa C standard ANSI Bahasa C bersifat case sensitive artinya penulisan dengan huruf kecil dan huruf besar akan dianggap berbeda. Misalnya nama pengenal angka1 dan Angka1 adalah dua nama pengenal yang berbeda (perhatikan huruf pertama pada nama pengenal tersebut). e. Pengenal Nama pengenal (identifier name) adalah nama-nama yang ditentukan sendiri oleh pemrogram. Nama pengenal HARUS BERBEDA dengan kata-kata kunci (keywords). Fungsi dari nama pengenal adalah untuk member nama variable, konstanta, fungsi atau label. Berikut ini ketentuan-ketentuan dalam membuat nama pengenal dalam bahasa C 5 1. Karakter pertama harus diawali berupa huruf atau karakter garis bawah. 2. Karater khusus lainnya tidak boleh digunakan termasuk karakter blank (spasi). 3. Huruf besar dan huruf kecil berbeda meskipun memiliki nama yang sama 4. Tidak boleh sama dengan kata-kata kunci (keywords). Contoh : Nama pengenal yang salah : 4ngka => karakter pertama berupa angka. @ngka => karakter pertama berupa karakter khusus yang dilarang. switch => sama dengan kata kunci rata rata => terdapat karakter blank (spasi) Nama pengenal yang benar: _4ngka => diawali dengan garis bawah _@ngka => diawali dengan garis bawah rata_rata =>dipisahkan dengan garis bawah f. Tipe data Bahasa-bahasa pemrograman komputer, secara umum membedakan data ke dalam beberapa tipe dengan tujuan supaya operasi data menjadi efisien dan efektif. Misalnya, jika ada sebuah data bilangan yang merupakan umur seseorang dan disimpan di variabel umur, maka cukup disimpan dengan tipe integer. Sehingga data umur tersebut disimpan di memori selebar 16 bit atau 2 byte. Dibandingkan jika data umur tersebut disimpan dengan tipe pecahan ketepatan tunggal (float) yang di memori akan memakan tempat selebar 32 bit atau 4 byte. Bahasa C menyediakan lima tipe data dasar. Sebagian bahasa pemrograman tingkat tinggi pada umumnya memiliki tipe data ini. Tipe data dasar tersebut adalah : 1. Integer => Nilai numerik bilangan bulat dideklarasikan dengan tipe int 6 2. Floating point => nilai numeric pecahan ketepatan tunggal dideklarasikan dengan tipe float 3. Double-precision => nilai numeric pecahan ketepatan ganda yang dideklarasikan dengan tipe double. 4. Karaker => dideklarasikan dengan tipe char. 5. Tipe data void (dijelaskan pada bab fungsi dan prosedur). Bahasa C tidak mempunyai tipe data Boolean (bool), sebagai alternatifnya bisa dibuat sebuah tipe data boolean denga typedef Typedef enum {false=0, true=1} Boolean; Untuk tipe data yang lain akan dijelaskan pada bab-bab selanjutnya. g. Operator Operator merupakan symbol yang digunakan untuk suatu operasi tertentu. Bahasa C menyediakan berbagai operator, misalnya operator pengerjaan, operator aritmatika, operator tipe, operator hubungan, operator logika, operator bitwise, ternary operator dan operator koma. Berikut ini adalah macam-maca operator dalam bahasa C Kategori Operator Kurung, indeks larik dan elemen struktur () [] . -> Arah proses Kiri - kanan Jenjang 1 data Operator Unary ! ~ - ++ -- & * Kanan-kiri 2 (tipe) sizeof Operator Aritmatika perkalian, pembagian */% Kiri – kanan 3 +- Kiri – kanan 4 << >> Kiri – kanan 5 dan sisa pembagian Operator aritmatika pertambahan dan pengurangan Operator bitwise pergeseran bit 7 Operator Hubungan < <= > >= Kiri – kanan 6 Operator hubungan kesamaan dan ketidak == != Kiri – kanan 7 Operator bitwise AND & Kiri – kanan 8 Operator bitwise XOR ^ Kiri – kanan 9 Operator bitwise OR | Kiri – kanan 10 Operator kondisi AND && Kiri – kanan 11 Operator kondisi OR || Kiri – kanan 12 Operator ternary ?| Kanan-kiri 13 Operator pengerjaan aritmatika =+= -= *= /= Kanan-kiri 14 samaan %= Operator pengerjaan bitwise &= ^= |= <<= Kanan-kiri 15 ..+ Operator koma , Kiri-kanan 16 Tabel 1. Macam-maca Operator dalam bahasa C berikut jenjangnya h. Konstanta Konstantan merupakan suatu nilai yang tidak berubah selama proses dari program. Ada beberapa jenis konstantan yaitu : a. Konstantan Numerik integer b. Konstantan Numerik Pecahan c. Konstanta Karakter dan konstanta String d. Konstanta karakter Escape 8 Konstanta karakter escape banyak digunakan di statemen-statemen untuk menampilkan hasil, misalnya untuk menggeser kursor ke baris berikutnya (ganti baris baru). Konstanta karakter escape diawali dengan karakter backslash (\). Konstanta Escape Arti \a Bunyi bel (bell atau alert) \b Mundur satu spasi (backspace) \f Ganti halaman (form feed) \n Ganti baris baru (new line) \r Ke kolom pertama, baris yang sama (carriage return) \t Tabulasi horizontal \v Tabulasi vertical \0 Nilai kosong (null) \’ Karakter petik tunggal \” Karakter petik ganda \\ Garis miring terbalik (backslash) Tabel 2. Macam-macam escape karakter e. Variabel Variabel adalah suatu pengenal yang digunakan untuk mewakili suatu nilai tertentu di dalam proses program. Misalnya ungkapan umur=19, umur adalah suatu variabel dan 19 adalah konstanta numerik integer. Semua variabel yang akan digunakan di program bahasa C harus terlebih dahulu dideklarasikan dengan format : Tipe variabel-variabel; Contoh : int umur, semester; // umur dan semester bertipe integer 9 char nama[22]; //nama bertipe karakter float luas; //luas bertipe float (pecahan tunggal) B. Flowchar dan Contoh-contoh program sederhana dalam bahasa C a. Flowchart Ketarangan Lambang Mulai / selesai (terminator) Aliran data Input/output Proses Percabangan Pemberian nilai awal suatu variabel Memanggil prosedur atau fungsi Connector (di halaman yang sama) A Off page connector B Dokumen / multi dokumen Hardisk Sequence process P1 P2 10 ketepatan Contoh : 1. Menghitung luas persegi Problem : Menghitung luas persegi Algoritma : Masukkan nilai panjang persegi Masukkan nilai lebar persegi Hitung luas persegi, yaitu panjang * lebar Tampilkan hasilnya Mulai Masukkan P Masukkan L L uas=p * l Tulis Luas Selesai 11 2. Menentukan sebuah bilangan ganjil atau genap Problem : Menentukan sebuah bilangan apakah ganjil atau genap Algoritma: Masukkan sebuah bilangan (x) Jika x mod 2 == 0 maka x adalah genap Jika x mod 2 !=0 maka x adalah ganjil Mulai Masukkan x X mod 2 ==0 Ya Tulis genap Tulis ganjil Selesai 12 Tidak b. Translasi dalam bahasa C 1. Menghitung luas segitiga Output 13 2. Menentukan sebuah bilangan ganjil atau genap Output Contoh kasus lain 1. Menukar 2 buah bilangan Awal : a=2 b=4 Akhir : a=4 b=2 14 2. Menghitung gaji bersih seorang karyawan Gaji bersih=gaji pokok + tunjangan - pajak 3. Mengonversi waktu ke dalam detik Jam=1 Menit=1 Detik=1 Total_detik=3661 Untuk mempelajari lebih lanjut silahkan baca buku berikut ini (semua tersedia di perpustakaan UIN Sunan KaliJaga: Rinaldi Munir. Algoritma pemrograman dalam Bahasa Pascal dan C Prof. Dr. Jogiyanto HM,MBA,Akt. Konsep Dasar Pemrograman Bahasa C 15