Dasar-dasar Pemrograman : Percabangan II dalam Java beserta Contoh Soal
Block Statement
Block statement atau dapat juga disebut compound statement dapat digunakan untuk mengeksekusi lebih dari satu statement pada suatu cabang dari suatu struktur percabangan. Untuk membuat block statement, Anda dapat menempatkan statement-statement tersebut di antara pasangan kurung kurawal, ‘{‘ dan ‘}’. Contoh block statement dapat dilihat pada gambar di bawah.
Perhatikan gambar di bawah! Pada Gambar tersebut, statement2 tidak termasuk dalam struktur percabangan if sehingga eksekusi statement tersebut tidak bergantung kepada kondisi percabangan.
Multiway If-Else Statement
Struktur percabangan if-else hanya dapat memiliki dua percabangan, bacalah slide dan modul minggu lalu jika Anda lupa. Struktur percabangan yang memiliki lebih dari 2 cabang dapat dituliskan dengan menggunakan struktur multiway If-else. Contoh struktur multiway if-else dapat dilihat pada Gambar di bawah ini !
Switch-Case Statement
Struktur percabangan switch-case merupakan struktur percabangan yang bekerja dengan mengevaluasi nilai dari suatu controlling expression dan menyamakan hasilnya dengan beberapa case label. Contoh dari struktur ini dapat dilihat pada Gambar di bawah ini.
Nested-If Statement
Terkadang, penggunaan struktur multiway if-else menjadi kurang efisien ketika terdapat beberapa kondisi yang sama pada beberapa branch berbeda, seperti yang ditunjukan Gambar berikut.
Kode pada Gambar di atas dapat diubah menjadi struktur nested-if seperti yang ditunjukan oleh Gambar di bawah. Struktur nested-if, merupakan suatu struktur di mana percabangan berada di dalam struktur percabangan lain.
Wombat TV
Televisi di Wombatland terdiri dari 100 channel (0 sampai dengan 99). Sayangnya, walau memiliki banyak channel, Wombatland tidak memproduksi remote. Mr.Wombat memiliki sebuah televisi produksi Wombatland. Namun, karena Mr.Wombat tidak memiliki remote, maka dia harus memindahkan channel TV secara manual dengan menekan tombol naik dan turun. Dia menyadari bahwa jika channel sudah mencapai 99, dan dia menekan tombol naik, maka channel akan kembali ke nol. Begitupun sebaliknya, jika channel sudah di nol dan dia menekan tombol turun, maka channel akan menjadi 99. Karena Mr.Wombat orang yang malas, dia selalu ingin meminimalkan penekanan tombol. Misalkan, jika channel awal adalah 2 dan channel tujuan adalah 95, maka dia akan memilih menekan tombol turun sebanyak 7 kali daripada dia menekan tombol naik sebanyak 93 kali. Namun sayang sekali, Mr.Wombat tidak pandai berhitung.
Bantulah Mr.Wombat untuk membuatkan program yang menentukan jumlah minimal penekanan tombol serta tombol apa yang harus ditekan.
Bantulah Mr.Wombat untuk membuatkan program yang menentukan jumlah minimal penekanan tombol serta tombol apa yang harus ditekan.
Spesifikasi Input
Input berupa dua buah bilangan bulat dan (0 ≤ , ≤ 99) yang dipisahkan oleh spasi, dimana adalah channel awal dan adalah channel tujuan.
Spesifikasi Output
Tampilkan String dengan format “<jumlah penekanan><spasi><Naik/Turun>”.
Contoh Input 1
4 15
Contoh Output 1
11 Naik
Contoh Input 2
99 93
Contoh Output 2
6 Turun
Di Wombatland terdapat suatu perusahaan percetakan kalender. Kalewom, sang pemilik perusahaan selalu kebingungan jika akan mencetak bulan Februari, apakah hanya 28 hari atau 29 hari. Jika tahun yang bersangkutan adalah tahun kabisat, maka bulan Februari memiliki 29 hari. Jika bukan kabisat maka 28 hari. Berikut ketentuan tahun kabisat.
- Jika tidak habis dibagi 4: bukan kabisat
- Jika habis dibagi 4 dan tidak habis dibagi 100: kabisat
- Jika habis dibagi 4 dan habis dibagi 100, tetapi tidak habis dibagi 400: bukan kabisat Selain ketentuan di atas, semuanya termasuk tahun kabisat
Bantulah Kalewom untuk menentukan tahun yang akan dicetak kabisat atau bukan.
Spesifikasi Input
Program akan menerima input berupa bilangan bulat yang merupakan tahun yang akan dicetak.
Spesifikasi Output
Output berupa String, “Kabisat” jika tahun input adalah tahun kabisat atau “Bukan kabisat” jika tahun input bukan tahun kabisat.
Contoh Input 1
1800
Contoh Input 2
1600
Contoh Output 1
Bukan kabisat
Contoh Output 2
Kabisat
Rook
Mr. Wombat sedang belajar bermain catur. Sayangnya, ia tidak terlalu ingat aturan permainan catur sehingga tidak tahu apakah perpindahan bidak yang ia lakukan sah atau tidak.
Salah satu yang sering dilupakan oleh Mr. Wombat adalah aturan benteng. Pergerakan bidak benteng pada catur dianggap sah jika perpindahannya sejajar horizontal atau vertikal. Perhatikan gambar berikut. Perpindahan yang sah ditandai dengan warna hijau.
Jika x merupakan posisi bidak secara horizontal dan y merupakan posisi bidak secara vertikal, tentukan apakah perpindahan bidak benteng dari x1y1 ke x2y2 sah! Jika sah, tentukan juga ke mana bidak tersebut berpindah, ke kanan, kiri, maju, atau mundur (asumsikan bidak maju jika nilai y membesar).
Spesifikasi Input
Program akan menerima input berupa empat buah bilangan bulat yang merupakan x1, y1, x2, y2 yang dipisahkan oleh spasi.
Spesifikasi Output
Output berupa String dengan aturan sebagai berikut.
- “Tidak sah” jika perpindahan tidak sah.
- “Maju” jika bidak catur bergerak ke arah depan posisi awal.
- “Mundur” jika bidak catur bergerak ke arah belakang posisi awal.
- “Kanan” jika bidak catur bergerak ke arah kanan posisi awal.
- “Kiri” jika bidak catur bergerak ke arah kiri posisi awal.
Contoh Input 1
2 3 4 5
Contoh Input 2
2 3 2 5
Contoh Output 1
Tidak sah
Contoh Output 2
Maju
Seekor wombat sedang bingung untuk menentukan siapa saja diantara temannya yang merupakan teman dekatnya. Untuk itu ia menetapkan 3 level pertemanan. Level ‘Sangat bro!’ merupakan level yang ditujukan kepada temannya yang memberikan ucapan ulang tahun pada tanggal yang benar dan paling lambat 2 jam setelah jam 12 malam. Level ‘Bro!’ merupakan teman-temannya yang memberikan ucapan ulang tahun tanggal yang benar saja. Sedangkan level ‘Kurang bro!’ merupakan teman-temanya yang memberikan ucapan ulang tahun pada tanggal yang salah.
Spesifikasi Masukan
Masukan program terdiri dari 3 buah bilangan bulat yaitu n, m, dan x. Bilangan bulat n (0 <= n <= 23) merupakan jam temannya memberikan ucapan selamat ulang tahun. Bilangan bulat m (1 <= m <= 31) merupakan tanggal temannya memberikan ucapan selamat ulang tahun. Sedangkan bilangan bulat x (1 <= x <= 31) merupakan tanggal di mana sang wombat berulang tahun.
Spesifikasi Keluaran
Keluarkan ‘Sangat bro!’, ‘Bro!’, atau ‘Kurang bro!’ sesuai dengan deskripsi masalah.
Contoh Masukan 1
0 21 21
Contoh Masukan 2
2 21 21
Contoh Masukan 3
13 21 21
Contoh Keluaran 1
Sangat bro!
Contoh Keluaran 2
Sangat bro!
Contoh Keluaran 3
Bro!
Toko online Wukalapak sedang mengadakan promo dengan memberikan voucher belanja. Voucher tersebut memberikan diskon 10% terhadap biaya total belanja. Jika barang tidak dikirim melainkan pembeli mengambil sendiri ke gudang, maka penggunaan voucher akan memotong 20% dari harga barang. Namun voucher belanja tersebut memiliki keterbatasan, jika biaya pengiriman melebihi harga barang maka voucher hanya akan memotong 5% dari biaya pengiriman barang tanpa memotong harga barang.
Berikut adalah perhitungan biaya total dan biaya pengiriman :
biaya_total = harga_barang + biaya_pengiriman
biaya_pengiriman = berat_barang * 2500
Bantulah wombat untuk menentukan uang yang harus dibayar oleh wombat tersebut !
Spesifikasi Masukan
Masukan terdiri dari 2 buah bilangan bulat n dan m; dan sebuah string k . Bilangan bulat n merupakan harga barang yang akan dibeli wombat. Sedangkan bilangan bulat m merupakan berat dari barang yang akan dibeli wombat. String k merupakan string bernilai ‘dikirim’ atau ‘diambil’ yang menandakan jika barang yang dibeli wombat akan dikirimkan oleh penjual atau diambil sendiri oleh pembeli.
Spesifikasi Keluaran
Uang yang harus dibayarkan oleh wombat, dengan ketelitian 2 desimal di belakang koma.
Contoh Masukan
12000 3 dikirim
Contoh Keluaran
17550.00
Seekor wombat sedang bingung saat akan melakukan FRS, dosen walinya menanyakan mata kuliah apa saja yang akan diambilnya. Sebenarnya wombat tersebut telah mengetahui mata kuliah apa yang hendak diambilnya, yaitu hanya mata kuliah B, namun dia bingung apakah mata kuliah tersebut dapat diambil atau tidak karena mata kuliah B memiliki syarat berupa SKS minimal dan status kelulusan mata kuliah A yang menjadi prasyarat dari mata kuliah B.
Bantulah wombat tersebut menentukan apakah ia dapat mengambil mata kuliah B atau tidak.
Spesifkasi Masukan
Masukan program terdiri dari 3 baris. Pada baris pertama terdapat sebuah bilangan bulat n (0 <= n <= 144) yang merupakan SKS total wombat 2 semester lalu. Pada baris kedua terdapat 2 buah bilangan bulat, yaitu a dan b. Bilangan bulat a merupakan nilai mata kuliah A yang baru saja diselesaikan wombat semester lalu dan bilangan bulat b merupakan bobot SKS mata kuliah A. Pada baris ketiga terdapat bilangan bulat r dan string k. Bilangan bulat r merupakan syarat SKS minimal untuk mengambil mata kuliah B. String k merupakan string yang bernilai ‘Lulus’ atau ‘Tempuh’. Jika string k bernilai ‘Lulus’ maka wombat harus lulus mata kuliah A untuk mengambil mata kuliah B. Jika string k bernilai ‘Tempuh’ maka wombat tidak perlu lulus mata kuliah A untuk mengambil mata kuliah B.
Program tersebut harus bisa berjalan dengan kondisi
- SKS sebelum pengambilan Matkul B harus lebih besar dengan syarat
- Jika nilai Matkul A < 50, maka tidak lulus
Spesifikasi Keluaran
Keluarkan ‘Bisa’ jika wombat dapat mengambil mata kuliah B dan ‘Tidak bisa’ jika sebaliknya.
Contoh Masukan
80
92 4
83 Lulus
Contoh Keluaran
Bisa
Sumber
http://informatika.unpar.ac.id/
Modul Daspro : Percabangan II
Tugas Praktek : Percabangan II
Sumber
http://informatika.unpar.ac.id/
Modul Daspro : Percabangan II
Tugas Praktek : Percabangan II
Posting Komentar