{"id":1866,"date":"2024-03-01T06:39:20","date_gmt":"2024-03-01T06:39:20","guid":{"rendered":"https:\/\/blog.uts.ac.id\/jul\/?p=1866"},"modified":"2024-03-01T06:39:20","modified_gmt":"2024-03-01T06:39:20","slug":"memahami-blok-perulangan-di-c","status":"publish","type":"post","link":"https:\/\/blog.uts.ac.id\/jul\/2024\/03\/01\/memahami-blok-perulangan-di-c\/","title":{"rendered":"Memahami Blok Perulangan di C++"},"content":{"rendered":"\n<p>Apa yang akan kamu lakukan saat disuruh mencetak kalimat berulang-ulang?<\/p>\n\n\n\n<p>Misalnya:<\/p>\n\n\n\n<p>Tolong tampilkan kalimat&nbsp;<code>\"Tutorial Pemrograman C++!\"<\/code>&nbsp;sebanyak 10x ke layar!<\/p>\n\n\n\n<p>Mungkin kamu akan menggunakan&nbsp;<code>cout<\/code>&nbsp;sebanyak 10 kali seperti ini:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>#include &lt;iostream&gt;\nusing namespace std;\n\nint main(){\n    cout &lt;&lt; \"Tutorial Pemrograman C++!\" &lt;&lt; endl;\n    cout &lt;&lt; \"Tutorial Pemrograman C++!\" &lt;&lt; endl;\n    cout &lt;&lt; \"Tutorial Pemrograman C++!\" &lt;&lt; endl;\n    cout &lt;&lt; \"Tutorial Pemrograman C++!\" &lt;&lt; endl;\n    cout &lt;&lt; \"Tutorial Pemrograman C++!\" &lt;&lt; endl;\n    cout &lt;&lt; \"Tutorial Pemrograman C++!\" &lt;&lt; endl;\n    cout &lt;&lt; \"Tutorial Pemrograman C++!\" &lt;&lt; endl;\n    cout &lt;&lt; \"Tutorial Pemrograman C++!\" &lt;&lt; endl;\n    cout &lt;&lt; \"Tutorial Pemrograman C++!\" &lt;&lt; endl;\n    cout &lt;&lt; \"Tutorial Pemrograman C++!\" &lt;&lt; endl;\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\/loop\/manual-loop.png\" alt=\"Perulangan manual dengan printf\" title=\"\" \/><\/figure>\n\n\n\n<p>Apakah boleh seperti ini?<\/p>\n\n\n\n<p>Ya, boleh-boleh saja.<\/p>\n\n\n\n<p>Tapi\u2026<\/p>\n\n\n\n<p>Bagaimana kalau nanti mau menampilkan sebanyak&nbsp;<code>1000<\/code>&nbsp;kali.<\/p>\n\n\n\n<p>Pasti capek donk ngetiknya.<\/p>\n\n\n\n<p>Karena itu, kita harus menggunakan&nbsp;<strong>perulangan<\/strong>.<\/p>\n\n\n\n<p>Perulangan akan membantu kita mengeksekusi kode yang berulang-ulang, berapapun yang kita mau.<\/p>\n\n\n\n<p>Ada empat macam bentuk perulangan pada C.<\/p>\n\n\n\n<p>Secara umum, dibagi menjadi dua kelompok.<\/p>\n\n\n\n<p>Yaitu:&nbsp;<em>counted loop<\/em>&nbsp;dan&nbsp;<em>uncounted loop<\/em>.<\/p>\n\n\n\n<p>Perbedaanya:<\/p>\n\n\n\n<ul>\n<li><strong>Counted Loop<\/strong>&nbsp;merupakan perulangan yang jelas dan sudah tentu banyak kali perulangannya.<\/li>\n\n\n\n<li>Sedangkan&nbsp;<strong>Uncounted Loop<\/strong>, merupakan perulangan yang tidak jelas berapa kali ia harus mengulang.<\/li>\n<\/ul>\n\n\n\n<p>https:\/\/www.instagram.com\/p\/Bc51hBNHsyD\/embed\/captioned\/?cr=1&#038;v=14&#038;wp=658&#038;rd=https%3A%2F%2Fwww.petanikode.com&#038;rp=%2Fcpp-perulangan%2F#%7B%22ci%22%3A0%2C%22os%22%3A2625.2999999821186%2C%22ls%22%3A1417.2999999821186%2C%22le%22%3A2573.5%7D<\/p>\n\n\n\n<p>Perulangan yang termasuk dalam&nbsp;<em>Counted Loop<\/em>:<\/p>\n\n\n\n<ol>\n<li>Perulangan For<\/li>\n<\/ol>\n\n\n\n<p>Perulangan yang termasuk dalam&nbsp;<em>Uncounted Loop<\/em>:<\/p>\n\n\n\n<ol>\n<li>Perulangan While<\/li>\n\n\n\n<li>Perulangan Do\/While<\/li>\n<\/ol>\n\n\n\n<p>Mari kita bahas satu per satu\u2026<\/p>\n\n\n\n<h2 id=\"1-blok-perulangan-for\">1. Blok Perulangan For<\/h2>\n\n\n\n<p>Perulangan&nbsp;<code>for<\/code>&nbsp;merupakan perulangan yang termasuk dalam&nbsp;<em>couted loop<\/em>, karena sudah jelas berapa kali ia akan mengulang.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.petanikode.com\/img\/c\/loop\/flowchart-for.webp\" alt=\"Flowchart perulangan for\" title=\"Flowchart perulangan for\" \/><figcaption class=\"wp-element-caption\">Flowchart perulangan for<\/figcaption><\/figure>\n\n\n\n<p>Bentuknya kodenya seperti ini:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>for(int i = 0; i &lt; 10; i++){\n    printf(\"Perulangan ke-%i\\n\", i);\n}<\/code><\/pre>\n\n\n\n<p>Yang perlu diperhatikan adalah kondisi yang ada di dalam kurung setelah kata&nbsp;<code>for<\/code>.<\/p>\n\n\n\n<p>Kondisi ini akan menentukan:<\/p>\n\n\n\n<ul>\n<li>Hitungan akan dimulai dari&nbsp;<code>0<\/code>&nbsp;(<code>i = 0<\/code>);<\/li>\n\n\n\n<li>Hitungannya sampai berapa? Sampai&nbsp;<code>i &lt; 10<\/code>;<\/li>\n\n\n\n<li>Lalu di setiap perulangan&nbsp;<code>i<\/code>&nbsp;akan bertambah&nbsp;<code>+1<\/code>&nbsp;(<code>i++<\/code>).<\/li>\n<\/ul>\n\n\n\n<p>Variabel&nbsp;<code>i<\/code>&nbsp;pada perulangan&nbsp;<code>for<\/code>&nbsp;berfungsi untuk menyimpan nilai hitungan.<\/p>\n\n\n\n<p>Jadi setiap perulangan dilakukan nilai&nbsp;<code>i<\/code>&nbsp;akan selalu bertambah satu. Karena kita menentukannya di bagian&nbsp;<code>i++<\/code>.<\/p>\n\n\n\n<p>Contoh program loop dengan for:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>#include &lt;iostream&gt;\nusing namespace std;\n\nint main(){\n    for(int i = 0; i &lt; 10; i++){\n        printf(\"Perulangan ke-%i\\n\", i);\n    }\n\n    return 0;\n}<\/code><\/pre>\n\n\n\n<p>Ini hasil outputnya:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.petanikode.com\/img\/c\/loop\/for-loop.webp\" alt=\"Perulangan For pada bahasa C\" title=\"\" \/><\/figure>\n\n\n\n<p>Apakah nama variabelnya harus selalu&nbsp;<code>i<\/code>?<\/p>\n\n\n\n<p>Tidak.<\/p>\n\n\n\n<p>Kita juga bisa menggunakan nama lain.<\/p>\n\n\n\n<p>Misalnya:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>#include &lt;iostream&gt;\nusing namespace std;\n\nint main(){\n    for(int counter = 0; counter &lt; 10; counter += 2){\n        printf(\"Perulangan ke-%i\\n\", counter);\n    }\n\n    return 0;\n}<\/code><\/pre>\n\n\n\n<p>Pada contoh tersebut, kita melakukan perulangan dimulai dari nol&nbsp;<code>0<\/code>. Lalu di setiap perulangan nilai variabel&nbsp;<code>couter<\/code>&nbsp;akan ditambah 2 (<code>counter+=2<\/code>).<\/p>\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\/loop\/for-2.png\" alt=\"Perulangan For pada bahasa C++\" title=\"\" \/><\/figure>\n\n\n\n<p>Bagaimana kalau&nbsp;<em>counter<\/em>&nbsp;perulangannya dimulai dari akanga yang lebih besar sampai yang ke paling kecil?<\/p>\n\n\n\n<p>Ini biasanya kita buat saat ingin menghitung mundur\u2026<\/p>\n\n\n\n<p>Caranya gampang.<\/p>\n\n\n\n<p>Kita tinggal isi nilai counter dengan nilai terbesarnya.<\/p>\n\n\n\n<p>Misalnya kita akan mulai hitungan dari&nbsp;<code>10<\/code>&nbsp;sampai ke&nbsp;<code>0<\/code>.<\/p>\n\n\n\n<p>Maka nilai&nbsp;<code>counter<\/code>, kita isi awalnya dengan&nbsp;<code>10<\/code>.<\/p>\n\n\n\n<p>Lalu di kondisi perbandingannya, kita berikan&nbsp;<code>counter &gt; 0<\/code>. Artinya perulangan akan dilakukan selama nilai counter lebih besar dari&nbsp;<code>0<\/code>.<\/p>\n\n\n\n<p>Lalu kita kurangi (<code>-1<\/code>) nilai counter di setiap perulangan (<code>counter--<\/code>).<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>for(int counter = 10; counter &gt; 0; counter--){\n    printf(\"Perulangan ke-%i\\n\", counter);\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\/c\/loop\/for-downto.webp\" alt=\"Perulangan for dengan hitung mundur\" title=\"\" \/><\/figure>\n\n\n\n<p>Mengapa tidak sampai nol (<code>0<\/code>)?<\/p>\n\n\n\n<p>Karena kondisi yang kita berikan&nbsp;<code>counter &gt; 0<\/code>. Apabila&nbsp;<code>counter<\/code>&nbsp;bernilai&nbsp;<code>0<\/code>, maka kondisi ini akan menjadi&nbsp;<code>false<\/code>.<\/p>\n\n\n\n<p>Kecuali kita menggunakan operator lebih besar sama dengan (<code>&gt;=<\/code>), maka jika\u00a0<code>counter<\/code>\u00a0bernilai\u00a0<code>0<\/code>, kondisi akan menjadi\u00a0<code>true<\/code>.<\/p>\n\n\n\n<h2 id=\"2-perulangan-while-pada-c\">2. Perulangan While pada C++<\/h2>\n\n\n\n<p>Perulangan&nbsp;<code>while<\/code>&nbsp;merupakan perulangan yang termasuk dalam perulangan&nbsp;<em>uncounted loop<\/em>.<\/p>\n\n\n\n<p>Perulangan&nbsp;<code>while<\/code>&nbsp;juga dapat menjadi perulangan yang&nbsp;<em>counted loop<\/em>&nbsp;dengan memberikan&nbsp;<em>counter<\/em>&nbsp;di dalamnya.<\/p>\n\n\n\n<p>Bentuk flow chart-nya sama seperti&nbsp;<em>flow chart for<\/em>.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.petanikode.com\/img\/c\/loop\/flowchart-for.webp\" alt=\"Flowchart perulangan while\" title=\"Flowchart perulangan while\" \/><figcaption class=\"wp-element-caption\">Flowchart perulangan while<\/figcaption><\/figure>\n\n\n\n<p>Untuk memahami perulangan ini\u2026<\/p>\n\n\n\n<p>\u2026mari kita coba lihat contohnya:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>#include &lt;iostream&gt;\nusing namespace std;\n\nint main(){\n    char ulangi = 'y';\n    int counter = 0;\n\n    \/\/ perulangan while\n    while(ulangi == 'y'){\n        printf(\"Apakah kamu mau mengulang?\\n\");\n        printf(\"Jawab (y\/t): \");\n        cin &gt;&gt; ulangi;\n\n        \/\/ increment counter\n        counter++;\n    }\n\n    printf(\"\\n\\n----------\\n\");\n    printf(\"Perulangan Selesai!\\n\");\n    printf(\"Kamu mengulang sebanyak %i kali.\\n\", counter);\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\/c\/loop\/while.webp\" alt=\"Perulangan while pada C++\" title=\"\" \/><\/figure>\n\n\n\n<p>Coba perhatikan blok kode&nbsp;<code>while<\/code>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/ perulangan while\nwhile(ulangi == 'y'){\n    printf(\"Apakah kamu mau mengulang?\\n\");\n    printf(\"Jawab (y\/t): \");\n    cin &gt;&gt; ulangi;\n    \/\/ increment counter\n    counter++;\n}<\/code><\/pre>\n\n\n\n<p>Di sana\u2026 Perulangan akan terjadi selama variabel&nbsp;<code>ulangi<\/code>&nbsp;brenilai&nbsp;<code>y<\/code>.<\/p>\n\n\n\n<p>Lalu kita menggunakan fungsi&nbsp;<code>scanf()<\/code>&nbsp;untuk mengambil input.<\/p>\n\n\n\n<p>Selama kita menjawab&nbsp;<strong>y<\/strong>&nbsp;pada input, maka perulangan akan terus dilakukan.<\/p>\n\n\n\n<p>Tapi kalau kita jawab yang lain, maka perulangan akan dihentikan.<\/p>\n\n\n\n<p>Karena kondisi perulangannya tidak terpenuhi.<\/p>\n\n\n\n<h2 id=\"3-perulangan-dowhile-pada-c\">3. Perulangan Do\/While pada C++<\/h2>\n\n\n\n<p>Perulangan&nbsp;<code>do\/while<\/code>&nbsp;sama seperti perulangan&nbsp;<code>while<\/code>.<\/p>\n\n\n\n<p>Perbedaanya:<\/p>\n\n\n\n<p>Perulangan&nbsp;<code>do\/while<\/code>&nbsp;akan melakukan perulangan sebanyak&nbsp;<code>1<\/code>&nbsp;kali terlebih dahulu, lalu mengecek kondisi yang ada di dalam kurung&nbsp;<code>while<\/code>.<\/p>\n\n\n\n<p>Flow chart perulangan do\/while:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.petanikode.com\/img\/c\/loop\/flowchart-dowhile.webp\" alt=\"Flowchart perulangan do\/while\" title=\"\" \/><\/figure>\n\n\n\n<p>Bentuk kodenya seperti ini:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>do {\n    \/\/ blok kode yang akan diulang\n} while (&lt;kondisi&gt;);<\/code><\/pre>\n\n\n\n<p>Jadi perbedaanya:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote\">\n<p>Perulangan&nbsp;<code>do\/while<\/code>&nbsp;akan mengecek kondisi di belakang (sesudah mengulang), sedangkan&nbsp;<code>while<\/code>&nbsp;akan mencek kondisi di depan atau awal (sbelum mengulang).<\/p>\n<\/blockquote>\n\n\n\n<p>Mari kita coba lihat contohnya:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>#include &lt;iostream&gt;\nusing namespace std;\n\nint main(){\n    char ulangi = 'y';\n    int counter = 0;\n\n    do {\n        printf(\"Apakah kamu mau mengulang?\\n\");\n        printf(\"Jawab (y\/t): \");\n        cin &gt;&gt; ulangi;\n\n        \/\/ increment counter\n        counter++;\n    } while(ulangi == 'y');\n\n    printf(\"\\n\\n----------\\n\");\n    printf(\"Perulangan Selesai!\\n\");\n    printf(\"Kamu mengulang sebanyak %i kali.\\n\", counter);\n\n    return 0;\n}<\/code><\/pre>\n\n\n\n<p>Contoh tersebut sama seperti contoh pada perulangan&nbsp;<code>while<\/code>.<\/p>\n\n\n\n<p>Saat perulangan pertama, cobalah untuk membatalkan perulangannya dengan menjawab&nbsp;<code>t<\/code>.<\/p>\n\n\n\n<p>Maka hasilnya:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.petanikode.com\/img\/c\/loop\/do-while.webp\" alt=\"Perulangan Do While\" title=\"\" \/><\/figure>\n\n\n\n<h2 id=\"4-perulangan-bersarang-nested-loop\">4. Perulangan Bersarang&nbsp;<em>(Nested Loop)<\/em><\/h2>\n\n\n\n<p>Di dalam blok perulangan, kita juga dapat membuat perulangan.<\/p>\n\n\n\n<p>Ini disebut dengan&nbsp;<em>nested loop<\/em>&nbsp;atau perulangan bersarang atau perulangan di dalam perualangan.<\/p>\n\n\n\n<p>Mari kita coba lihat contohnya:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>#include &lt;iostream&gt;\nusing namespace std;\n\nint main(){\n    for(int i = 0; i &lt; 10; i++){\n        for(int j = 0; j &lt; 10; j++){\n            printf(\"Perulangan ke (%d, %d)\\n\", i, j);\n        }\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\/c\/loop\/nested-loop.webp\" alt=\"Perulangan bersarang pada C++\" title=\"\" \/><\/figure>\n\n\n\n<p>Pada perulangan tersebut, kita menggunakan dua perulangan&nbsp;<code>for<\/code>.<\/p>\n\n\n\n<p>Perulangan pertama menggunakan variabel&nbsp;<code>i<\/code>&nbsp;sebagai&nbsp;<em>counter<\/em>, sedangkan perultangan kedua menggunakan variabel&nbsp;<code>j<\/code>&nbsp;sebagai&nbsp;<em>counter<\/em>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Apa yang akan kamu lakukan saat disuruh mencetak kalimat berulang-ulang? Misalnya: Tolong tampilkan kalimat&nbsp;&#8220;Tutorial Pemrograman C++!&#8221;&nbsp;sebanyak 10x ke layar! Mungkin kamu akan menggunakan&nbsp;cout&nbsp;sebanyak 10 kali seperti ini: Hasilnya: Apakah boleh seperti ini? Ya, boleh-boleh saja. Tapi\u2026 Bagaimana kalau nanti mau menampilkan sebanyak&nbsp;1000&nbsp;kali. Pasti capek donk ngetiknya. Karena itu, kita harus menggunakan&nbsp;perulangan. Perulangan akan membantu kita [&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\/1866"}],"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=1866"}],"version-history":[{"count":1,"href":"https:\/\/blog.uts.ac.id\/jul\/wp-json\/wp\/v2\/posts\/1866\/revisions"}],"predecessor-version":[{"id":1867,"href":"https:\/\/blog.uts.ac.id\/jul\/wp-json\/wp\/v2\/posts\/1866\/revisions\/1867"}],"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=1866"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.uts.ac.id\/jul\/wp-json\/wp\/v2\/categories?post=1866"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.uts.ac.id\/jul\/wp-json\/wp\/v2\/tags?post=1866"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}