Algoritma dan Pemrograman Teknik Percabangan (Pemilihan / Keputusan )
Referensi Bayu Rahayudi, 2011, Dasar-Dasar Pemrograman (Disertai Berbagai Kasus dan Diimplementasikan Dalam Bahasa Pascal), Malang, UB Press ( Ikaltim ) Feni Dwi Astuti, Indra Yatini B, Pulut Suryati , Y. Yohakim Marwanta , 2024, Algoritma , Pseudocode, Java Disertai dengan Latihan dan Soal, Yogyakarta : Graha Ilmu Sigit Susanto P, Devie Rosa A & Fifin Ayu M, 2019, Algoritma dan Pemrograman, MNC Publishing, Malang (Ipusnas) Sutrisno Arianto Pasaribu , 2023, Algoritma dan Pemrograman Dalam Bahasa Pascal dan C++, Yogyakarta : Deepublish Digital ( Ipusnas )
Tujuan Tujuan dari pembahasan ini adalah : Memahami tentang pembacaan data secara percabangan dalam bahasa pemrograman Mempraktekkan perintah-perintah percabangan dalam bahasa pemrograman
Percabangan serasi dengan kata mendua , yang artinya diperhadapkan dengan dua pilihan yang berbeda , dan harus dipilih salah satunya Percabangan adalah suatu operator yang digunakan untuk menentukan pilihan terhadap beberapa pilihan yang ada Pernyataan kondisional adalah suatu pernyataan yang hanya akan dijalankan jika suatu kondisi bernilai benar, berfungsi untuk melakukan filter atau penyaringan hasil berdasarkan kondisi tertentu Didalam penyelesaian permasalahan di dalam pemrograman, adakalanya diperlukan suatu pemilihan atau pembuatan keputusan, baik itu keputusan atas 2 pilihan atau lebih Pendahuluan
Pendahuluan Oleh karena itu, baik didalam perencanaan program dalam bentuk algoritma, flowchart, dan pseudocode, ataupun di dalam pembuatan program disediakan simbol atau perintah (syntax) untuk mengakomodasi hal tersebut Biasa disebut dengan simbol atau perintah pemilihan / keputusan, namun adapula yang menyebutnya sebagai percabangan (brancing) Simbol pemilihan/keputusan yang digunakan pada flowchart adalah simbol belah ketupat dan perintah yang digunakan adalah perintah if...then...else..
Pendahuluan Dari simbol yang ada tersebut, diketahui bahwa simbol pemilihan/keputusan memiliki karakteristik sebagai berikut : Adanya suatu kondisi/pernyataan yang memberikan pilihan atau pembuatan keputusan, yang disimbolkan dengan kondisi ? Proses yang terjadi, ketika dilakukan pemilihan atau pembuatan keputusan, yang disimbolkan dengan panah ya (Y), yang disebut kondisi positif dan panah yang tidak (T), yang disebut sebagai kondisi negatif Kondisi positif atau ya (Y), dipilih jika kenyataan/fakta memenuhi semua kondisi/batasan yang ada Kondisi negatif atau tidak (T), dipilih bila kenyataan/fakta berlawanan atau tidak memenuhi kondisi atau batasan yang ada
Dasar Teori Pernyataan percabangan digunakan untuk memecahkan persoalan untuk mengambil suatu keputusan diantara sekian pernyataan yang ada. Percabangan if merupakan sebuah blok program yang menyatakan bahwa seluruh aksi akan dijalankan jika kondisi percabangan dipenuhi, jika tidak dipenuhi maka aksi tidak akan dijalankan Percabangan if biasa digunakan untuk mengerjakan aksi yang memiliki syarat tertentu untuk menjalankannya atau dapat dikatakan bahwa pernyataan di dalam if adalah sebuah kondisi yang harus dipenuhi untuk menjalankan pernyataan yang ada di dalam then , dengan kata lain then adalah akibat yang ditimbulkan oleh if Pernyataan if diklasifikasikan ke dalam tiga (3) bagian yaitu pernyataan if dengan satu kondisi ( If tunggal ) Pernyataan if dengan dua kondisi ( If – Else ) Pernyataan if bersarang ( If di dalam If atau Nested If )
Dasar Teori Berdasarkan macamnya , seleksi dibagi menjadi 2 (dua) bentuk utama yaitu : If Switch Perbedaan antara kedua bentuk tersebut yaitu : If digunakan apabila seleksi memiliki lebih dari 1 kondisi dan nilai sedangkan switch digunanakn apabila hanya ada 1 kondisi dengan nilai yang bervariasi Berdasarkan perbedaan yang ada , maka dapat dilihat bahwa : Dalam bentuk switch, kondisi hanya dinyatakan dengan bilangan bulat atau karakter / string sedangkan if dapat digunakan untuk ya menggunakan operasi rentang nilai seperti <, >, <= dan >= Tidak ada konstanta yang sama dalam sebuah switch
If Dengan Satu Kondisi ( If Tunggal ) Percabangan if tunggal hanya melibatkan satu kondisi yang akan diperiksa. Apabila kondisi yang diperiksa bernilai benar, maka program akan mengeksekusi bagian yang berada dalam blok, jika sebaliknya, maka program akan mengabaikan pernyataan di dalam blok dan langsung melanjutkan eksekusi berikutnya Kondisi Aksi End
Contoh Program ( If Tunggal) #include <iostream> using namespace std; main() { int skor; char nilai; cout<<"Masukkan skor = ";cin>>skor; if (skor > 7) nilai = 'A'; cout<<"Nilai = "<<nilai<<endl; } Layout
Contoh Program ( If Tunggal) Layout
If Dengan Dua Kondisi ( If Majemuk ) Bentuk umum Dengan ketentuan : Jika kondisi bernilai 1, maka statement ke 1 yang dikerjakan Jika kondisi bernilai 0, maka statement ke 2 yang akan dikerjakan
If Dengan Dua Kondisi ( If Majemuk ) Pernyataan if dengan dua kondisi ( if – else ) dipergunakan untuk menyatakan pernyataan percabangan dua kondisi dimana ada dua blok aksi yang dipilih untuk dikerjakan jika syarat kondisi aksi terpenuhi If... else : Kontrol struktur else merupakan pelengkap dari kontrol if , digunakan untuk memberikan alternatif jawaban benar atau salah. Saat pembacaan program sampai pada blok if ... else , maka akan dilakukan pemeriksaan terhadap syarat kondisi percabangan yang ada pada deklarasi if Jika syarat dipenuhi maka yang akan dijalankan adalah aksi yang berada di dalam blok if , namun jika syarat tidak dipenuhi maka aksi akan dikerjakan adalah yang ada di dalam blok else
Contoh Program If Dengan Dua Kondisi (1) #include <iostream> using namespace std; main() { int Skor; char Nilai; cout<<"Masukkan skor = ";cin>>Skor; if (Skor > 7) Nilai = 'A'; else Nilai = 'B'; cout<<"Nilai = "<<Nilai<<endl; } Layout
Contoh Program ( If Majemuk )
Contoh Program ( If Majemuk )
Contoh Program If Dengan Dua Kondisi (2) #include <iostream> using namespace std; main() { float IPK, Waktu_studi; cout<<"Masukkan nilai IPK = ";cin>>IPK; cout<<"Masukkan waktu studi = ";cin>>Waktu_studi; cout<<"Hasil"<<endl; cout<<"-----"<<endl; if (IPK >= 3.5 and Waktu_studi <= 4.0) { cout<<"Mahasiswa tersebut lulus dengan Predikat Cumlaude"<<endl;} else { cout<<"Mahasiswa tersebut lulus tanpa Predikat Cumlaude"<<endl;} return 0; }
Layout
Contoh Program If Dengan Dua Kondisi (2) #include <iostream> using namespace std; int main() { int angka1, angka2; cout<< "Masukkan angka pertama: ";cin >> angka1; cout<<endl; cout<< "Masukkan angka kedua: ";cin >> angka2; cout<<endl; // Perbandingan dua variabel menggunakan AND if (angka1 % 5== 0 && angka2 % 5== 0) { cout << "Kedua angka merupakan kelipatan 5" << endl; } else { cout << "Salah satu atau kedua angka bukan kelipatan 5" << endl; } return 0; }
Contoh Program If Dengan Dua Kondisi (2) #include <iostream> using namespace std; int main() { int angka1, angka2; cout << "Masukkan angka pertama: "; cin >> angka1; cout<<endl; cout << "Masukkan angka kedua: "; cin >> angka2; cout<<endl; // Perbandingan dua variabel menggunakan AND if (angka1 > 0 && angka2 > 0) { cout << "Kedua angka positif" << endl; } else { cout << "Salah satu atau kedua angka bukan positif" << endl; } return 0; }
Latihan Soal If_Else Buatlah flowchart dan program untuk menampilkan informasi apakah warga perlu cek darah atau tidak
Latihan Soal If_Else Buatlah flowchart dan program untuk menampilkan informasi apakah suatu bilangan merupakan bilangan kelipatan tiga atau tidak
If Di Dalam If Yang Lain (Nested If) Selain pernyataan if dengan dua kondisi, suatu pernyataan if dapat mengandung pernyataan if yang lain Bentuk seperti ini disebut if bersarang ( nested if ) Sebuah program akan mengijinkan blok percabangan if di dalam blok percabangan lainnya dan tidak membatasi jenis percabangan apa yang boleh berada di dalam percabangan lainnya
If Di Dalam If Yang Lain (Nested If) If... ElseIf ..Else Nilai-nilai suatu ekspresi bisa jadi bukan merupakan dua nilai, benar atau salah, tetapi bisa mengandung banyak nilai. Bentuk if .. else .. digunakan untuk memutuskan suatu blok perintah yang harus dikerjakan berdasarkan dua macam nilai yang dihasilkan yaitu benar atau salah Jika terdapat lebih dari dua, maka harus digunakan struktur kontrol yang dapat memenuhi kebutuhan tersebut Struktur kontrol yang tepat untuk menjawab permasalahan tersebut adalah if ... elseif ... else yang dikenal dengan nested-if .
If Di Dalam If Yang Lain (Nested If) If... ElseIf ..Else Bentuk pernyataan ini bermanfaat untuk menyeleksi segala kemungkinan tindakan , penyeleksian dilakukan secara bertingkat , begitu ada kondisi yang bernilai benar , maka pernyataan yang sesuai dengan kondisi tersebut akan dijalankan dan jika tidak ada kondisi yang memenuhi , maka pernyataanX yang akan di jalankan
If Di Dalam If Yang Lain (Nested If) If... ElseIf ..Else Ketentuan Jika kondisi -1 bernilai 1, maka statement-1 akan dikerjakan Jika kondisi -1 bernilai 0, maka akan mengecek kondisi ke -2 Jika kondisi ke -2 bernilai 1, maka akan mengerjakan statement ke -2 Jika kondisi ke -2 bernilai 0, maka akan mengerjakan kondisi yang yang di bawahnya ( begitu seterusnya sampai percabangan ke –n) Dan jika pada kondisi ke –n bernilai 0, maka statement di dalam else yang akan dikerjakan
Contoh Nested If (1) #include <iostream> using namespace std; main() { int Skor; char Nilai; cout<<"Masukkan skor = ";cin>>Skor; if (Skor >= 7) Nilai = 'A'; else if (Skor >= 5) Nilai = 'B'; else Nilai = 'C'; cout<<"Nilai = "<<Nilai<<endl; }
Contoh Nested If ( 2 )
Contoh Nested If ( 3 )
Latihan Soal Buatlah flowchart dan program untuk menentukan apakah sebuah bilangan yang dimasukkan adalah Bilangan genap Bilangan ganjil dan jika bukan genap atau ganjil , maka informasi yang diberikan adalah ‘salah memasukkan bilangan ’
Latihan Soal
Latihan Soal Buatlah algoritma dan program untuk menentukan diskon bagi pembeli , berdasarkan : Total_Pembelian Discount Total beli > 1.000.000 20 % Total beli > 500.000 15 % Total beli > 100.000 10 % Total beli <= 100.000 Tidak ada discount
Perbedaan If & Switch Case If digunakan untuk masalah yang memiliki satu kondisi , dua kondisi atau banyak kondisi . Bentuk ini dapat dipakai apabila memiliki nilai yang beragam atau memiliki rentang nilai Switch digunakan untuk yang kondisinya satu tetapi memiliki banyak kemungkinan nilai Struktur kendali proses switch merupakan jenis kendali proses seleksi atau pilihan . Blok statemen yang akan dieksekusi adalah sesuai dengan pilihan dalam kontrol filter switch (..) terpenuhi ; apabila telah melewati selesai mengeksekusi statemen, maka akan keluar dari blok kontrol proses
Contoh Program If #include <iostream> #include < cstdlib > using namespace std; int main() { int kelas ; char lanjut ; do{ system(" cls "); cout <<"Masukkan kelas : "; cin >> kelas ; if ( kelas == 1){ cout <<" Besaran SPP Rp 100.000";} else if ( kelas == 2){ cout <<" Besaran SPP Rp 200.000";} else if ( kelas == 3){ cout <<" Besaran SPP Rp 300.000";} else{ cout <<"Salah masukkan kelas "<< endl ; } cout << endl ; cout <<" Apakah ingin melanjutkan ? (Y / T): "; cin >> lanjut ; }while( lanjut == 'Y'|| lanjut =='y'); cout << endl ; cout <<"Program berakhir . Sampai Jumpa ! \n"; return 0; }
Contoh Program Switch
Switch Case Adalah struktur kontrol yang digunakan untuk memilih salah satu dari banyak kemungkinan berdasarkan nilai dari suatu variable Adalah pernyataan yang digunakan untuk menjalankan salah satu penyataan dari beberapa kemungkinan pernyataan , berdasarkan nilai dari sebuah ungkapan dan nilai penyeleksi Hampir sama dengan menggunakan banyak if else , tetapi lebih ringkas dan rapi saat menanggani banyak kondisi tetap Note : Semua program yang dibuat dengan pernyataan switch dapat diubah menggunakan pernyataan if , tetapi tidak semua program yang telah dibuat dengan if dapat diubah dengan menggunakan pernyataan switch , karena ada batasan-batasan pada pernyataan switch
Switch Case Penjelasan ekspresi umumnya berupa variabel bertipe int, char, atau enum case adalah kemungkinan nilai yang akan dibandingkan break digunakan untuk menghentikan eksekusi agar tidak lanjut ke case lain default adalah opsi cadangan jika tidak ada case yang sesuai atau default hanya akan dijalankan jika ungkapan pada bagian case tidak ada yang sesuai Bentuk umum :
Bentuk Flowchart Menggunakan Switch
Switch-Case
Switch-Case
Switch Case Algoritma Kode_Bulan Deklarasi int kode_bulan {input / output} Deskripsi cin ( kode_bulan ) case( kode_bulan == 1,3,5,7,8, 10, 12) cout (“ Jumlah hari = 31 hari ”) case( kode_bulan == 4, 6, 9 , 11) cout (“ Jumlah hari = 30”) case( kode_bulan == 2) cout (“ Jumlah hari = 28 hari ) default cout (“Salah masukan kode bulan ”)
Soal Latihan Buatlah program menggunakan switch berdasarkan algoritma dibawah ini Algoritma Pilih_Program_Studi Pilih 1 Prodi Teknik Informatika Pilih 2 Prodi Teknik Komputer Pilih 3 Prodi Teknik Informatika Multimedia Pilih 4 Prodi Teknik Rekayasa Komputer Jika yang dipilih selain (1, 2, 3, dan 4), maka beri komentar “Salah masukkan pilihan ”
Tugas Buatlah program untuk membedakan bilangan ganjil dan bilangan genap dari algoritma berikut Algoritma_Pemilihan1 {contoh algoritma apakah bilangan genap atau bilangan ganjil} Deklarasi Integer bilangan; Deskripsi write(“masukkan satu bilangan bulat : ”); read(bilangan); if (bilangan % 2 == 0) then write (“Bilangan genap”); else write (“Bilangan ganjil”); endif
Buatlah program untuk memilih nilai terbesar dari 3 nilai yang diinputkan melalui keyboard dari algoritma dibawah ini : Algoritma Pemilihan2 {algoritma ini menerima 3 bilangan bulat kemudian menetapkan bilangan yang terbesar} Deklarasi Integer a, b, c; Deskripsi write (“masukkan nilai 1: “); read(a); write (“masukkan nilai 2: “); read(b); write (“masukkan nilai 3: “); read(c); if (a > b dan a > c) write (“nilai terbesar: “, a); else if ( b > a dan b > c) write (“nilai terbesar: “, b); else write (“nilai terbesar: “, c); end if end if