Tujuan Intruksional :
Kontrol if(ekspresi){..T...} memiliki syarat bahwa jika kondisi d dalam ekspresi terpenuhi atau
bernilai true, alur program akan masuk dan mengerjakan instruksi/pernyataan di dalam blok
true {..T..}. Jika tidak terpenuhi, alur program akan melewati ata mengabaikan blok true,
kemudian secara normal dan berurutan (sequence) melanjutkan rangkaian instruksi/pernyataan
bebas lanjutan di luar blok true (..T..)..disini...
"pernyataan" atau "pernyataan1" adalah suatu pernyataan yang hanya akan dijalankan
jika telah memenuhi kondisi (benar atau true) dari nilai pengujian if(expres). Dengan
demikian, pernyataan ini bersifat tidak wajib, bergantung pada keadaan jika true
dijalankan atau false tidak dijalankan.
"next/new statement" adalah suatu pernyataan di luar konteks if(...). Pernyataan ini tidak
masuk dalam kategori pengujian atau seleksi, sehingga jika alur program berjalan
secara normal (sequence/terurut), pernyataan ini sudah pasti akan dieksekusi (wajib).
Contoh Soal
Soal 1: Buatlah program dan deskripsi algoritma untuk menampilkan output dengan format:
"N= Bilangan Genap", jika N yang dimasukkan adalah bilangan genap.
Deskripsi Algoritma
Implementasi Program
Output
Masukkan Bilang:2 2= Bilangan Genap
1. Memanggil library java.util dari class Scanner yang menyediakan method input atau output.
2. Nama class program tersebut adalah: Seleksi1
3. Awal blok dari class Seleksi 1
4. Method utama untuk mengimplementasikan class seleksi
5. Awal blok dari method main().
6. Memperkenalkan atau menginisialisasi variabel: Bil, tipei nteger
7. Menampilkan keterangan dialog input: "Masukkan Bilangan:”
8. Mengimplementasikan class Scanner untuk mendapatkan method input data dari keyboard:
Scanner(System.in);
9. Menyimpan data yang dimasukkan dari keyboard ke dalam variabel Bil. Dengan catatan,
data yang dimasukkan harus angka bilangan bulat, karena inisialisasi tipe int.
10. Melakukan seleksi, apakah Bil yang dimasukkan jika dibagi 2 hasilnya sisa nol? Jika ya
(benar), program akan mengerjakan pernyataan nomor 11, yaitu menampilkan keterangan
"Bil = Bilangan Genap". Jika tidak, program akan beralih le nomor 12 (akhir dari blok
main), sehingga program tidak mengeluarkan keterangan apa pun. Selanjutnya, ke nomor
13 (akhir dari blok class seleksi1). Sisa bagi dikenal dengan fungs modulus, dalam java
modulus menggunakan lambang %.
11. Menampilkan output dengan format: Bil + = Bilangan Genap " Bil adalah variabel integer
yang menampung angka yang diinput, pencetakan output untuk variabel tidak boleh
mengenakan tanda kutip"". Tanda + selain sebagai simbol penjumlahan, bisa juga
digunakan untuk merangkai variabel dan string dalam tanda kutip " " String di sini adalah
keterangan "= Bilangan Genap".
12. Akhir dari blok method main()
13. Akhir dari blok class Seleksi1.
Selain itu, struktur if(...) bisa dalam bentuk if tersarang (nested if), yaitu if yang berada di
dalam lingkungan statemen if yang lainnya.
Contoh dan bentuk penulisannya adalah:
Kontrol if_dua_kondisi: if(ekspresi){..T..} else {..F..} memiliki syarat bahwa jika kondisi
di dalam ekspresi terpenuhi atau bernilai true, alur program akan masuk dan mengerjakan
instruksi/pernyataan di dalam blok true {..T..}. Selanjutnya alur program akan melewati atau
mengabaikan blok {..F..}, dan langsung menjalankan rangkaian instruksi/pernyataan
lanjutan di luar konteks (ekspresi) tersebut, yakni {..T..} else {F}...disini.. Sementara itu,
jika tidak terpenuhi, alur program akan langsung melewati atau mengabaikan blok true,
tetapi beralih dan masuk ke dalam blok false {..F..}, sekaligus mengerjakan
instruksi/pernyataan di dalam blok false tersebut. Selanjutnya program menjalankan
rangkaian instruksi/pernyataan lanjutan di luar konteks (ekspresi) tersebut, yakni {..T..} else
{..F..)... disini...
Gambar 6.2 Diagram alir dan bentuk umum if....else..
Keterangan:
Jika hasil cek (ekspresi) menghasilkan nilai true, alur program akan melaksanakan
instruksi/pernyataan pada bagian blok true, dalam hal ini "pernyataan1" kemudian
mengabaikan pernyataan di dalam else, yakni pernyatan2, dan melanjutkan pernyataan
di luar konteks ekspresi if..() else...
Namun jika hasil cek (ekspresi) bernilai false, aliran program akan langsung menuju ke
blok false di bawah else, dalam hal ini pernyataan2, sambil mengabaikan seluruh
pernyataan di dalam blok true. Selanjutnya, program akan melanjutkan pernyataan di
luar konteks ekspresi if(...) else..
Pada saat program dijalankan (run-time) maka hanya salah satu dari keduanya; entah
pernyataan-1 atau pernyataan-2 yang dieksekusi tetapi tidak kedua-duanya. Sebab hal
ini bergantung pada kondisi true dijalankan pernyataan-1, atau false dijalankan
pernyataan-2, atau sebaliknya bergantung pada urutan eksekusi yang merujuk kepada
(ekspresi). Dengan demikian, kedua pernyataan ini salah satunya dianggap pernyataan
tidak pasti (wajib) dieksekusi pada saat berjalannya program.
"next/new pernyataan" adalah suatu pernyataan di luar konteks if(..) else... Pernyataan
ini tidak masuk dalam kategori pengujian atau seleksi, sehingga jika alur program
berjalan secara normal (sequence/terurut), pernyataan ini sudah pasti akan dieksekusi
(pasti).
Contoh Soal
Buatlah program dan deskripsi algoritma untuk menampilkan output dengan format N-
angka yang dimasukkan dari keyboard:
"N=Bilangan Genap", jika N yang dimasukkan adalah bilangan genap;
"N=Bilangan Ganjil", jika N yang dimasukkan adalah bilangan ganjil.
Deskripsi Algoritma
Implementasi program:
Penjelasan program:
1. Memanggil library java.util dari class Scanner yang me nyediakan method input atau
output.
2. Nama class program tersebut adalah: Seleksi2.
3. Awal blok dari class Seleksi2.
4. Method utama untuk mengimplementasikan class seleksi2
5. Awal blok dari method main().
6. Memperkenalkan atau menginisialisasi variabel: Bil, tipe integer.
7. Menampilkan keterangan dialog input: "Masukkan Bilangan
8. Mengimplementasikan class Scanner untuk mendapatkan method input data dari
keyboard: Scanner(System.in);
9. Menyimpan data yang dimasukkan dari keyboard ke dalam variabel Bil. Dengan
catatan data yang dimasukkan harus angka bilangan bulat.
10. Melakukan seleksi, apakah Bil yang dimasukkan jika bagi hasilnya sisa nol? Jika ya
(benar), program akan mengerjakan pernyataan nomor 11, yaitu menampilkan
keterangan "Bil-Bilangan Genap", kemudian menuju ke akhir blok main, yaitu 14.
11. Menampilkan keterangan: Bil-Bilangan Genap. Selanjutnya ke nomor 14 (akhir dari
blok class Seleksi2) dan 15, sambil mengabaikan baris 12 dan 13.
12. Jika kondisi baris 10 tidak sesuai, program akan mengabaikan baris 11, langsung
menuju dan melaksanakan instruksi baris 13. Selanjutnya, ke nomor 14 (akhir dari blok
class seleksi2) dan akhirnya ke akhir blok class baris 15.
13. Menampilkan keterangan: Bil-Bilangan Ganjil.
14. Akhir dari blok method main().
15. Akhir dari blok class Seleksi2.
Gambar 6.3 Diagram Alir dan bentuk umum if(....) else.... multi kondisi
Contoh Soal: Test Kode
Buatlah deskripsi algoritma, flowchart, dan program Java, untuk melakukan proses
penyeleksian input kode jabatan, kemudian menampilkan kode, jabatan, dan gaji dengan
ketentuan sebagai berikut.
Implementasi Program
6.4 SWITCH-CASE MULTI_VALUE
Kontrol percabangan switch-case merupakan bentuk pemilihan (selector) terhadap
berbagai nilai yang dikandung oleh suatu variabel. Jika kontrol if berisi tentang ekspresi,
kontrol switch berisi tentang besaran nilai (value) dari suatu variabel. Perlu diperhatikan,
variabel yang menjadi pilihan adalah variabel bertipe int, byte, short, dan char. Bentuk
penulisannya adalah seperti berikut ini.
Contoh Soal: Test Kode; memodifikasi contoh soal if-else dengan metode seleksi
switch-case.
Implementasi Program
6.5 LAMPIRAN TABEL KEPUTUSAN
1. Pendahuluan
Tabel keputusan (decision table) adalah tabel yang digunakan sebagai alat bantu
untuk menyelesaikan logika di dalam program. Algoritma yang berisi keputusan
bertingkat yang banyak sekali sangat sulit untuk digambarkan langsung dengan
Structured English atau pseudocode dan dapat dibuat terlebih dahulu dengan
menggunakan tabel keputusan. Dengan demikian, tabel keputusan efektif
digunakan bilamana kondisi yang akan diseleksi di dalam program jumlahnya
cukup banyak dan rumit.
2. Struktur dan Tabel Keputusan
Struktur dan tabel keputusan terdiri dan empat bagian utama, yaitu condition stub,
condition entry, action stub, dan action entry seperti tampak pada tabel berikut ini.
Condition stub berisi kondisi yang akan diseleksi condition entry berisi kemungkinan-
kemungkinan dan kondisi yang diseleksi, yaitu terpenuhi (diberi simbol 'Y') dan tidak
terpenuhi (diberi simbol 'T'). Setiap kondisi yang diseleksi akan mempunyai dua
kemungkinan kejadian, yaitu terpenuhi dan tidak terpenuhi. Bila ada x kondisi yang
diseleksi, akan terdapat N kemungkinan kejadian, yaitu sebesar N2. Action stub berisi
pernyataan-pernyataan yang akan dikerjakan baik kondisi yang diseleksi terpenuhi
maupun tidak terpenuhi. Action entry digunakan untuk memberi tanda tindakan mana
yang akan dilakukan dan mana yang tidak akan dilakukan.
Kolom nomor 5 dan 7 dapat digabung, karena tindakannya sama. Demikian juga kolom 6 dan
8 dapat juga digabung, sehingga tabel keputusan menjadi:
1 2 3 4 5&7 6&8
a. Apakah unit yang dipesan >= unit minumum potongan? Y Y Y Y T T
b. Apakah pemesannya dealer? Y Y T T - -
c. Apakah unit persediaan mencukupi? Y T Y T Y T
a. Mendapatkan potongan X X - - - -
b. Tidak mendapatkan potongan - - X X X X
c. Kirim semua yang dipesan X - X - X -
d. Kirim yang ada saja - X - X - X
e. Buat catatan kekurangannya. - X - X - X
Tampak kolom 5 & 7 serta kolom 6 & 8 hasil gabungan menunjukkan baik itu dealer maupun
tidak sudah tidak berpengaruh lagi, karena unit yang dipesan sudah lebih kecil dan unit
minimum yang mendapatkan potongan. Berdasarkan hasil tabel keputusan tersebut, bila akan
dibuat structured English atau structured Indonesia atau pseudocode akan lebih mudah.
Structured Indonesia untuk tabel keputusan ini dapat berupa:
JIKA MAKA
unit dipesan >= unit minimum potongan dan mendapatkan potongan
pemesannya dealer dan unit persediaan mencukupi. kirim semua yang dipesan
unit dipesan >= unit minimum potongan dan mendapatkan potongan
pemesannya dealer dan unit persediaan tidak kirim yang ada saja
mencukupi buat catatan kekurangannya
unit dipesan >= unit minimum potongan dan tidak mendapatkan potongan
pemesannya bukan dealer dan unit persediaan kirim semua yang dipesan
mencukupi
unit dipesan >= unit minimum potongan dan tidak mendapatkan potongan
pemesanannya bukan dealer dan unit persediaan kirim yang ada saja
tidak mencukupi buat catatan kekurangannya
unit dipesan < unit minimum potongan dan unit tidak mendapatkan potongan
persediaan mencukupi kirim semua yang dipesan
unit dipesan < unit minimum potongan dan unit tidak mendapatkan potongan
persediaan tidak mencukupi kirim yang ada saja
buat catatan kekurangannya.