Anda di halaman 1dari 6

LEMBAR PRAKTIKUM 3 (LP#3)

Analisis Kasus, Perintah Percabangan, dan Algoritma Tipe2_Tipe 3

A. Tujuan.
Setelah mengikuti tatapmuka secara aktif dan mengerjakan semua kegiatan dalam lembar praktikum ini, mahasiswa dapat:
1. Mengenal Analisis Kasus sebagai bagian dari algoritma, dengan lengkap dan benar
2. Mengenal Perintah Percabangan dalam Pascal, dengan lengkap dan benar
3. Menerapkan analisis kasus dalam membangun algoritma, dengan benar sesuai permasalahan.
4. Menerapkan perintah percabangan dalam Pascal untuk merealisasikan algoritma sebagaimana butir 3, dengan benar.
5. Mengenal algoritma Genap_Gasal (Tipe 2) dan Min_Max_1 (Tipe 3)
6. Mengonstruksi secara mandiri program Pascal dengan melibatkan pola algoritma Genap_Gasal (Tipe 2) dan Min_Max_1 (Tipe 3).

B. Alat dan Bahan: PC, perangkat lunak Turbo Pascal/ Free Pascal

C. Landasan Teori.
1. Analisis Kasus.
Setelah menyelesaikan kegiatan pada lembar praktikum 2, anda sudah mengenal algoritma RUMUS sebagai pola algoritma pertama
yang dipelajari. Pola tersebut dipakai manakala persoalan yang diselesaikan dapat dikenali rumus yang menghubungkan antara input dan
output. Jika tidak atau anda ragu dengan rumus, maka kemampuan mengembangkan algoritma akan dikembangkan pada lembar praktikum
selanjutnya. Lembar praktikum ini secara khusus mengupas analisis kasus yang seringkali diperlukan dalam mengembangkan algoritma,
berikut realisasinya dalam bahasa Pascal. Ikuti dengan seksama !.
Apa, mengapa, dan untuk apa analisis kasus ?. Sebagaimana hidup senantiasa diwarnai dengan pengambilan keputusan (silahkan
renungkan hidup anda, benarkah anda mengambil keputusan ?), menyusun algoritma demikian pula. Pada suatu langkah tertentu, kadang
tidak dapat diikuti langsung dengan langkah berikutnya. Hal ini dikarenakan ada sejumlah langkah pilihan yang harus diputuskan
berdasarkan langkah tertentu tersebut. Contoh: saat data kode bulan sudah disimpan ke dalam variabel tertentu (melalui perintah readln),
langkah pengerjaan berikut tidak dapat langsung menampilkan nama bulan yang bersesuaian. Mengapa ?. Pemrogram tidak akan tahu kode
bulan apa yang dimasukkan (istilahnya: di ’entry’) oleh pengguna program. Pemrogram tidak boleh juga menebak-nebak bakalan isi kode
bulan. Demikian juga, sebuah nilai integer telah disimpan ke dalam sebuah variabel bertipe integer, komputer tidak serta-merta dapat
menentukan isi variabel tersebut berupa bilangan genap atau gasal. Ketika kondisi seperti ini dialami, maka pada langkah ini butuh analisis
kasus agar dapat menentukan pilihan langkah berikut dengan tepat.

Lembar Praktikum Pemrograman Komputer(JPMIPA)- Agustus 2020 -1-


Analisis dilakukan mengikuti pola single-entry-single-exit , sebagaimana ciri pemrograman terstruktur. Ada 2 pola analisis kasus yang
dikenal, yaitu: Kasus Tunggal (2 alternatif pilihan yang saling komplementer), dan Kasus Jamak (lebih dari 2 alternatif pilihan). Perhatikan
diagram di bawah ini.
Kasus Tunggal Kasus Jamak

= KO_n
true Ekspresi = KO_1
fals Ekspresi Pn P1
P2 P1 Ordinal
e Lojik
= KO_2

P… P2
P… P…

Keterangan: Keterangan:
*) P1 = Pernyataan dikerjakan hanya jika ekspresi lojik *) KO_1 = Konstanta Ordinal 1 (idem KO-n)
bernilai benar *) P1 = Pernyataan dikerjakan hanya jika Ekspresi Ordinal saat itu bernilai
*) P2 = Pernyataan dikerjakan hanya jika ekspresi lojik KO_1 (Idem Pn)
bernilai salah *) Setelah P1 dikerjakan maka P2..Pn tidak akan dikerjakan. Begi sebaliknya.
*) Jika P1 dikerjakan maka P2 tidak dikerjakan. Begitu
sebaliknya
Syarat Analisis Kasus: 1) Gabungan dari seluruh syarat mencakup seluruh kombinasi syarat yang dapat terjadi; 2)Setiap syarat harus
saling lepas (tidak beririsan). Untuk Kasus Tunggal: kedua syarat otomatis dipenuhi (cek ulang). Namun untuk Kasus Jamak : harus
diupayakan. Kedua syarat tersebut untuk menjamin bahwa tidak akan ada tumpang-tindih syarat dan ada kondisi ’berlubang’. Dengan
demikian semua nilai ekspresi memperoleh kepastian 1 langkah yang akan diambil (tidak ambigo, tidak lolos).

Contoh Pemakaian. Kasus konversi kode bulan menjadi nama bulan. Andai kode bulan disimpan di dalam KB (diasumsikan isi KB
valid), dan nama bulan disimpan di dalam NB. Analisis kasus yang diambil adalah jenis analisis kasus jamak. Simak diagram alir berikut.
(KB merupakan data integer, yang juga otomatis data yang memiliki urutan atau disebut data ordinal)

Lembar Praktikum Pemrograman Komputer(JPMIPA)- Agustus 2020 -2-


= 12 =1
NB  ‘Desember’ KB NB  ‘Januari’
=2
=…
=3 NB  ‘Februari’
NB  …
NB  ‘Maret’

2. Perintah Percabangan.
Untuk merealisasikan kedua analisis kasus di atas, pada Pascal disediakan perintah percabangan (ada 2 macam juga). Kedua perintah
percabangan tersebut adalah: IF-THEN-[ELSE]; dan CASE_OF_END; .
Format perintah penyimpanan:
a) Percabangan Tunggal : IF < Ekspresi Lojik > THEN <P1> [ELSE P2];
b) Percabangan Jamak: CASE <Ekspresi Ordinal> OF
KO1 : P1;
KO2 : P2;
........ : ...;
[ELSE Px];
END;
Keterangan :
 bagian yang diapit oleh kurung siku buka dan tutup berarti bahwa bagian itu bersifat tentatif (boleh dipakai, boleh juga tidak
dipakai)

Lembar Praktikum Pemrograman Komputer(JPMIPA)- Agustus 2020 -3-


 jika pernyataan (P1 ...Pn) terdiri dari sejumlah pernyataan, maka agar dianggap sebagai satu kesatuan pernyataan maka seluruh
pernyataan yang dimaksud harus di blok dengan memakai BEGIN – END;

3. Algoritmat Tipe 2 : Persoalan Genap_Gasal


Persoalan mengenali data bilangan merupakan : bilangan genap atau gasal; kabisat atau bukan kabisat (untuk bilangan yang bermakna
sebagai tahun); habis dibagi X; kelipatan dari X; dan persoalan faktor dari X, merupakan satu kelas algoritma sendiri. Anda jangan bingung.
Kalau sudah mengenali algoritma untuk mengenali bilangan genap atau gasal, maka algoritma tersebut dapat dipakai pada persoalan serupa
dengan penyesuaian seperlunya.
Format Algoritma: Andai A berisi sebuah bilangan bulat positif, akan dikenali apakah A genap atau bukan
A mod 2 = 0 atau A div 2 = A / 2 atau 2*(A div 2) = A atau .....
Contoh Pemakaian : If A mod 2 = 0 then K := ’genap’ else K := ’gasal’ ;
Algoritma ini hanya memanfaatkan 3 jenis operasi pembagian yang dikenal dalam dunia komputer, yaitu: / (pembagian biasa sebagaimana
dipelajari di SD); DIV (pembagian dengan hasil bulat, berapapun pecahan dibuang); dan MOD (sisa hasil bagi bulat).

4. Algoritma Tipe 3 : Persoalan Minimum_Maksimum 1 (Tanpa Array)


Persoalan mengenali data terbesar atau terkecil pada sejumlah berhingga data, seringkali dibutuhkan. Untuk menjawab ini, algoritma
yang paling powerfull adalah menggunakan analisis kasus secara berjenjang. Analisis kasus dilakukan di dalam analisis kasus lain. Jika
direalisasikan kedalam program, maka membutuhkan sarana percabangan_bersarang (nested branching).
Pola algoritma: (Andai ingin ditentukan terbesar dari A1, A2, ...An. Bilangan terbesar yang diperoleh akan disimpan di dalam variabel
B)
 B diisi dengan isi variabel pertama (A1)
 Bandingkan B dengan isi variabel kedua (A2). Jika B ’kalah besar’ maka B diberi nilai A2. Jika ’tidak kalah
besar’ maka diamkan isi B
 Bandingkan B dengan isi variabel ketiga (A3). Lakukan hal yang sama dengan pembandingan di atas.
 .... lakukan terus sampai terakhir isi B dibandingkan dengan isi variabel terakhir (An). Lakukan hal yang
sama dengan pembandingan di atas.
 Setelah itu, nilai B akan dipastikan terbesar di antara A1, A2,..., An.
Algoritma ini memanfaatkan sifat memori utama (yang notabene dipakai untuk menyimpan data saat program dikerjakan) yaitu: volatil
(isi mudah menguap, tidak permanen). Jika B (sebuah variabel = sebuah sel pada memori utama) diisi ulang dengan nilai baru, maka
nilai yang lama akan hilang. Untuk meyakinkan kebenaran algoritma tipe 3 ini, silahkan diragakan dengan sejumlah terbatas data.

Lembar Praktikum Pemrograman Komputer(JPMIPA)- Agustus 2020 -4-


D. Percobaan Terbimbing.
1. Sunting program Contoh4 di bawah, lakukan kompilasi & link sampai benar, eksekusilah beberapa kali, dan amati !
Program Contoh4;
Uses Wincrt;
Var
Besar, A, B : integer;
Begin
Write(‘Ketik bilangan bulat ke-1 : ‘); Readln(A);
Write(‘Ketik bilangan bulat ke-2 : ‘); Readln(B);
If A > B then Besar := A else Besar := B;
Writeln(‘Bilangan terbesar di antara ’,A, ‘ dan ’, B, ‘ adalah ‘, Besar);
End.

Panduan Pengamatan:
 Pada setiap kali eksekusi, isilah variabel A dan B dengan berbagai kombinasi bilangan bulat. Ada 3 kombinasi (mengapa dan apa
saja ?).
 Ujilah apakah output merupakan informasi yang valid ?.

2. Modifikasilah program contoh4 di atas, untuk persoalan menentukan bilangan terkecil !.


3. Modifikasilah program contoh4 di atas untuk persoalan maksimum dari 3 data yaitu: A, B, dan C.
4. Sunting program Contoh4 di bawah, lakukan kompilasi & link sampai benar, eksekusilah beberapa kali, dan amati !
Program Contoh4a;
Uses Wincrt;
Var
A: Byte;
K: string;
Begin
Write(‘Ketik bilangan bulat: ‘); Readln(A);
If A mod 2 = 0 then K := “Genap” else K := “Gasal”;
Writeln(‘Bilangan ’,A, ‘ adalah ‘, K);
End.

Lembar Praktikum Pemrograman Komputer(JPMIPA)- Agustus 2020 -5-


E. Percobaan Mandiri.
Buatlah salah satu latihan berikut !. (Program harus komunikatif)
 Kembangkan sebuah program untuk menentukan rentang data dari sejumlah 5 bilangan bulat. (Pakai pola algoritma tipe 3)

F. Tugas #3. (disajikan sebagai isi dari portofolio proses dan produk perkuliahan)
 Buat kesimpulan singkat hasil pengamatan anda selama tatapmuka ini !
 Dengan memakai pola algoritma tipe 2 di atas, kembangkan sebuah program Pascal untuk menentukan umur bulan (dalam satuan hari) jika
diketahui kode_bulan dan tahun (keduanya berupa data integer). Keluaran berupa informasi nama bulan (bukan kode bulan lagi), tahun, dan
usia bulan dalam satuan hari.

Lembar Praktikum Pemrograman Komputer(JPMIPA)- Agustus 2020 -6-

Anda mungkin juga menyukai