LAPORAN PRAKTIKUM ALGORITMA DAN STRUKTUR DATA MODUL III Nama :Dede Irpan Nim :2011110240 Prodi :Tekhnik Informatika LABORATORIUM KOMPUTER FAKULTAS ILMU KOMPUTER(FKOM) UNIVERSITAS KUNINGAN 2011 ISI : 1. 2. 3. 4. 5. Dasar Teori Praktek Tugas Kesimpulan Lampiran STRUKTUR PEMILIHAN (CONDITION) 1. Dasar Teori Struktur pemilihan (pengkondisian) mempunyai beberapa instruksi antara lain sebagai berikut : 1. Intruksi IF-THEN a. IF sederhana b. IF-THEN-ELSE c. IF bertingkat (bersarang) 2. Instruksi SWITCH-CASE Instruksi IF-THEN 1. IF Sederhana Pemilihan suatu pernyataan dieksekusi hanya jika suatu kondisi terpenuhi atau tidak terpenuhi. Pernyataan IF-THEN (jika-maka) digunakan untuk menguji sebuah kondisi. Bila kondisi yang diuji terpenuhi, maka program akan menjalankan pernyataan-pernyataan tertentu. Bentuk umum IF-THEN adalah : If (kondisi) { <pernyataan> } Keterangan : Pernyataan sesudah kata THEN (dapat berupa satu atau lebih pernyataan) hanya akan dilaksanakan bila <kondisi> bernilai benar (true). Bila <kondisi> bernilai salah (false),tidak ada aksi yang dilaksanakan. 2. IF-THEN-ELSE Pernyataan struktur IF-THEN-ELSE (jika-maka-kalau tidak) untuk menguji dua kondisi yaituyang terpenuhi atau tidak terpenuhi. Bentuk umum struktur IF-THEN-ELSE adalah sebagai berikut : If (kondisi) { <pernyataan_true> } Else { <pernyataan_false> } Keterangan : Pernyataan_true akan dilaksanakan jika <kondisi> bernilai benar, tetapi jika kondisi bernilai salah, maka else yang dinyatakan ingkaran (negation) dari kondisi akan melaksanakan pernyataan_false. 3. IF bertingkat Pernyataan IF-THEN-ELSE bertingkat digunakan untuk menguji sebuah kondisi lebih dari dua kondisi yaitu satu kondisi terpenuhi dan lebih dari satu kondisi yang tidak terpenuhi. Bentuk umum pernyataan IF-THEN-ELSE bertingkat adalah sebagai berikut : If (kondisi_1) <pernyataan_1> Else If (kondisi_2) <pernyataan_2> Else If (kondisi_3) <pernyataan_3) Else If (kondisi_n) <pernyataan_n> Keterangan : Pernyataan IF-THEN-ELSE bertingkat (bersarang) atau IF di dalam IF digunakan untuk menguji sebuah kondisi lebih dari dua kondisi dalam bentuk bertingkat atau bersarang. Instruksi SWITCH-CASE Pemilihan proses menggunakan instruksi IF selalu didasarkan pada dua pilihan yg bisa terjadi. Dengan demikian untuk mengetes lebih dari dua pilihan harus digunakan sejumlah intruksi IF jika terlihat pada bentuk umum instruksi IF untuk pilihan jamak. Pemilihan proses untuk sejumlah pilihan kondisi bisa dilaksanakan dengan instruksi SWITCHCASE. Statement SWITCH-CASE merupakan statement yang dimanfaatkan untuk menentukan pilihan dari sejumlah pilihan yang terlibat. Bentuk umum algoritma untuk instruksi SWITCH-CASE : Switch <pilihan> Case <pilihan_1> : <aksi_1> Case <pilihan_2> : <aksi_2> . . . Case <pilihan_n> : <aksi_n> { otherwise aksi } Endcase Keterangan : Pilihan_1, pilihan_2, dst mempunyai nilai kebenaran. Setiap pilihan diperiksa nilai kebenarannya,mulai dari pilihan pertama sampai ditemukannya pilihan yang bernilai benar. Aksi yang dipasangkan dengan aksi ke-i dapat berupa satu baris intstruksi atau blok instruksi. Apabila tidak ada satupun pilihan yang bernilai benar, maka aksi sesudah otherwise dikerjakan. Dalam bahasa C/C++, otherwise diganti dengan kata kunci default. Pengguanaan SWITCH-CASE dalam bahasa C/C++ sebagai berikut : Switch (kondisi) { Case konstanta_1 : {statement-statement; break;} Case konstanta_2 : {statement-statement; break;} . . . . . . . . . . Default : {statement-statement; break;} } 2. Praktek Praktek 1 : penggunaan struktur IF-THEN Menuliskan algoritma dan mengimplementasikan kedalam bahasa C/C++ dari permasalahan untuk mengetahui apakah sebuah bilangan bulat yang dimasukan merupakan bilangan genap atau bukan? Algoritma: Algoritma bilangan_genap { mencetak pesan “bilangan Genap”,jika sebuah bil. Bulat yang dibaca dari keybaoard merupakan bilangan genap} Kamus (deklarasi) Bil : integer Algoritma (deskripsi) Input ( Bil ) If ( bil mod 2 = 0 ) then Output ( “ Bilangan Genap”) endif Bahasa C/C++ : /* program bilangan_genap */ /* mencetak pesan “Bilangan Genap” jika sebuah bilangan bulat yang dibaca dari piranti masukan merupakan bilangan Genap */ #include <stdio.h> Main ( ) { Int Bil; Printf (“masukan bilangan bulat : “); Scanf (“%d”, &Bil); If (Bil & 2 == 0); Printf (“Bilangan bulat”); } 1. perhatikan pengimplementasian ke bahasa C++ dari algoritma tersebut. 2. Analisa bentuk penulisan untuk struktur IF-THEN tersebut. Run : Praktek 2 : penggunaan struktur IF-THEN-ELSE Dibaca dua buah bilangan bulat dari piranti masukan. Tentukan dari kedua bilangan itu yang terbesar, misalkan misalkan kedua bilangan adalah A dan B. Analisis : Kasus A > B → Bilangan terbesar adalah A Kasus B ≥ A → Bilangan terbesar adalah B Algoritma : Algoritma Cari_Max { Menentukan bilangan terbesar dari dua buah bilangan bulat } Kamus (Deklarasi) A, B : integer Bahasa C/C++ : /* PROGRAM CARI_MAX*/ /* Menentukan bilangan terbesar dari dua buah bilangan bulat */ #include <stdio.h> main() { int A, B; printf(“A = “); scanf(“%d”, &A); printf(“B = “); scanf(“%d”, &B); if (A > B) printf(“Bilangan terbesar adalah %d”, A); else printf(“Bilangan terbesar adalah %d”, B); } Run : Praktek 3 : penggunaan struktur IF-THEN-ELSE bertingkat Pengelompokan nilai bertingkat dengan ketentuan : jika nilai angka>=90,maka nilai huruf = A, jika nilai angka>=70, maka nilai huruf = B, jika nilai angka>=50, maka nilai huruf = C, jika angka <50, maka nilai huruf = E. Algoritma Nilai { Menentukan nilai yang sesuai dengan kriteria } Kamus (Deklarasi) grade : integer Algoritma (Deskripsi) input (grade) If (grade >= 90) then output (“nilai = A”) else if (grade >= 70) then output (“Nilai = B”) else if (grade >= 50) then output (“Nilai = C”) else if (grade < 50) then output (“Nilai = E”) endif endif endif endif Bahasa C/C++ : /* PROGRAM NILAI */ /* Menentukan nilai yang sesuai dengan kriteria */ #include<stdio.h> main( ) { int grade; printf("Masukan nilai [10 - 100] : "); scanf("%d", &grade); if (grade>= 90) printf("Nilai = A"); else if (grade >= 70) printf("Nilai = B"); else if (grade >= 50) printf("Nilai = C"); else if (grade < 50) printf("Nilai = E"); } Run : Praktek 4 : Dibaca nomor bulan (integer). Tuliskan nama bulan seuai dengan nomor bulannya. Misalnya jika bulan 8, maka akan tercetak agustus. Masalah ini memiliki 12 buah kasus karena nama bulan berbeda-beda tergantung pada nomor bulan yang diberikan (ada 12 bulan dalam kalender masehi). Algoritma : Algoritma Nama_Bulan { mencetak nama-nama sesuai dengan nomor bulan } Kamus (deklarasi) No Bulan : integer Algoritma (deskripsi) Input (no Bulan) Switch Case 1 : output (“januari”) Case 2 : output (“februari”) Case 3 : output (“maret”) Case 4 : output (“april”) Case 5 : output (“mei”) Case 6 : output (“juni”) Case 7 : output (“juli”) Case 8 : output (“agustus”) Case 9 : output (“September”) Case 10 : output (“Oktober”) Case 11 : output (“Nopember”) Case 12 : output (“Desember”) Otherwise : output (“Bukan bulan yang benar”) Endswitch Bahasa C/C++ : /* program Nama_Bulan */ /* Mencetak Nama bulan sesuai dengan nomor bulan */ #include <stdio.h> Main ( ) { Int NoBulan; Switch (NoBulan) { Case 1 : printf (“januari \n”); break; Case 2 : printf (“februari \n”); break; Case 3 : printf (“maret\n”); break; Case 4 : printf (“april\n”); break; Case 5 : printf (“mei\n”); break; Case 6 : printf (“juni\n”); break; Case 7 : printf (“juli\n”); break; Case 8 : printf (“agustus\n”); break; Case 9 : printf (“september\n”); break; Case 10 : printf (“oktober\n”); break; Case 11 : printf (“nopember\n”); break; Case 12 : printf (“desember\n”); break; Default : printf (“Bukan bulan yang benar”); } } Run : Praktek 5 : Tulis kembali praktek diatas (no 4) dengan kata kunci break dihilangkan, lakukan proses kompilasi dan jalankan programnya!. Bahasa C/C++ : /* program Nama_Bulan */ /* Mencetak Nama bulan sesuai dengan nomor bulan */ #include <stdio.h> Main ( ) { Int NoBulan; Switch (NoBulan) { Case 1 : printf (“januari \n”); Case 2 : printf (“februari \n”); Case 3 : printf (“maret\n”); Case 4 : printf (“april\n”); Case 5 : printf (“mei\n”); Case 6 : printf (“juni\n”); Case 7 : printf (“juli\n”); Case 8 : printf (“agustus\n”); Case 9 : printf (“september\n”); Case 10 : printf (“oktober\n”); Case 11 : printf (“nopember\n”); Case 12 : printf (“desember\n”); Default : printf (“Bukan bulan yang benar”); } } Compile : Run : 3. Tugas modul 3 : 1. buatlah algoritma dan implementasikan menjadi program untuk membuat program konversi dari nilai huruf menjadi nilai angka, dengan ketentuan masukan nilai huruf (menggunakan instruksi IF dan SWITCH) Nilai huruf : A → nilai angka : 4 Nilai huruf : B → nilai angka : 3 Nilai huruf : C → nilai angka : 2 Nilai huruf : D → nilai angka : 1 Nilai huruf : E → nilai angka : 0 2. Buatlah program untuk suatu menseleksi bilangan dengan ketentuan sebagai berikut : (menggunakan instruksi IF dan SWITCH) 0<= nilai <30 : nilai Rendah 30<= nilai <60 : nilai Sedang 60<= nilai <= 100 : nilai Tinggi 3. Buatlah kesimpulan praktikum dan tugas praktikum. Jawab : 1. algoritmanya : Algoritma nilai { menentukan nilai huruf menjadi nilai angka } Kamus (Deklarasi) grade : integer Algoritma (Deskripsi) input (grade) if (grade == A) then output (“Nilai angka = 4”) else if (grade == B) then output (“Nilai angka = 3”) else if (grade == C) then output (“Nilai angka = 2”) else if (grade == D) then output (“Nilai angka = 1”) else if (“grade == E) then output(“Nilai angka = 0”) endif endif endif endif endif Bahasa C/C++ : #include <stdio.h> void main() { int nilai; printf("Masukan nilai huruf [A - E] : "); scanf("%s", &nilai); if (nilai =='A') printf("Nilai angka : 4\n"); else if(nilai =='B') printf("Nilai angka : 3\n"); else if(nilai =='C') printf("Nilai angka : 2\n"); else if(nilai == 'D') printf("Nilai angka : 1 \n"); else if(nilai == 'E') printf("Nilai angka : 0\n"); } Run : 2. – Sintaks programnya sebagai berikut : - Compile : -Run : 4. Kesimpulan Pernyataan IF-THEN (jika-maka) digunakan untuk menguji sebuah kondisi. Bila kondisi yang diuji terpenuhi, maka program akan menjalankan pernyataan-pernyataan tertentu, Pernyataan struktur IF-THEN-ELSE (jikamaka-kalau tidak) untuk menguji dua kondisi yaituyang terpenuhi atau tidak terpenuhi, Pernyataan IF-THEN-ELSE bertingkat digunakan untuk menguji sebuah kondisi lebih dari dua kondisi yaitu satu kondisi terpenuhi dan lebih dari satu kondisi yang tidak terpenuhi.