Struktur Teks Pseudo-code PROGRAM Nama Program { Penjelasan tentang algoritma, yang berisi uraian singkat mengenai masalah yang akan diselesaikan } DEKLARASI { Semua nama yang dipakai, meliputi nama tipe, konstanta, peubah, prosedur dan fungsi diumumkan di sini } ALGORITMA: { Semua langkah/aksi algoritma dituliskan di sini }
1
Tujuan Dengan belajar dari contoh, mahasiswa mampu memecahkan masalah dalam sebuah algoritma pemecahan masalah menggunakan notasi pseudocode.
2
Contoh Masalah Tinjau sebuah masalah sederhana yakni mempertukarkan isi dari dua buah gelas. Gelas A berisi air kopi dan gelas B berisi air susu. Kita ingin mempertukarkan isi kedua gelas itu sedemikian hingga gelas A akan berisi air susu dan gelas B berisi air kopi.
3
Contoh Algoritma Misalkan seseorang menuliskan langkah-langkah pertukaran isi kedua gelas tersebut ke dalam program Tukar_Isi dengan algoritma sbb: PROGRAM Tukar_Isi {Diberikan dua buah gelas, A dan B; gelas A berisi air kopi dan gelas B berisi air susu. Pertukarkan isi kedua gelas} DEKLARASI A, B : Gelas ALGORITMA: Tuangkan air dari gelas A ke dalam gelas B Tuangkan air dari gelas B ke dalam gelas A Perhatikan bahwa algoritma Tukar_Isi di atas tidak akan menghasilkan pertukaran yang benar. Langkah-langkahnya tidak logis.
4
Perhatikan langkah pemecahan berikut:
5
Algoritma Pemecahan Masalah C A { simpan A di tempat penampungan sementara C } A B { sekarang A dapat diisi dengan nilai B } B C { isi B dengan nilai A semula yang tadi disimpan di C }
6
Contoh Masalah Buatlah algoritma untuk mempertukarkan nilai dari dua buah variabel. Misalkan A = 8 dan B = 5. Kita ingin mempertukarkan nilai A dan B sedemikian hingga A = 5 dan B = 8.
7
Algoritma Pemecahan Masalah Algoritma pertukaran dua buah nilai mempertukarkan isi dari dua buah gelas.
ini
sama
seperti
algoritma
PROGRAM Pertukaran_Nilai { Mempertukarkan nilai A dan B. Nilai A dan B dibaca terlebih dahulu } DEKLARASI A, B, temp : integer ALGORITMA: read (A,B) {Baca nilai A dan B terlebih dahulu} {Proses pertukaran} temp A {simpan A di tempat sementara, temp} AB {sekarang A dapat diisi dengan nilai B} B temp {isi B dengan nilai A semula yang tadi disimpan di temp} write (A,B) {cetak nilai A dan B setelah pertukaran}
8
Contoh Masalah Buatlah algoritma yang membaca panjang dan lebar sebuah segi empat lalu menghitung luasnya. Luas segi empat itu dicetak ke piranti keluaran.
panjang
lebar
9
Algoritma Pemecahan Masalah PROGRAM Luas_Segi_Empat { Membaca panjang dan lebar segi empat, menghitung luasnya, lalu mencetak luas tersebut ke piranti keluaran } DEKLARASI panjang, lebar, luas: real ALGORITMA: read (panjang, lebar) {Proses pertukaran} luas panjang * lebar write (luas)
10
Masalah Selanjutnya.. Buatlah algoritma untuk mempertukarkan nilai dari dua buah peubah, A dan B tanpa menggunakan peubah bantu.
11
Contoh Algoritma PROGRAM Pertukaran_Nilai { Program untuk mempertukarkan nilai A dan B tanpa peubah bantu. Nilai A dab B dibaca terlebih dahulu} DEKLARASI A, B : integer ALGORITMA: read (A,B) { baca nilai A dan B terlebih dahulu } write (A,B) { cetak nilai A dan B sebelum pertukaran } A A + B { proses pertukaran } AA-B AA-B write (A,B) { cetak nilai A dan B setelah pertukaran } 12
Contoh Algoritma PROGRAM Komisi_Salesman { Menghitung komisi salesman yang besarnya 5% dari nilai penjualan } DEKLARASI nama_salesman : string nilai_penjualan, komisi : real ALGORITMA: read (nama_salesman, nilai_penjualan) komisi 0.05 * nilai_penjualan write (komisi)
13
Contoh Algoritma PROGRAM Gaji_Karyawan { Menghitung gaji bersih = gaji pokok + tunjangan – pajak, tunjangan = 20% dari gaji pokok dan pajak = 15% dari gaji pokok ditambah tunjangan } DEKLARASI
const persen_tunjangan = 0.2 const persen_pajak nama_karyawan : string gaji_pokok, tunjangan, pajak, gaji_bersih : real ALGORITMA:
read (nama_karyawan, gaji_pokok) tunjangan persen_tunjangan * gaji_pokok pajak persen_pajak * (gaji_pokok + tunjangan) gaji_bersih gaji_pokok + tunjangan - pajak write (nama_karyawan, gaji_bersih)
14
Contoh Algoritma PROGRAM Konversi_ke_detik { Membaca waktu tempuh pelari maraton dalam jam, menit dan detik. Kemudian mengkonversi waktu tempuh ke dalam detik } DEKLARASI type Jam = record < hh, mm,dd : integer > waktu_tempuh : Jam total_detik : integer
ALGORITMA: read (jam, menit,detik) total_detik (waktu_tempuh.hh * 3600) + (waktu_tempuh.mm * 60) + waktu_tempuh.ss write (total_detik) 15
Contoh Algoritma PROGRAM Konversi_ke_Jam_Menit_Detik { Membaca durasi percakapan telepon dalam detik. Kemudian mengkonversi waktu ke dalam jam, menit dan detik. } DEKLARASI
type Jam = record < hh, mm,dd : integer > durasi : Jam total_detik, sisa : integer ALGORITMA:
read (total_detik) durasi.hh total_detik div 3600 Sisa total_detik mod 3600 durasi.mm sisa div 60 durasi.ss sisa mod 60 write (durasi.hh, durasi.mm, durasi.ss) 16