SELEKSI KONDISI
A. PENDAHULUAN
Seperti telah kita bahas dalam Materi Logika dan Algoritma dimana Struktur Algoritma
ada 3 bentuk struktur, maka dalam dunia pemrogramanpun ada 3 bentuk alur program,
yaitu :
Dalam kenyataan sehari-hari, untuk sebuah program yang paling sederhana biasanya
sudah cukup menggunakan Alur Berurutan / Sequential, tapi dalam kenyataannya tidak
sedikit kasus yang kita jumpai, kasusnya sedikit lebih komplek dan biasanya program yang
dibuat harus menggunakan minimal dua bentuk alur diatas (kombinasi) atau bahkan akan
menggunakan 3 bentuk alur diatas untuk beberapa kasus yang sangat komplek.
Contoh mungkin kita pernah menjumpai pernyataan kalau nilai akhir lebih besar atau
sama dengan KKM maka siswa tersebut dinyatakan tuntas untuk mata pelajaran
tersebut. Atau mungkin kita pernah mendengar pernyataan kalau total pembelian suatu
produk minimum mencapai harga tertentu maka akan mendapatkan discount sekian
persen untuk pembelian produk tersebut. Terakhir mungkin anda pernah mengalaminya
sendiri untuk pembayaran harga sewa kamar hotel yang nilai harganya cukup bervariasi
tergantung dari jenis kamar yang kita pilih. Itulah contoh-contoh kasus dalam kehidupan
kita sehari-hari.
Pengertian Seleksi Kondisi disini adalah sebuah proses untuk menentukan langkah
berikutnya berdasarkan proses yang terjadi sebelumnya. Seleksi kondisi ini sangat
penting dalam pemrograman sebab dengan adanya seleksi kondisi, program dapat
menentukan proses apa yang harus dilakukan selanjutnya berdasarkan keadaan
Dalam Pascal ada dua macam perintah untuk seleksi kondisi, yaitu statement :
IF Statement....
CASE Statement.....
B. IF STATEMENT
Pernyataan IF statement adalah salah satu jenis perintah untuk seleksi kondisi yang
banyak digunakan. Cara kerja pernyataan IF adalah dengan cara bertanya satu-persatu
sampai suatu kondisi terpenuhi.
Pilihan statement IF ini digunakan kalau dalam kasus/masalahnya hanya ada dua pilihan
(opsi) saja.
Contoh Kasus :
Buatlah sebuah program yang dapat digunakan untuk menghitung Ketuntasan Peserta
Didik Terhadap Mata Pelajaran Tertentu Dengan Ketentuan sebagai berikut :
INPUT:
Nama Siswa, Nama Mapel, Nilai Ulangan Harian dan Tugas, Nilai UTS dan Nilai UAS
PROSES:
o Nilai Akhir = 70% Nilai Ulangan Harian dan Tugas + 15% Nilai UTS + 15% Nilai UAS
o Nilai KKM Untuk Semua Mapel Adalah 75
o Jika Nilai Akhir Siswa Lebih Besar Atau Sama Dengan 75, Maka Tampilkan
Keterangan TUNTAS bila tidak "TIDAK TUNTAS"
OUTPUT:
Nilai Akhir dan Keterangan
Penyelesaian :
Perhatikan dan Amati Contoh Program Dan Output Di Bawah Ini !!! :
Potongan program seperti di atas ini mengandung arti bahwa program akan menganggap
bahwa semua Siswa akan dinyatakan 'TIDAK TUNTAS' dulu semua, baru kemudian akan
disaring ulang untuk Siswa yang nilai akhirnya lebih besar atau sama dengan 75 maka
keterangannya akan diganti menjadi 'TUNTAS'.
Contoh Program diatas dapat pula kita tulis menjadi seperti gambar di bawah ini :
Potongan Program seperti ini mengandung arti bahwa program akan menganggap bahwa
semua Siswa akan dinyatakan 'TUNTAS' dulu semua, baru kemudian akan disaring ulang
untuk Siswa yang nilai akhirnya lebih kecil dari 75 maka keterangannya akan diganti
menjadi 'TIDAK TUNTAS'.
Kedua gambar potongan program di atas, apabila program di jalankan akan menghasilkan
output yang sama !!!
Studi Kasus
Sebuah Swalayan Multi Nasional Terkemuka di Jayapura, Sedang mengadakan promo
dalam rangka hari HUT Swalayan tersebut, yaitu dengan memberikan Discount Sebesar
5% Bagi Semua Customer/Pelanggan. Khusus Untuk Customer/Pelanggan Yang Total
Pembeliannya diatas Rp. 3.000.000,- Akan Mendapatkan Discount Sebesar 10 % dan
Sebuah Souvenir Menarik Yang Bisa Dibawa Pulang. Ketentuan yang berlaku sebagai
berikut :
INPUT: Nama Customer, Total Pembelian
PROSES:
o Bagi Setiap Customer Akan Mendapatkan Discount Sebesar 5%
o Khusus untuk Customer yang Total Pembelian diatas Rp. 3.000.000,-, Maka akan
mendapatkan Discount sebesar 10% dan Souvenir Menarik dari Swalayan
tersebut.
OUTPUT: Nilai Discount, Total Pembelian Bersih dan Keterangan Dapat Souvenir atau
Tidak
Perhatikan dan Amati Contoh Program Dan Output Di Bawah Ini !!! :
Contoh Program diatas dapat pula kita tulis menjadi seperti gambar di bawah ini :
PROSES :
o Kode Kursus Nama Kursus Biaya Pendaftaran
PSC-001 Pemrograman Pascal Rp. 3.000.000,-
BRT-002 Brevet A / B Rp. 2.000.000,-
o Jika Nilai Test Masuk > 85 Akan Mendapatkan Discount Sebesar 20% Dari Biaya
Pendaftaran
o Biaya Bersih = Biaya Pendaftaran - Discount
Bentuk penulisan perintah di atas adalah salah satu alternatif yang bisa kita pilih untuk
menyelesaikan suatu masalah yang hanya mempunyai dua opsi pilihan saja. Bentuk
penulisan di atas mempunyai arti bahwa semua data akan diperlakukan sama dahulu,
setelah itu data baru akan disaring/dipilih sesuai dengan ketentuan yang dibuat untuk
selanjutnya di proses.
Ada bentuk penulisan yang berbeda dengan di atas, dimana data yang masuk sebelum di
proses selanjutnya akan disaring/dipilih dan dipisahkan sesuai dengan ketentuan yang
berlaku untuk selanjutnya di proses. Untuk keperluan tersebut di atas maka bentuk
penulisan perintah IF Statement akan menjadi :
IF [kondisi] THEN
[Statement]
ELSE
[Statement];
Atau
IF [kondisi] THEN
[Statement]
ELSE
begin
[Statement];
[Statement];
end;
Atau
IF [kondisi] THEN
begin
[Statement];
[Statement];
end
ELSE
[Statement];
Atau
IF [kondisi] THEN
begin
[Statement];
[Statement];
end
ELSE
begin
[Statement];
[Statement];
end;
Contoh Kasus :
Studi Kasus
INPUT :
NAMA KARYAWAN, KODE JABATAN, STATUS PERKAWINAN, JUMLAH ANAK
PROSES :
o Jika Karyawan Tersebut Statusnya Sudah Menikah Maka Akan Mendapatkan Tunjangan
Istri Sebesar 5% dari GAPOK
o Setiap Anak Akan Mendapatkan Tunjangan Sebesar 5% dari GAPOK, dan Jumlah
Maksimum Anak Yang Mendapatkan Tunjangan Anak Tersebut Adalah 3 Anak.
o Setiap Karyawan yang total gaji pokok ditambah tunjangan-tunjangan (Gaji Kotor)
Di Atas Rp. 5.000.000,- Akan Dikenakan Pajak Sebesar 10% dari GATOR.
o Hitunglah Gaji Bersih Setiap Karyawan.
IF BERSARANG Statement
Dalam kehidupan nyata sehari-hari, pilihan yang ada tidak selalu hanya ada dua pilihan
saja, seperti YA / TIDAK, LAKI-LAKI / PEREMPUAN, LULUS / GAGAL dan lain sebagainya.
Ada kalanya kita akan dihadapkan oleh suatu masalah/kasus yang opsi pilihannya bisa
lebih dari 2, misalkan Anda diminta untuk menghitung jumlah penduduk di suatu
Kelurahan / Kecamatan berdasarkan Agama ( Ada 5 pilihan/opsi sesuai dengan UU,
Agama yang diakui di Indonesia ), contoh lain Anda diminta untuk membuat program
yang bisa digunakan Billing Tagihan ke Customer Suatu Hotel Berbintang ( Bisa lebih dari
2 pilihan/opsi, sesuai dengan jumlah tipe/jenis kamar yang disediakan oleh Hotel
tersebut ), atau Anda diminta untuk membuat program untuk mengkonversikan nilai
angka menjadi nilai huruf (grade A - E).
Untuk kasus-kasus seperti diatas dapat diselesaikan dengan Pascal dengan menggunakan
metode IF BERSARANG, dengan sintak penulisan perintahnya adalah :
Contoh Kasus :
Buatlah Program yang dapat digunakan untuk mengkonversikan nilai akhir angka menjadi
nilai akhir huruf (GRADE) Dengan ketentuan sebagai berikut :
INPUT :
Nama Siswa, Nama Mapel, Nilai Ulangan & Tugas, Nilai UTS dan Nilai UAS
PROSES :
o NA = 60% * Nilai Ulangan & Tugas + 20% * Nilai UTS + 20% * Nilai UAS
o NA Grade
0 - 45 E
46 - 55 D
56 - 75 C
76 - 85 B
86 - 100 A
SOURCE CODE :
Bentuk program diatas mempunyai nilai positif yaitu anda dapat menuliskan perintah if
dalam keadaan dibolak-balik, tetapi mempunyai nilai negatif program kita terlihat
menjadi lebih panjang, perhatikan gambar Source Program di bawah ini :
Ada alternatif lain yang dapat digunakan untuk lebih menyederhanakan penulisan
program diatas yaitu dengan penulisan program tanpa menggunakan perintah AND.
Kelemahan dari alternatif ini adalah perintah IF tidak bisa dibolak-balik. Perhatikan
potongan Program di bawah ini :
STUDI KASUS 2 :
Sebuah Perusahan Swasta Yang Sedang Berkembang Pesat Di Kota Jayapura,
Membutuhkan Sebuah Program/Aplikasi Yang Dapat Digunakan Untuk Menghitung Gaji
Para Karyawannya Untuk Setiap Bulannya. Anda Sebagai Seorang Programmer Diminta
Untuk Membuatkan Aplikasi Tersebut Dengan Ketentuan Sebagai Berikut :
INPUT :
NAMA KARYAWAN, KODE JABATAN, STATUS PERKAWINAN, JUMLAH ANAK
PROSES :
o Kode Nama Jabatan Gaji Pokok Tunjangan Tunjangan
Jabatan Jabatan Kesehatan
M Manager Rp. 4.500.000,- 10% GAPOK 7 % GAPOK
S Supervisor Rp. 3.300.000.- 5% GAPOK 3 % GAPOK
F Staff Rp. 2.600.000,- 3% GAPOK 3 % GAPOK
o Jika Karyawan Tersebut Statusnya Sudah Menikah Maka Akan Mendapatkan
Tunjangan Istri Sebesar 5% dari GAPOK
o Setiap Anak Akan Mendapatkan Tunjangan Sebesar 5% dari GAPOK, dan Jumlah
Maksimum Anak Yang Mendapatkan Tunjangan Anak Tersebut Adalah 3 Anak.
o Setiap Karyawan yang total gaji pokok ditambah tunjangan-tunjangan (Gaji Kotor)
Di Atas Rp. 5.000.000,- Akan Dikenakan Pajak Sebesar 10% dari GATOR.
o Hitunglah Gaji Bersih Setiap Karyawan.
OUTPUT :
Nama Jabatan, Gaji Pokok, Tunjangan Jabatan, Tunjangan Kesehatan, Tunjangan Istri,
Tunjangan Anak, Gaji Kotor, Pajak dan Gaji Bersih.
SOURCE PROGRAM :
Sebuah Rumah Sakit Swasta Baru Dan Sedang Berkembang Pesat Di Kota Jayapura,
Membutuhkan Sebuah Program Yang Dapat Digunakan Untuk Menghitung Biaya Yang
Harus Dibayarkan Oleh Pasien Yang Melakukan Perawatan Rawat Inap Di Ruma Sakit
Tersebut.Ketentuan Yang Berlaku Adalah :
PROSES :
o Tipe Kamar Biaya Kamar Kunjungan Dokter Layanan Suster
(Hari) (Hari) (Hari)
VIP Rp. 200.000,- Rp. 75.000,- Rp. 25.000,-
I Rp. 150.000,- Rp. 75.000,- Rp. 25.000,-
II Rp. 100.000,- Rp. 50.000,- Rp. 20.000,-
III Rp. 75.000,- Rp. 35.000,- Rp. 15.000,-
o BIAYA KOTOR Adalah Akumulasi Dari Biaya Kamar, Biaya Kunjungan Dokter dan
Biaya Layanan Suster
o Setiap Transaksi Akan Dikenakan Pajak Sebesar 10 % dari Biaya Kotor
o BIAYA BERSIH Adalah Biaya Kotor Ditambah Pajak
OUTPUT :
BIAYA KAMAR, BIAYA KUNJUNGAN DOKTER, BIAYA LAYANAN SUSTER, BIAYA KOTOR,
PAJAK dan BIAYA BERSIH
C. CASE Statement
Selain menggunakan IF Statement untuk pengambilan keputusan, ada perintah lain yang
dapat kita gunakan yaitu dengan CASE Statement. Pada hakekatnya perintah IF dan CASE
adalah sama yang digunakan untuk pengambilan keputusan, perbedaanya terletak pada
cara pengeksekusiannya, jika IF Statement itu artinya kita menyuruh komputer untuk
bertanya untuk memilih yang cocok, sedangkan CASE Statement artinya kita menyuruh
komputer untuk langsung memilih.
Perlu diingatkan tidak semua masalah yang dapat diselesaikan dengan menggunakan
perintah IF dapat diselesaikan dengan perintah CASE.
Contoh Kasus :
Buatlah program untuk dapat mengetahui jenis tombol yang dimasukkan oleh user !
Catatan :
Sebuah Perusahaan Baru dan Sedang Berkembang PesatDi Kota Jayapur, Yang Bergerak
Dalam Bidang Jasa Otomatif (Sewa Mobil), Membutuhkan Sebuah Aplikasi Yang Dapat
Digunakan Untuk Menghitung Biaya Sewa Mobil Dari Para Pelanggannya. Dengan
Ketentuan Sebagai Berikut :
INPUT : NAMA PELANGGAN, TIPE MOBIL, LAMA SEWA, Pakai SUPIR [Y/T]
PROSES :