{"id":1864,"date":"2024-03-01T06:36:58","date_gmt":"2024-03-01T06:36:58","guid":{"rendered":"https:\/\/blog.uts.ac.id\/jul\/?p=1864"},"modified":"2024-03-01T06:36:58","modified_gmt":"2024-03-01T06:36:58","slug":"memahami-6-macam-bentuk-blok-percabangan-pada-c","status":"publish","type":"post","link":"https:\/\/blog.uts.ac.id\/jul\/2024\/03\/01\/memahami-6-macam-bentuk-blok-percabangan-pada-c\/","title":{"rendered":"Memahami 6 Macam Bentuk Blok Percabangan pada C++"},"content":{"rendered":"\n<p>pa itu percabangan dan kenapa dinamakan percabangan?<\/p>\n\n\n\n<p>Buat yang belum pernah kuliah atau belajar tentang algoritma dan flowchart, mungkin ini istilah yang baru pertama kamu dengar.<\/p>\n\n\n\n<p>Isitilah ini sebenarnya untuk menggambarkan alur program yang bercabang.<\/p>\n\n\n\n<p>Pada flow chart, logika&nbsp;<strong>\u201cjika\u2026maka\u201d<\/strong>&nbsp;digambarkan dalam bentuk cabang.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.petanikode.com\/img\/python\/percabangan\/jika-maka.png\" alt=\"Logika program jika\/maka\" title=\"\" \/><\/figure>\n\n\n\n<p>Karena itu, ini disebut percabangan.<\/p>\n\n\n\n<p>Selain percabangan, struktur ini juga disebut:&nbsp;<em>control flow<\/em>,&nbsp;<em>decision<\/em>, struktur kondisi, Struktur if, dsb.<\/p>\n\n\n\n<p>Percabangan akan mampu membuat program berpikir dan menentukan tindakan sesuai dengan logika\/kondisi yang kita berikan.<\/p>\n\n\n\n<p>Pada pemrograman C++, terdapat&nbsp;<strong>6 bentuk percabangan<\/strong>&nbsp;yang&nbsp;<strong>harus<\/strong>&nbsp;kita kitahui.<\/p>\n\n\n\n<p>Apa saja itu?<\/p>\n\n\n\n<p>Mari kita bahas\u2026<\/p>\n\n\n\n<h2 id=\"1-percabangan-if\">1. Percabangan&nbsp;<em>if<\/em><\/h2>\n\n\n\n<p>Percabangan&nbsp;<em>if<\/em>&nbsp;merupakan percabangan yang hanya memiliki&nbsp;<strong>satu blok pilihan<\/strong>&nbsp;saat kondisi bernilai benar.<\/p>\n\n\n\n<p>Coba perhatikan&nbsp;<em>flowchart<\/em>&nbsp;berikut ini:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.petanikode.com\/img\/js\/percabangan\/flowchart-if.png\" alt=\"Flowchart percabangan if\" title=\"\" \/><\/figure>\n\n\n\n<p><em>Flowchart<\/em>&nbsp;tersebut dapat kita baca seperti ini:<\/p>\n\n\n\n<p>\u201cJika total belanja lebih besar dari Rp 100.000, Maka tampilkan pesan&nbsp;<strong>Selamat, Anda dapat hadiah<\/strong>\u201d<\/p>\n\n\n\n<p>Kalau dibawah Rp 100.000 bagaimana?<\/p>\n\n\n\n<p>Ya pesannya tidak akan ditampilkan.<\/p>\n\n\n\n<p>Mari kita coba dalam program C++.<\/p>\n\n\n\n<p>Buatlah file bernama&nbsp;<code>if.cpp<\/code>, kemudian isi dengan kode berikut.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>#include &lt;iostream&gt;\nusing namespace std;\n\nint main(){\n\n    cout &lt;&lt; \"=== Program Pembayaran ===\" &lt;&lt; endl;\n    unsigned int total_belanja;\n\n    cout &lt;&lt; \"Masukan total belanja: \";\n    cin &gt;&gt; total_belanja;\n\n    \/\/ menggunakan percabangan if\n    if(total_belanja &gt; 100000){\n        cout &lt;&lt; \"Selamat! anda dapat hadiah\" &lt;&lt; endl;\n    }\n\n    cout &lt;&lt; \"Terimakasih sudah berbelanja di toko kami\" &lt;&lt; endl;\n\n    return 0;\n}<\/code><\/pre>\n\n\n\n<p>Kompilasi kode tersebut dengan perintah:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>g++ if.cpp -o if<\/code><\/pre>\n\n\n\n<p>Lalu eksekusi dengan perintah:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>.\/if<\/code><\/pre>\n\n\n\n<p>Hasilnya:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.petanikode.com\/img\/cpp\/if\/if.gif\" alt=\"Program Percabangan if pada C++\" title=\"\" \/><\/figure>\n\n\n\n<p>Perhatikan pada bagian ini:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/ menggunakan percabangan if\nif(total_belanja &gt; 100000){\n    cout &lt;&lt; \"Selamat! anda dapat hadiah\" &lt;&lt; endl;\n}<\/code><\/pre>\n\n\n\n<p>Inilah yang disebut blok program.<\/p>\n\n\n\n<p>Blok program berisi sekumpulan ekpresi dan statement untuk dikerjakan oleh komputer.<\/p>\n\n\n\n<p>Blok program pada C++, selalu diawali dengan tanda buka kurung kurawal&nbsp;<code>{<\/code>&nbsp;dan akan diakhiri dengan tutup kurung kurawal&nbsp;<code>}<\/code>.<\/p>\n\n\n\n<p>Apabila di dalam blok hanya terdapat satu baris ekspresi atau statement, maka boleh tidak ditulis tanda kurungnya.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>if (total_belanja &gt; 100000)\n    cout &lt;&lt; \"Selamat! anda dapat hadiah\" &lt;&lt; endl;<\/code><\/pre>\n\n\n\n<h2 id=\"2-percabangan-ifelse\">2. Percabangan&nbsp;<em>if\/else<\/em><\/h2>\n\n\n\n<p>Percabangan&nbsp;<em>if\/else<\/em>&nbsp;merupakan percabangan yang memiliki&nbsp;<strong>dua blok pilihan<\/strong>.<\/p>\n\n\n\n<p>Blok pilihan pertama untuk kondisi&nbsp;<strong>benar<\/strong>, dan pilihan kedua untuk kondisi&nbsp;<strong>salah<\/strong>&nbsp;(<em>else<\/em>).<\/p>\n\n\n\n<p>Coba perhatikan flowchart ini:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.petanikode.com\/img\/js\/percabangan\/flowchart-if-else.png\" alt=\"Flowchart percabangan if\/else\" title=\"\" \/><\/figure>\n\n\n\n<p>Ini adalah flowchart untuk mengecek password.<\/p>\n\n\n\n<p>Apabila password benar, pesan yang ada pada blok hijau akan ditampilkan:&nbsp;<strong>\u201cSelamat datang bos!\u201d<\/strong><\/p>\n\n\n\n<p>Tapi kalau salah, maka pesan yang ada di blok merah yang akan ditampilkan:&nbsp;<strong>\u201cPassword salah, coba lagi!\u201d<\/strong><\/p>\n\n\n\n<p>Kemudian, pesan yang berada di blok abu-abu akan tetap ditampilkan, karena dia bukan bagian dari blok percabangan&nbsp;<em>if\/else<\/em>.<\/p>\n\n\n\n<p>Perhatikan arah panahnya, setiap blok&nbsp;<em>if\/else<\/em>&nbsp;mengarah ke sana\u2026<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.petanikode.com\/img\/js\/percabangan\/flowchart-if-else-arrow.png\" alt=\"Flowchart percabangan if\/else\" title=\"\" \/><\/figure>\n\n\n\n<p>Untuk lebih jelasnya, mari kita coba dalam program.<\/p>\n\n\n\n<p>Buatlah file baru bernama&nbsp;<code>if_else.cpp<\/code>, kemudian isi dengan kode berikut:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>#include &lt;iostream&gt;\nusing namespace std;\n\nint main(){\n\n    string password;\n\n    cout &lt;&lt; \"========= Login =========\" &lt;&lt; endl;\n    cout &lt;&lt; \"Masukan password: \";\n    cin &gt;&gt; password;\n\n    \/\/ percabangan if\/else\n    if (password == \"kopi\"){\n        cout &lt;&lt; \"Selamat datang bos!\" &lt;&lt; endl;\n    } else {\n        cout &lt;&lt; \"Password salah, coba lagi!\"  &lt;&lt; endl;\n    }\n\n    cout &lt;&lt; \"Terimakasih sudah menggunakan aplikasi ini!\" &lt;&lt; endl;\n\n    return 0;\n}<\/code><\/pre>\n\n\n\n<p>Hasilnya:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.petanikode.com\/img\/cpp\/if\/if-else.gif\" alt=\"Contoh program percabangan if\/else di C++\" title=\"\" \/><\/figure>\n\n\n\n<h2 id=\"3-percabangan-ifelseif\">3. Percabangan&nbsp;<em>if\/else\/if<\/em><\/h2>\n\n\n\n<p>Percabangan&nbsp;<em>if\/else\/if<\/em>&nbsp;merupakan percabangan yang memiliki&nbsp;<strong>lebih dari dua blok pilihan<\/strong>.<\/p>\n\n\n\n<p>Coba perhatikan flowchart berikut:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.petanikode.com\/img\/js\/percabangan\/if-else-if.png\" alt=\"Flowchart percabangan if\/else\/if\" title=\"\" \/><\/figure>\n\n\n\n<p>Perhatikan blok yang saya beri warna\u2026<\/p>\n\n\n\n<p>Ini adalah blok untuk percabangan&nbsp;<em>if\/else\/if<\/em>. Kita bisa menambahkan berapapun blok yang kita inginkan.<\/p>\n\n\n\n<p>Contoh Program:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>#include &lt;iostream&gt;\nusing namespace std;\n\nint main(){\n\n    int nilai;\n    string grade;\n    \n    cout &lt;&lt; \"=== Program Grade Nilai ===\" &lt;&lt; endl;\n    cout &lt;&lt; \"Inputkan nilai akhir: \";\n    cin &gt;&gt; nilai;\n\n    \/\/ menggunakan percabangan if\/esle\/if\n    if (nilai &gt;= 90) {\n        grade = \"A\";\n    } else if (nilai &gt;= 80) {\n        grade = \"B+\";\n    } else if (nilai &gt;= 70) { \n        grade = \"B\";\n    } else if (nilai &gt;= 60) { \n        grade = \"C+\";\n    } else if (nilai &gt;= 50) { \n        grade = \"C\";\n    } else if (nilai &gt;= 40) { \n        grade = \"D\";\n    } else if (nilai &gt;= 30) { \n        grade = \"E\";\n    } else {\n        grade = \"F\";\n    }\n\n    cout &lt;&lt; \"Grade anda: \" &lt;&lt; grade &lt;&lt; endl;\n\n    return 0;\n}<\/code><\/pre>\n\n\n\n<p>Hasilnya:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.petanikode.com\/img\/cpp\/if\/if-else-if.png\" alt=\"Contoh program percabangan if\/else\/if di C++\" title=\"\" \/><\/figure>\n\n\n\n<h2 id=\"4-percabangan-switchcase\">4. Percabangan&nbsp;<em>Switch\/Case<\/em><\/h2>\n\n\n\n<p>Percabangan&nbsp;<em>switch\/case<\/em>&nbsp;adalah bentuk lain dari percabangan&nbsp;<em>if\/else\/if<\/em>.<\/p>\n\n\n\n<p>Strukturnya seperti ini:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>switch(variabel){\n    case &lt;value&gt;:\n        \/\/ blok kode\n        break;\n    case &lt;value&gt;:\n        \/\/ blok kode\n        break;\n    default:\n        \/\/ blok kode\n}<\/code><\/pre>\n\n\n\n<p>Kita dapat mermbuat blok kode (<code>case<\/code>) sebanyak yang diinginkan di dalam blok switch.<\/p>\n\n\n\n<p>Pada&nbsp;<code>&lt;value&gt;<\/code>, kita bisa isi dengan nilai yang nanti akan dibandingkan dengan&nbsp;<code>varabel<\/code>.<\/p>\n\n\n\n<p>Setiap&nbsp;<code>case<\/code>&nbsp;harus diakhiri dengan&nbsp;<code>break<\/code>. Khusus untuk&nbsp;<code>default<\/code>, tidak perlu diakhiri dengan&nbsp;<code>break<\/code>&nbsp;karena dia terletak di bagian akhir.<\/p>\n\n\n\n<p>Pemberian&nbsp;<code>break<\/code>&nbsp;bertujuan agar program berhenti mengecek&nbsp;<code>case<\/code>&nbsp;berikutnya saat sebuah&nbsp;<code>case<\/code>&nbsp;terpenuhi.<\/p>\n\n\n\n<p>Contoh:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>#include &lt;iostream&gt;\nusing namespace std;\n\nint main(){\n\n    char grade;\n\n    cout &lt;&lt; \"Inputkan grade: \";\n    cin &gt;&gt; grade;\n\n    switch (toupper(grade)){\n        case 'A':\n            cout &lt;&lt; \"Luar biasa!\" &lt;&lt; endl;\n            break;\n        case 'B':\n        case 'C':\n            cout &lt;&lt; \"Bagus!\" &lt;&lt; endl;\n            break;\n        case 'D':\n            cout &lt;&lt; \"Anda lulus\" &lt;&lt; endl;\n            break;\n        case 'E':\n        case 'F':\n            cout &lt;&lt; \"Anda remidi\" &lt;&lt; endl;\n            break;\n        default:\n            cout &lt;&lt; \"Grade Salah!\" &lt;&lt; endl;\n    }\n\n    return 0;\n}<\/code><\/pre>\n\n\n\n<p>Hasilnya:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.petanikode.com\/img\/cpp\/if\/switch-case.gif\" alt=\"Contoh program percabangan switch\/case di C++\" title=\"\" \/><\/figure>\n\n\n\n<p>Perhatikan program di atas\u2026<\/p>\n\n\n\n<p>Kita menggunakan fungsi&nbsp;<code>toupper()<\/code>&nbsp;untuk mengubah huruf kecil menjadi huruf kapital atau huruf besar.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>switch (toupper(grade)){\n    ...\n}<\/code><\/pre>\n\n\n\n<p>Mengapa menggunakan&nbsp;<code>toupper()<\/code>?<\/p>\n\n\n\n<p>Ini karena agar kita dapat menginputkan huruf kecil dan huruf besar untuk mengecek grade.<\/p>\n\n\n\n<p>Berikutnya coba perhatikan&nbsp;<code>case 'B'<\/code>&nbsp;dan&nbsp;<code>case 'E'<\/code>.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.petanikode.com\/img\/cpp\/if\/blok-kosong.png\" alt=\"Blok case yang kosong\" title=\"\" \/><\/figure>\n\n\n\n<p>Kedua&nbsp;<em>case<\/em>&nbsp;ini tidak memiliki isi.<\/p>\n\n\n\n<p>Ini artinya\u2026dia akan mengikut pada case berikutnya.<\/p>\n\n\n\n<p>Sebagai contoh, apabila kita inputkan&nbsp;<code>B<\/code>&nbsp;maka&nbsp;<code>case C<\/code>&nbsp;yang akan terpilih.<\/p>\n\n\n\n<p>Begitu juga saat kita inputkan&nbsp;<code>E<\/code>, maka&nbsp;<code>case F<\/code>&nbsp;yang akan terpilih.<\/p>\n\n\n\n<h2 id=\"5-percabangan-dengan-opertor-ternary\">5. Percabangan dengan Opertor Ternary<\/h2>\n\n\n\n<p>Percabangan menggunakan opreator ternary merupakan bentuk lain dari percabangan if\/else.<\/p>\n\n\n\n<p>Bisa dibilang:<\/p>\n\n\n\n<p>Bentuk singkatnya dari if\/else.<\/p>\n\n\n\n<p>Operator ternary juga dikenal dengan sebutan operator kondisi&nbsp;<em>(conditional operator)<\/em>.<\/p>\n\n\n\n<p>Bentuk strukturnya seperti ini:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>(kondisi) ? <em>true<\/em> : <em>false<\/em><\/code><\/pre>\n\n\n\n<p>Bagian&nbsp;<code>kondisi<\/code>&nbsp;dapat kita isi dengan ekspresi yang menghasilkan nilai&nbsp;<code>true<\/code>&nbsp;dan&nbsp;<code>false<\/code>.<\/p>\n\n\n\n<p>Lalu setlah tanda tanya&nbsp;<code>?<\/code>&nbsp;adalah bagian pilihan.<\/p>\n\n\n\n<p>Jika&nbsp;<code>kondisi<\/code>&nbsp;bernilai benar, maka&nbsp;<code>true<\/code>&nbsp;yang akan dipilih. Tapi kalau salah, maka&nbsp;<code>false<\/code>&nbsp;yang akan dipilih.<\/p>\n\n\n\n<p>Untuk lebih jelasnya, mari kita coba\u2026<\/p>\n\n\n\n<p>Buatlah file baru bernama&nbsp;<code>ternary.cpp<\/code>, kemudian isi dengan kode berikut:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>#include &lt;iostream&gt;\nusing namespace std;\n\nint main(){\n\n    int jawaban;\n\n    cout &lt;&lt; \"Berapakah hasil 3+4?\" &lt;&lt; endl;\n    cout &lt;&lt; \"jawab&gt; \";\n    cin &gt;&gt; jawaban;\n\n    string hasil = (jawaban == 7) ? \"Benar\" : \"Salah\";\n    \n    cout &lt;&lt; \"Jawaban anda: \" &lt;&lt; hasil &lt;&lt; endl;\n\n    return 0;\n}<\/code><\/pre>\n\n\n\n<p>Hasilnya:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.petanikode.com\/img\/cpp\/if\/ternary.png\" alt=\"Program C++ dengan operator ternary\" title=\"\" \/><\/figure>\n\n\n\n<h2 id=\"6-percabangan-bersarang-nested\">6. Percabangan Bersarang&nbsp;<em>(Nested)<\/em><\/h2>\n\n\n\n<p>Kita juga dapat membuat blok percabangan di dalam percabangan. Ini disebut percabangan bersarng atau&nbsp;<em>nested if<\/em>.<\/p>\n\n\n\n<p>Contoh: \ud83d\udcc4&nbsp;<code>nested.cpp<\/code><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>#include &lt;iostream&gt;\nusing namespace std;\n\nint main(){\n    \n    string username, password;\n\n    cout &lt;&lt; \"=== Welcome ===\" &lt;&lt; endl;\n    cout &lt;&lt; \"Username: \";\n    cin &gt;&gt; username;\n    cout &lt;&lt; \"Password: \";\n    cin &gt;&gt; password;\n\n    if (username == \"petanikode\"){\n        if (password == \"kopi\"){\n            cout &lt;&lt; \"Selamat datang bos!\" &lt;&lt; endl;\n        } else {\n            cout &lt;&lt; \"Password salah, coba lagi!\" &lt;&lt; endl;\n        }\n    } else {\n        cout &lt;&lt; \"Anda tidak terdaftar\" &lt;&lt; endl;\n    }\n\n    return 0;\n}<\/code><\/pre>\n\n\n\n<p>Hasilnya:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.petanikode.com\/img\/cpp\/if\/nested.png\" alt=\"Percabangan bersarang pada C++\" title=\"\" \/><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>pa itu percabangan dan kenapa dinamakan percabangan? Buat yang belum pernah kuliah atau belajar tentang algoritma dan flowchart, mungkin ini istilah yang baru pertama kamu dengar. Isitilah ini sebenarnya untuk menggambarkan alur program yang bercabang. Pada flow chart, logika&nbsp;\u201cjika\u2026maka\u201d&nbsp;digambarkan dalam bentuk cabang. Karena itu, ini disebut percabangan. Selain percabangan, struktur ini juga disebut:&nbsp;control flow,&nbsp;decision, struktur [&hellip;]<\/p>\n","protected":false},"author":21,"featured_media":1846,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[10],"tags":[],"_links":{"self":[{"href":"https:\/\/blog.uts.ac.id\/jul\/wp-json\/wp\/v2\/posts\/1864"}],"collection":[{"href":"https:\/\/blog.uts.ac.id\/jul\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.uts.ac.id\/jul\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.uts.ac.id\/jul\/wp-json\/wp\/v2\/users\/21"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.uts.ac.id\/jul\/wp-json\/wp\/v2\/comments?post=1864"}],"version-history":[{"count":1,"href":"https:\/\/blog.uts.ac.id\/jul\/wp-json\/wp\/v2\/posts\/1864\/revisions"}],"predecessor-version":[{"id":1865,"href":"https:\/\/blog.uts.ac.id\/jul\/wp-json\/wp\/v2\/posts\/1864\/revisions\/1865"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.uts.ac.id\/jul\/wp-json\/wp\/v2\/media\/1846"}],"wp:attachment":[{"href":"https:\/\/blog.uts.ac.id\/jul\/wp-json\/wp\/v2\/media?parent=1864"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.uts.ac.id\/jul\/wp-json\/wp\/v2\/categories?post=1864"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.uts.ac.id\/jul\/wp-json\/wp\/v2\/tags?post=1864"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}