SlideShare a Scribd company logo
Struktur Kontrol Percabangan
Hendri Winarto, S.T., M.Kom.
Mapel Pemrograman Dasar - X RPL
Kurikulum 2013 Revisi 2017
SMK Negeri 1 Pacitan
06
Materi Pokok
 Struktur percabangan
 Percabangan tidak bersyarat
 Percabangan sederhana
 Percabangan bertingkat
 Percabangan bersarang
Pemrograman Dasar X RPL - Hendri Winarto, S.T., M.Kom. - SMKN 1 Pacitan 2
Struktur Percabangan
 Digunakan untuk memilih alur program berdasarkan suatu kondisi yang diuji nilai
kebenarannya
 Merupakan implementasi struktur algoritma pemilihan (selection), yang pada
flowchart direpresentasikan dengan bangun belah ketupat
 Pada bahasa C/C++, percabangan diimplementasikan menggunakan syntax:
 goto
 if ...[else if] ... [else]
 switch .. case
Pemrograman Dasar X RPL - Hendri Winarto, S.T., M.Kom. - SMKN 1 Pacitan 3
Percabangan Tidak Bersyarat
 Percabangan yang tidak membutuhkan pengecekan kondisi true/false untuk
menuju ke bagian tertentu dari program
 Pada bahasa C++ percabangan tidak bersyarat bisa dilakukan menggunakan syntax
goto diikuti dengan label yang kita tentukan sendiri di bagian lain dari program.
 Label diketikkan dengan nama bebas (memenuhi kaidah penamaan seperti
variabel), diakhiri dengan karakter titik dua (:)
Pemrograman Dasar X RPL - Hendri Winarto, S.T., M.Kom. - SMKN 1 Pacitan 4
Percabangan Sederhana
 C++ menggunakan if ... dan if ... else untuk percabangan sederhana
 Percabangan yang hanya menggunakan if ... disebut one-way case, sedangkan
yang menggunakan if ... else disebut two-way case
 Pada one-way case, jika kondisi bernilai true, maka Statement 1 dan Statement 2
akan dijalankan. Sedangkan pada two-way case, Akan dipilih hanya salah satu
statement saja
Pemrograman Dasar X RPL - Hendri Winarto, S.T., M.Kom. - SMKN 1 Pacitan 5
Percabangan Sederhana One-way
 Percabangan sederhana one-way di C++ berupa if .. tanpa else. Jika dibuat kode
program, implementasi flowchart pada halaman sebelumnya kurang lebih akan menjadi
seperti ini :

 Penjelasan: pada saat kondisi bernilai true maupun false, Statement 2 tetap akan
dieksekusi. Namun jika kondisi bernilai true, Statement 1 akan dieksekusi terlebih
dahulu, baru mengeksekusi Statement 2
Pemrograman Dasar X RPL - Hendri Winarto, S.T., M.Kom. - SMKN 1 Pacitan 6
Percabangan Sederhana Two-way
 Percabangan sederhana two-way di C++ menggunakan if ... else dengan format:
if (kondisi) {
// blok statement yang dijalankan saat kondisi bernilai true
} else {
// blok statement yang dijalankan saat kondisi bernilai false
}
 Contoh penggunaan pada penentuan bilangan ganjil ataukah genap :
 Catatan: kurung kurawal dapat dihilangkan jika hanya menangani satu statement
Pemrograman Dasar X RPL - Hendri Winarto, S.T., M.Kom. - SMKN 1 Pacitan 7
Sintaks Alternatif
Percabangan if ... else
 Pada kebutuhan tertentu di mana sintaks if .. else hanya digunakan untuk
memilih 2 nilai atau membuat keputusan sederhana, maka sintaks if .. else
dapat disederhanakan menggunakan sintaks alternatif, dengan hasil yang sama.
 Sintaks berikut:
if (kondisi)
nilai = "A";
else
nilai = "B";
 Dapat disederhanakan menjadi :
nilai = (kondisi) ? "A" : "B";
 Keduanya memiliki makna yang sama persis, meski ada keterbatasan tertentu pada
implementasi sintaks alternatif.
 Sintaks alternatif tersebut disebut juga sebagai ternary operator.
Pemrograman Dasar X RPL - Hendri Winarto, S.T., M.Kom. - SMKN 1 Pacitan 8
Percabangan Bertingkat if ... else if .. else
 Pada penyelesaian kasus pemrograman, seringkali ada beberapa kondisi
bertingkat yang harus ditangani, di mana pada operasi logika yang kita gunakan
sebagai kondisi pada if tidak selalu bisa ditangani langsung pada blok untuk else.
Untuk keperluan ini, kita dapat menggunakan sintaks percabangan bertingkat.
 Sintaks :
if (kondisi1) {
statement 1;
} else if (kondisi2) {
statement 2;
}
.... // bisa ditambahkan blok else if sesuai kebutuhan
else {
statement lain;
}
Pemrograman Dasar X RPL - Hendri Winarto, S.T., M.Kom. - SMKN 1 Pacitan 9
Contoh Percabangan Bertingkat if ... else if .. else
 Program sederhana berikut ini mengecek bilangan yang diinputkan pengguna, dan
memutuskan apakah bilangan tersebut positif, negatif, ataukah bilangan nol
Pemrograman Dasar X RPL - Hendri Winarto, S.T., M.Kom. - SMKN 1 Pacitan 10
Percabangan dengan switch ... case
 Percabangan bertingkat dengan if .. else if .. else yang memiliki nilai kondisi berupa
nilai pasti (bukan berupa operasi pembandingan atau rentang nilai), dapat direpresentasikan ke
dalam sintaks switch ... case
 Sintaks:
switch (expression) {
case nilai1: statement1;
break;
case nilai2: statement2;
break;
...
default: statement default;
}
 Berbeda dengan if yang mengevaluasi kondisi, switch menggunakan pembandingan kecocokan
antara expression (biasanya berupa variabel saja) dengan nilai yang ada pada bagian case. Nilai
dapat berupa numerik, karakter, string, dsb.
 Setiap kecocokan nilai pada case dapat digunakan untuk mengeksekusi blok statement sebanyak
yang dibutuhkan, hingga menemui sintaks break.
 Jika tidak ada kecocokan nilai dengan semua yang disediakan pada bagian case, maka blok
statement pada bagian default akan dieksekusi. Blok statement pada bagian default tidak perlu
diakhiri dengan break.
Pemrograman Dasar X RPL - Hendri Winarto, S.T., M.Kom. - SMKN 1 Pacitan 11
Contoh Percabangan dengan switch ... case
 Contoh percabangan berikut ini memilih untuk menampilkan pilihan menu oleh
pengguna program, yang disimpan pada variabel p
Pemrograman Dasar X RPL - Hendri Winarto, S.T., M.Kom. - SMKN 1 Pacitan 12
Percabangan If Bersarang (Nested If)
 Percabangan if bersarang pada dasarnya hanyalah percabangan if yang terletak di
dalam blok percabangan if lainnya, baik pada bagian if, else if, maupun else.
 Struktur ini lazim digunakan pada alur program yang memang membutuhkan
suatu percabangan if untuk dijalankan sebagai syarat bagi percabangan if lainnya
 Sintaks umum:
if (kondisi1) { // outer if
// statements
if (kondisi2) { // inner if
// statements
}
....
}
 Baik struktur if pada bagian outer maupun inner, dapat berupa if saja (one-way), if
... else (two-way), maupun if ... else if ... else (bertingkat)
Pemrograman Dasar X RPL - Hendri Winarto, S.T., M.Kom. - SMKN 1 Pacitan 13
Contoh Percabangan If Bersarang (Nested If)
 Diketahui persyaratan untuk
seleksi anggota Paskibra
menggunakan persyaratan tinggi
badan yang berbeda untuk calon
dengan jenis kelamin laki-laki dan
perempuan.
 Meski pendekatan algoritma yang
berbeda tentunya juga bisa
digunakan, contoh berikut ini dapat
memberikan gambaran mengenai
penggunaan percabangan if
bersarang secara sederhana.
Pemrograman Dasar X RPL - Hendri Winarto, S.T., M.Kom. - SMKN 1 Pacitan 14
Contoh Percabangan If Bersarang (Nested If)
Fin.

More Related Content

What's hot

Algoritma Pemrograman (Flowchart) - Logika dan Algoritma
Algoritma Pemrograman (Flowchart) - Logika dan AlgoritmaAlgoritma Pemrograman (Flowchart) - Logika dan Algoritma
Algoritma Pemrograman (Flowchart) - Logika dan Algoritma
Ari Septiawan
 
Materi Basis Data - Anomali dan Normalisasi
Materi Basis Data - Anomali dan NormalisasiMateri Basis Data - Anomali dan Normalisasi
Materi Basis Data - Anomali dan Normalisasi
Derina Ellya R
 
Java (Netbeans) - Exception handling - Object Oriented Programming
Java (Netbeans) - Exception handling - Object Oriented ProgrammingJava (Netbeans) - Exception handling - Object Oriented Programming
Java (Netbeans) - Exception handling - Object Oriented Programming
Melina Krisnawati
 
Determinan hasil dekomposisi dengan cara crout pada matriks bujur sangkar
Determinan  hasil dekomposisi dengan cara crout pada matriks bujur sangkarDeterminan  hasil dekomposisi dengan cara crout pada matriks bujur sangkar
Determinan hasil dekomposisi dengan cara crout pada matriks bujur sangkar
BAIDILAH Baidilah
 

What's hot (20)

Himpunan matematika diskrit
Himpunan matematika diskritHimpunan matematika diskrit
Himpunan matematika diskrit
 
Proposisi Logika Informatika
Proposisi Logika InformatikaProposisi Logika Informatika
Proposisi Logika Informatika
 
Algoritma Pemrograman (Flowchart) - Logika dan Algoritma
Algoritma Pemrograman (Flowchart) - Logika dan AlgoritmaAlgoritma Pemrograman (Flowchart) - Logika dan Algoritma
Algoritma Pemrograman (Flowchart) - Logika dan Algoritma
 
Logika lanjutan
Logika lanjutanLogika lanjutan
Logika lanjutan
 
Algoritma Cara Cepat Mencari Akar-akar Persamaan Kuadrat | Flowchart Matematika
Algoritma Cara Cepat Mencari Akar-akar Persamaan Kuadrat | Flowchart MatematikaAlgoritma Cara Cepat Mencari Akar-akar Persamaan Kuadrat | Flowchart Matematika
Algoritma Cara Cepat Mencari Akar-akar Persamaan Kuadrat | Flowchart Matematika
 
cache memory
cache memorycache memory
cache memory
 
Bab 2 logika predikat ta 2019
Bab 2 logika predikat ta 2019Bab 2 logika predikat ta 2019
Bab 2 logika predikat ta 2019
 
Aturan Inferensi dan Metode Pembuktian
Aturan Inferensi dan Metode PembuktianAturan Inferensi dan Metode Pembuktian
Aturan Inferensi dan Metode Pembuktian
 
Makalah Kegunaan Matematika Diskrit pada Teknik Informatika
Makalah Kegunaan Matematika Diskrit pada Teknik InformatikaMakalah Kegunaan Matematika Diskrit pada Teknik Informatika
Makalah Kegunaan Matematika Diskrit pada Teknik Informatika
 
Pengenalan c++ bagian 3
Pengenalan c++ bagian 3Pengenalan c++ bagian 3
Pengenalan c++ bagian 3
 
Materi Basis Data - Anomali dan Normalisasi
Materi Basis Data - Anomali dan NormalisasiMateri Basis Data - Anomali dan Normalisasi
Materi Basis Data - Anomali dan Normalisasi
 
Penalaran Matematika
Penalaran MatematikaPenalaran Matematika
Penalaran Matematika
 
Java (Netbeans) - Exception handling - Object Oriented Programming
Java (Netbeans) - Exception handling - Object Oriented ProgrammingJava (Netbeans) - Exception handling - Object Oriented Programming
Java (Netbeans) - Exception handling - Object Oriented Programming
 
Pohon(tree) matematika diskrit
Pohon(tree) matematika diskritPohon(tree) matematika diskrit
Pohon(tree) matematika diskrit
 
Penjelasan Program
Penjelasan ProgramPenjelasan Program
Penjelasan Program
 
Algoritma penjadwalan proses
Algoritma penjadwalan prosesAlgoritma penjadwalan proses
Algoritma penjadwalan proses
 
Efisiensi algoritma
Efisiensi algoritmaEfisiensi algoritma
Efisiensi algoritma
 
MATERI SISTEM KOMPUTER KELAS X
MATERI SISTEM KOMPUTER KELAS XMATERI SISTEM KOMPUTER KELAS X
MATERI SISTEM KOMPUTER KELAS X
 
Determinan hasil dekomposisi dengan cara crout pada matriks bujur sangkar
Determinan  hasil dekomposisi dengan cara crout pada matriks bujur sangkarDeterminan  hasil dekomposisi dengan cara crout pada matriks bujur sangkar
Determinan hasil dekomposisi dengan cara crout pada matriks bujur sangkar
 
Kemampuan Awal Peserta Didik
Kemampuan Awal Peserta DidikKemampuan Awal Peserta Didik
Kemampuan Awal Peserta Didik
 

Similar to Materi Pemrograman Dasar - Struktur Kontrol Percabangan (9)

DASPRO - KENDALI PERBANGAN.pptx
DASPRO - KENDALI PERBANGAN.pptxDASPRO - KENDALI PERBANGAN.pptx
DASPRO - KENDALI PERBANGAN.pptx
 
01.12 JAVA SE_switch statement
01.12 JAVA SE_switch statement01.12 JAVA SE_switch statement
01.12 JAVA SE_switch statement
 
Java (Netbeans) - Looping - Object Oriented Programming
Java (Netbeans) - Looping - Object Oriented ProgrammingJava (Netbeans) - Looping - Object Oriented Programming
Java (Netbeans) - Looping - Object Oriented Programming
 
Menerapkan struktur kontrol percabangan dalam bahasa pemrograman
Menerapkan struktur kontrol percabangan dalam bahasa pemrogramanMenerapkan struktur kontrol percabangan dalam bahasa pemrograman
Menerapkan struktur kontrol percabangan dalam bahasa pemrograman
 
Dasar-dasar pemorograman - Percabangan.pdf
Dasar-dasar pemorograman - Percabangan.pdfDasar-dasar pemorograman - Percabangan.pdf
Dasar-dasar pemorograman - Percabangan.pdf
 
Ringkasan 32 keyword dalam c
Ringkasan 32 keyword dalam cRingkasan 32 keyword dalam c
Ringkasan 32 keyword dalam c
 
Pd
PdPd
Pd
 
Pertemuan 5C.pptx
Pertemuan 5C.pptxPertemuan 5C.pptx
Pertemuan 5C.pptx
 
Tugas kelompok
Tugas kelompokTugas kelompok
Tugas kelompok
 

Recently uploaded

Laporan wakil kepala sekolah bagian Kurikulum.pdf
Laporan wakil kepala sekolah bagian Kurikulum.pdfLaporan wakil kepala sekolah bagian Kurikulum.pdf
Laporan wakil kepala sekolah bagian Kurikulum.pdf
yuniarmadyawati361
 
PRESENTASI OBSERVASI PENGELOLAAN KINERJA KEPALA SEKOLAH.pptx
PRESENTASI OBSERVASI PENGELOLAAN KINERJA KEPALA SEKOLAH.pptxPRESENTASI OBSERVASI PENGELOLAAN KINERJA KEPALA SEKOLAH.pptx
PRESENTASI OBSERVASI PENGELOLAAN KINERJA KEPALA SEKOLAH.pptx
muhammadyudiyanto55
 
Paparan Kurikulum Satuan Pendidikan_LOKAKARYA TPK 2024.pptx.pdf
Paparan Kurikulum Satuan Pendidikan_LOKAKARYA TPK 2024.pptx.pdfPaparan Kurikulum Satuan Pendidikan_LOKAKARYA TPK 2024.pptx.pdf
Paparan Kurikulum Satuan Pendidikan_LOKAKARYA TPK 2024.pptx.pdf
SEMUELSAMBOKARAENG
 

Recently uploaded (20)

Laporan wakil kepala sekolah bagian Kurikulum.pdf
Laporan wakil kepala sekolah bagian Kurikulum.pdfLaporan wakil kepala sekolah bagian Kurikulum.pdf
Laporan wakil kepala sekolah bagian Kurikulum.pdf
 
Teori Profetik Kuntowijoyo (Dosen Pengampu: Khoirin Nisai Shalihati)
Teori Profetik Kuntowijoyo (Dosen Pengampu: Khoirin Nisai Shalihati)Teori Profetik Kuntowijoyo (Dosen Pengampu: Khoirin Nisai Shalihati)
Teori Profetik Kuntowijoyo (Dosen Pengampu: Khoirin Nisai Shalihati)
 
MODUL AJAR BAHASA INGGRIS KELAS 2 KURIKULUM MERDEKA
MODUL AJAR BAHASA INGGRIS KELAS 2 KURIKULUM MERDEKAMODUL AJAR BAHASA INGGRIS KELAS 2 KURIKULUM MERDEKA
MODUL AJAR BAHASA INGGRIS KELAS 2 KURIKULUM MERDEKA
 
ppt-menghindari-marah-ghadab-membiasakan-kontrol-diri-dan-berani-membela-kebe...
ppt-menghindari-marah-ghadab-membiasakan-kontrol-diri-dan-berani-membela-kebe...ppt-menghindari-marah-ghadab-membiasakan-kontrol-diri-dan-berani-membela-kebe...
ppt-menghindari-marah-ghadab-membiasakan-kontrol-diri-dan-berani-membela-kebe...
 
tugas modul 1.4 Koneksi Antar Materi (1).pptx
tugas  modul 1.4 Koneksi Antar Materi (1).pptxtugas  modul 1.4 Koneksi Antar Materi (1).pptx
tugas modul 1.4 Koneksi Antar Materi (1).pptx
 
Modul P5 Berekayasa dan Berteknologi untuk Membangun NKRI.pptx
Modul P5 Berekayasa dan Berteknologi untuk Membangun NKRI.pptxModul P5 Berekayasa dan Berteknologi untuk Membangun NKRI.pptx
Modul P5 Berekayasa dan Berteknologi untuk Membangun NKRI.pptx
 
PRESENTASI OBSERVASI PENGELOLAAN KINERJA KEPALA SEKOLAH.pptx
PRESENTASI OBSERVASI PENGELOLAAN KINERJA KEPALA SEKOLAH.pptxPRESENTASI OBSERVASI PENGELOLAAN KINERJA KEPALA SEKOLAH.pptx
PRESENTASI OBSERVASI PENGELOLAAN KINERJA KEPALA SEKOLAH.pptx
 
Konflik dan Negosiasi dalam perilaku organisai
Konflik dan Negosiasi dalam perilaku organisaiKonflik dan Negosiasi dalam perilaku organisai
Konflik dan Negosiasi dalam perilaku organisai
 
Paparan Kurikulum Satuan Pendidikan_LOKAKARYA TPK 2024.pptx.pdf
Paparan Kurikulum Satuan Pendidikan_LOKAKARYA TPK 2024.pptx.pdfPaparan Kurikulum Satuan Pendidikan_LOKAKARYA TPK 2024.pptx.pdf
Paparan Kurikulum Satuan Pendidikan_LOKAKARYA TPK 2024.pptx.pdf
 
Program Kerja Kepala Sekolah 2023-2024.pdf
Program Kerja Kepala Sekolah 2023-2024.pdfProgram Kerja Kepala Sekolah 2023-2024.pdf
Program Kerja Kepala Sekolah 2023-2024.pdf
 
Seminar: Sekolah Alkitab Liburan (SAL) 2024
Seminar: Sekolah Alkitab Liburan (SAL) 2024Seminar: Sekolah Alkitab Liburan (SAL) 2024
Seminar: Sekolah Alkitab Liburan (SAL) 2024
 
Solusi Masalah Pendidikan Kelompok 9 Wawasan Pendidikan.pptx
Solusi Masalah Pendidikan Kelompok 9 Wawasan Pendidikan.pptxSolusi Masalah Pendidikan Kelompok 9 Wawasan Pendidikan.pptx
Solusi Masalah Pendidikan Kelompok 9 Wawasan Pendidikan.pptx
 
PPT Aksi Nyata Diseminasi Modul 1.4.pptx
PPT Aksi Nyata Diseminasi Modul 1.4.pptxPPT Aksi Nyata Diseminasi Modul 1.4.pptx
PPT Aksi Nyata Diseminasi Modul 1.4.pptx
 
LAPORAN TUGAS TAMBAHAN PEMBINA PRAMUKA..
LAPORAN TUGAS TAMBAHAN PEMBINA PRAMUKA..LAPORAN TUGAS TAMBAHAN PEMBINA PRAMUKA..
LAPORAN TUGAS TAMBAHAN PEMBINA PRAMUKA..
 
MODUL AJAR PENDIDIKAN PANCASILA (PPKN) KELAS 1 KURIKULUM MERDEKA.pdf
MODUL AJAR PENDIDIKAN PANCASILA (PPKN) KELAS 1 KURIKULUM MERDEKA.pdfMODUL AJAR PENDIDIKAN PANCASILA (PPKN) KELAS 1 KURIKULUM MERDEKA.pdf
MODUL AJAR PENDIDIKAN PANCASILA (PPKN) KELAS 1 KURIKULUM MERDEKA.pdf
 
Susi Susanti_2021 B_Analisis Kritis Jurnal.pdf
Susi Susanti_2021 B_Analisis Kritis Jurnal.pdfSusi Susanti_2021 B_Analisis Kritis Jurnal.pdf
Susi Susanti_2021 B_Analisis Kritis Jurnal.pdf
 
Dokumen Rangkuman Kehadiran Guru ini dipergunakan sebagai bukti dukung yang w...
Dokumen Rangkuman Kehadiran Guru ini dipergunakan sebagai bukti dukung yang w...Dokumen Rangkuman Kehadiran Guru ini dipergunakan sebagai bukti dukung yang w...
Dokumen Rangkuman Kehadiran Guru ini dipergunakan sebagai bukti dukung yang w...
 
Sosialisme Kapitalis Karl Marx (Dosen Pengampu: Khoirin Nisai Shalihati)
Sosialisme Kapitalis Karl Marx (Dosen Pengampu: Khoirin Nisai Shalihati)Sosialisme Kapitalis Karl Marx (Dosen Pengampu: Khoirin Nisai Shalihati)
Sosialisme Kapitalis Karl Marx (Dosen Pengampu: Khoirin Nisai Shalihati)
 
tugas pai kelas 10 rangkuman bab 10 smk madani bogor
tugas pai kelas 10 rangkuman bab 10 smk madani bogortugas pai kelas 10 rangkuman bab 10 smk madani bogor
tugas pai kelas 10 rangkuman bab 10 smk madani bogor
 
Sejarah dan Perkembangan Agama Hindu.pptx
Sejarah dan Perkembangan Agama Hindu.pptxSejarah dan Perkembangan Agama Hindu.pptx
Sejarah dan Perkembangan Agama Hindu.pptx
 

Materi Pemrograman Dasar - Struktur Kontrol Percabangan

  • 1. Struktur Kontrol Percabangan Hendri Winarto, S.T., M.Kom. Mapel Pemrograman Dasar - X RPL Kurikulum 2013 Revisi 2017 SMK Negeri 1 Pacitan 06
  • 2. Materi Pokok  Struktur percabangan  Percabangan tidak bersyarat  Percabangan sederhana  Percabangan bertingkat  Percabangan bersarang Pemrograman Dasar X RPL - Hendri Winarto, S.T., M.Kom. - SMKN 1 Pacitan 2
  • 3. Struktur Percabangan  Digunakan untuk memilih alur program berdasarkan suatu kondisi yang diuji nilai kebenarannya  Merupakan implementasi struktur algoritma pemilihan (selection), yang pada flowchart direpresentasikan dengan bangun belah ketupat  Pada bahasa C/C++, percabangan diimplementasikan menggunakan syntax:  goto  if ...[else if] ... [else]  switch .. case Pemrograman Dasar X RPL - Hendri Winarto, S.T., M.Kom. - SMKN 1 Pacitan 3
  • 4. Percabangan Tidak Bersyarat  Percabangan yang tidak membutuhkan pengecekan kondisi true/false untuk menuju ke bagian tertentu dari program  Pada bahasa C++ percabangan tidak bersyarat bisa dilakukan menggunakan syntax goto diikuti dengan label yang kita tentukan sendiri di bagian lain dari program.  Label diketikkan dengan nama bebas (memenuhi kaidah penamaan seperti variabel), diakhiri dengan karakter titik dua (:) Pemrograman Dasar X RPL - Hendri Winarto, S.T., M.Kom. - SMKN 1 Pacitan 4
  • 5. Percabangan Sederhana  C++ menggunakan if ... dan if ... else untuk percabangan sederhana  Percabangan yang hanya menggunakan if ... disebut one-way case, sedangkan yang menggunakan if ... else disebut two-way case  Pada one-way case, jika kondisi bernilai true, maka Statement 1 dan Statement 2 akan dijalankan. Sedangkan pada two-way case, Akan dipilih hanya salah satu statement saja Pemrograman Dasar X RPL - Hendri Winarto, S.T., M.Kom. - SMKN 1 Pacitan 5
  • 6. Percabangan Sederhana One-way  Percabangan sederhana one-way di C++ berupa if .. tanpa else. Jika dibuat kode program, implementasi flowchart pada halaman sebelumnya kurang lebih akan menjadi seperti ini :   Penjelasan: pada saat kondisi bernilai true maupun false, Statement 2 tetap akan dieksekusi. Namun jika kondisi bernilai true, Statement 1 akan dieksekusi terlebih dahulu, baru mengeksekusi Statement 2 Pemrograman Dasar X RPL - Hendri Winarto, S.T., M.Kom. - SMKN 1 Pacitan 6
  • 7. Percabangan Sederhana Two-way  Percabangan sederhana two-way di C++ menggunakan if ... else dengan format: if (kondisi) { // blok statement yang dijalankan saat kondisi bernilai true } else { // blok statement yang dijalankan saat kondisi bernilai false }  Contoh penggunaan pada penentuan bilangan ganjil ataukah genap :  Catatan: kurung kurawal dapat dihilangkan jika hanya menangani satu statement Pemrograman Dasar X RPL - Hendri Winarto, S.T., M.Kom. - SMKN 1 Pacitan 7
  • 8. Sintaks Alternatif Percabangan if ... else  Pada kebutuhan tertentu di mana sintaks if .. else hanya digunakan untuk memilih 2 nilai atau membuat keputusan sederhana, maka sintaks if .. else dapat disederhanakan menggunakan sintaks alternatif, dengan hasil yang sama.  Sintaks berikut: if (kondisi) nilai = "A"; else nilai = "B";  Dapat disederhanakan menjadi : nilai = (kondisi) ? "A" : "B";  Keduanya memiliki makna yang sama persis, meski ada keterbatasan tertentu pada implementasi sintaks alternatif.  Sintaks alternatif tersebut disebut juga sebagai ternary operator. Pemrograman Dasar X RPL - Hendri Winarto, S.T., M.Kom. - SMKN 1 Pacitan 8
  • 9. Percabangan Bertingkat if ... else if .. else  Pada penyelesaian kasus pemrograman, seringkali ada beberapa kondisi bertingkat yang harus ditangani, di mana pada operasi logika yang kita gunakan sebagai kondisi pada if tidak selalu bisa ditangani langsung pada blok untuk else. Untuk keperluan ini, kita dapat menggunakan sintaks percabangan bertingkat.  Sintaks : if (kondisi1) { statement 1; } else if (kondisi2) { statement 2; } .... // bisa ditambahkan blok else if sesuai kebutuhan else { statement lain; } Pemrograman Dasar X RPL - Hendri Winarto, S.T., M.Kom. - SMKN 1 Pacitan 9
  • 10. Contoh Percabangan Bertingkat if ... else if .. else  Program sederhana berikut ini mengecek bilangan yang diinputkan pengguna, dan memutuskan apakah bilangan tersebut positif, negatif, ataukah bilangan nol Pemrograman Dasar X RPL - Hendri Winarto, S.T., M.Kom. - SMKN 1 Pacitan 10
  • 11. Percabangan dengan switch ... case  Percabangan bertingkat dengan if .. else if .. else yang memiliki nilai kondisi berupa nilai pasti (bukan berupa operasi pembandingan atau rentang nilai), dapat direpresentasikan ke dalam sintaks switch ... case  Sintaks: switch (expression) { case nilai1: statement1; break; case nilai2: statement2; break; ... default: statement default; }  Berbeda dengan if yang mengevaluasi kondisi, switch menggunakan pembandingan kecocokan antara expression (biasanya berupa variabel saja) dengan nilai yang ada pada bagian case. Nilai dapat berupa numerik, karakter, string, dsb.  Setiap kecocokan nilai pada case dapat digunakan untuk mengeksekusi blok statement sebanyak yang dibutuhkan, hingga menemui sintaks break.  Jika tidak ada kecocokan nilai dengan semua yang disediakan pada bagian case, maka blok statement pada bagian default akan dieksekusi. Blok statement pada bagian default tidak perlu diakhiri dengan break. Pemrograman Dasar X RPL - Hendri Winarto, S.T., M.Kom. - SMKN 1 Pacitan 11
  • 12. Contoh Percabangan dengan switch ... case  Contoh percabangan berikut ini memilih untuk menampilkan pilihan menu oleh pengguna program, yang disimpan pada variabel p Pemrograman Dasar X RPL - Hendri Winarto, S.T., M.Kom. - SMKN 1 Pacitan 12
  • 13. Percabangan If Bersarang (Nested If)  Percabangan if bersarang pada dasarnya hanyalah percabangan if yang terletak di dalam blok percabangan if lainnya, baik pada bagian if, else if, maupun else.  Struktur ini lazim digunakan pada alur program yang memang membutuhkan suatu percabangan if untuk dijalankan sebagai syarat bagi percabangan if lainnya  Sintaks umum: if (kondisi1) { // outer if // statements if (kondisi2) { // inner if // statements } .... }  Baik struktur if pada bagian outer maupun inner, dapat berupa if saja (one-way), if ... else (two-way), maupun if ... else if ... else (bertingkat) Pemrograman Dasar X RPL - Hendri Winarto, S.T., M.Kom. - SMKN 1 Pacitan 13
  • 14. Contoh Percabangan If Bersarang (Nested If)  Diketahui persyaratan untuk seleksi anggota Paskibra menggunakan persyaratan tinggi badan yang berbeda untuk calon dengan jenis kelamin laki-laki dan perempuan.  Meski pendekatan algoritma yang berbeda tentunya juga bisa digunakan, contoh berikut ini dapat memberikan gambaran mengenai penggunaan percabangan if bersarang secara sederhana. Pemrograman Dasar X RPL - Hendri Winarto, S.T., M.Kom. - SMKN 1 Pacitan 14
  • 15. Contoh Percabangan If Bersarang (Nested If) Fin.