Dasar-Dasar Pemrograman : Percabangan dalam Java beserta Contoh Soal
Untuk dapat memecahkan permasalahan dengan branching, Anda dituntut untuk jeli dalam menangkap setiap kondisi yang mungkin terjadi. Pastikan Anda memahami permasalahannya terlebih dahulu serta merancang ide problem solving-nya sebelum anda mulai menuliskan kode program.
Ekspresi Boolean
Pada bagian ini, kita akan berlatih menggunakan ekspresi boolean pada Java. Untuk memudahkan demonstrasi, anda perlu membuat file dengan nama DemoBoolean sebagai tempat anda mencoba kode program.
Perhatikan program DemoBoolean pada Gambar di atas ! Apa arti dari ekspresi demoVar1= demoChar ==’q’; ?
Tambahkanlah perintah-perintah untuk melakukan hal berikut ini :
Buat sebuah variabel dengan nama demoVar2 dan isi nilainya dengan ekspresi yang memeriksa apakah isi demoChar tidak sama dengan huruf ‘a’. Print isi variabel tersebut ke layar.
Tambahkanlah kode untuk melakukan hal-hal di bawah ini dengan menggunakan ekspresi logika! Untuk mengerjakan bagian ini, anda perlu menambahkan dua buah variabel lokal dengan nama demoInt1 dan demoInt2. Isi nilai variabel demoInt1 dengan 5 dan demoInt2 dengan 12. Tambahkan variabel-variabel lokal demoVar bertipe boolean yang dibutuhkan.
Coba Program !
Catatan: Seluruh atribut dari demoVar4 sampai dengan demoVar11 tidak membutuhkan perintah if !
Branching
Dalam kehidupan sehari-hari, kita mengenal kata “jika” untuk menyatakan syarat dari sebuah keadaan (jika saya rajin belajar Daspro, seharusnya saya lulus kuliah tsb, dll). Demikian juga dengan bahasa pemrograman. Dengan conditional control structure, komputer dapat memilih antara dua atau lebih alternatif yang ada.
If, if-else, block statement
Struktur branching dengan sebuah kondisi dapat dituliskan seperti pada Gambar di bawah sebagai berikut :
Sebuah struktur branching dapat mengandung block statement. Block statement ditandai dengan penggunaan sepasang tanda kurung kurawal ( ‘{‘ dan ‘}’ ). Awal dari block ditandai dengan ‘{‘, sedangkan akhir dari block ditandai dengan ‘}’.
Gambar di atas menunjukkan sebuah block statement yang terdiri dari N buah statement ( statement1, …, statementN ). Arti dari struktur tersebut adalah “ jika kondisi yang tertera terpenuhi, maka N buah statement tersebut akan dieksekusi.”
Struktur branching dengan 2 kondisi dapat dituliskan seperti pada Gambar di bawah ini :
Contoh Soal
Magic Spell
Harry Wotter adalah seekor Wombat yang sedang belajar sihir. Guru sihir Harry telah mengajarkan bahwa kalimat yang bersifat magical adalah kalimat yang huruf pertama dan huruf terakhirnya sama atau jarak perbedaaannya hanya satu. Sebagai contoh, berikut ini adalah contoh kalimat-kalimat yang bersifat magical :
- abra kadabra : huruf pertama (a) dan huruf terakhirnya (a) sama
- lab acadak : huruf pertama (l) dan huruf terakhirnya (k) berjarak 1
- bac : huruf pertama (b) dan huruf terakhirnya (c) berjarak 1
Buatlah sebuah program yang menerima masukan berupa sebuah kalimat dan akan menentukan apakah kalimat tersebut bersifat magical atau tidak!
Spesifikasi Masukan
Masukan program ini adalah sebuah kalimat. Sebuah kalimat hanya dapat mengandung huruf non kapital. Sebuah kalimat dapat mengandung spasi.
Spesifikasi Keluaran
Keluarkan “magical” bila kalimat tersebut bersifat magical dan “tidak magical” bila sebaliknya.
Contoh Masukan dan Keluaran
Estimasi Pendapatan
Perusahaan MicroWombat baru saja mengeluarkan sebuah produk baru. Para analis mereka telah membuat estimasi pendapatan yang akan mereka terima pada hari ke-T dari peluncuran produk. Estimasi ini dihitung dengan sebuah fungsi dengan parameter T. Fungsi estimasi tersebut adalah
F(T) = 3T^2 + 5T +200
Sebagai contoh, estimasi pendapatan yang akan mereka terima pada hari ke-5 adalah 300.
Beberapa hari setelah peluncuran, mereka mulai mendapatkan data pendapatan sebenarnya yang mereka terima pada salah satu hari. MicroWombat ingin menggolongkan pendapatan pada data yang mereka miliki ke kategori “di atas estimasi”, “sesuai estimasi”, atau “di bawah estimasi”. Bila data yang mereka miliki adalah data dari hari ke H dan pendapatan sebenarnya yang mereka terima adalah P maka aturan penggolongan yang digunakan adalah sebagai berikut:
- Di atas estimasi : bila P lebih besar daripada F(H) dan selisihnya lebih besar dari 0.5
- Di bawah estimasi : bila P lebih besar daripada F(H) dan selisihnya lebih besar dari 0.5
- Sesuai estimasi : bila selisih antara P dan F(H) lebih kecil atau sama dengan 0.5
Sebagai contoh, berikut ini hasil penggolongan beberapa contoh data pendapatan sebenarnya.
- Pendapatan hari ke-2 sebesar 222,9 → di atas estimasi: estimasi pendapatan pada hari ke 2 adalah 222. Pendapatan sebenarnya (222,9) ada di atas estimasi dan selisihnya lebih besar dari 0.5
- Pendapatan hari ke-5 sebesar 275 → di bawah estimasi: estimasi pendapatan pada hari ke-5 adalah 300. Pendapatan sebenarnya (275) ada di bawah estimasi dan selisihnya lebih besar dari 0.5
- Pendapatan hari ke-10 sebesar 549.6 → sesuai estimasi: estimasi pendapatan pada hari ke-10 adalah 550. Selisih antara pendapatan sebenarnya (549.6) dan estimasi lebih kecil dari 0.5
Buatlah sebuah program untuk melakukan penggolongan ini !
Spesifikasi Masukan
Masukan pertama untuk program adalah sebuah bilangan bulat H (H>0) yang merupakan hari dari dicatatnya pendapatan tersebut. Masukan kedua program adalah sebuah bilangan real P (P>0) yang merupakan pendapatan sebenarnya pada hari tersebut.
Spesifikasi Keluaran
Keluarkan “di atas estimasi”, “di bawah estimasi” atau “sesuai estimasi” sesuai dengan aturan yang telah dijelaskan pada deskripsi masalah.
Contoh Masukan dan Keluaran
Ratu
Buatlah sebuah program untuk memeriksa apakah 2 buah ratu pada sebuah papan catur berukuran 8 x 8 dapat saling mengancam. Program ini akan menerima masukan berupa posisi (baris dan kolom) dari kedua ratu. Baris 1 adalah baris paling bawah dari papan catur tersebut. Kolom 1 adalah kolom paling kiri dari papan catur.
Program ini juga harus dapat memeriksa apakah posisi kedua ratu tersebut valid atau tidak. Karena papan catur yang digunakan berukuran 8 x 8 maka sebuah ratu dianggap valid posisinya bila baris dan kolomnya bernilai dari 1 s/d 8 (masih ada di dalam papan).
Spesifikasi Masukan
Program akan menerima masukan berupa 4 buah bilangan bulat. 2 bilangan bulat pertama merupakan baris dan kolom dari ratu pertama. 2 bilangan bulat kedua merupakan baris dan kolom dari ratu kedua. Posisi dari ratu selalu valid (tidak melebihi ukuran papan).
Spesifikasi Keluaran
Program akan mengeluarkan “saling mengancam” bila posisi kedua ratu tersebut memungkinkan mereka untuk saling memakan atau mengeluarkan “tidak saling memakan” bila posisi mereka tidak saling mengancam.
Contoh Masukan dan Keluaran
Sumber
Modul Daspro : Percabangan Revisi 2
Posting Komentar