{"id":17829,"date":"2025-09-01T20:38:39","date_gmt":"2025-09-01T13:38:39","guid":{"rendered":"https:\/\/www.jetorbit.com\/blog\/?p=17829"},"modified":"2025-09-01T20:54:48","modified_gmt":"2025-09-01T13:54:48","slug":"perulangan-for-di-bash-bash-for-loop","status":"publish","type":"post","link":"https:\/\/www.jetorbit.com\/blog\/perulangan-for-di-bash-bash-for-loop\/","title":{"rendered":"Perulangan for di Bash (Bash For Loop)"},"content":{"rendered":"\n<p>Loop adalah salah satu konsep mendasar dalam pemrograman. Di Bash, loop memungkinkan kita menjalankan serangkaian perintah berulang kali tanpa menulis kode yang sama berulang-ulang. Tiga jenis loop dasar di Bash adalah <code>for<\/code>, <code>while<\/code>, dan <code>until<\/code>. Halaman ini membahas dasar-dasar loop <code>for<\/code> dan penggunaan <code>break<\/code> serta <code>continue<\/code> untuk mengendalikan alur eksekusi.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">1. Sintaks Dasar <code>for<\/code><\/h2>\n\n\n\n<p>Loop <code>for<\/code> di Bash mengiterasi sebuah daftar (list) item dan menjalankan perintah untuk setiap item tersebut.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>for item in &#91;DAFTAR]\ndo\n  # PERINTAH\ndone\n<\/code><\/pre>\n\n\n\n<p>Daftar bisa berupa string yang dipisahkan spasi, rentang angka, output perintah, array, atau argumen dari baris perintah.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Contoh: Loop melalui string<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>for element in Hydrogen Helium Lithium Beryllium\ndo\n  echo \"Element: $element\"\ndone\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Contoh: Loop melalui rentang angka dengan ekspansi brace<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>for i in {0..3}\ndo\n  echo \"Number: $i\"\ndone\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Rentang dengan kenaikan (increment) \u2014 Bash 4+<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>for i in {0..20..5}\ndo\n  echo \"Number: $i\"\ndone\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Contoh: Loop melalui elemen array<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>BOOKS=('In Search of Lost Time' 'Don Quixote' 'Ulysses' 'The Great Gatsby')\n\nfor book in \"${BOOKS&#91;@]}\"; do\n  echo \"Book: $book\"\ndone\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">2. <code>for<\/code> Gaya C (C-style)<\/h2>\n\n\n\n<p>Bentuk gaya C memberi kontrol lebih pada inisialisasi variabel, kondisi, dan langkah setiap iterasi.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>for (( INITIALISASI; KONDISI; LANGKAH ))\ndo\n  # PERINTAH\ndone\n<\/code><\/pre>\n\n\n\n<p>Contoh:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>for ((i = 0; i &amp;lt;= 1000; i++)); do\n  echo \"Counter: $i\"\ndone\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">3. Loop Bersarang (Nesting Loops)<\/h2>\n\n\n\n<p>Loop dapat ditempatkan di dalam loop lain. Ini berguna saat setiap iterasi loop luar harus menjalankan seluruh iterasi loop dalam.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>for f in file_{1..3}; do\n  for j in server_{1..3}; do\n    echo \"Copying file $f to server $j\"\n    # perintah untuk menyalin file, misal: scp \"$f\" \"user@$j:\/path\/\"\n  done\ndone\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">4. Mengendalikan Alur: <code>break<\/code> dan <code>continue<\/code><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><code>break<\/code> \u2014 Menghentikan Loop<\/h3>\n\n\n\n<p><code>break<\/code> menghentikan eksekusi loop saat kondisi tertentu terpenuhi, lalu eksekusi dilanjutkan setelah blok <code>done<\/code>.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>for element in Hydrogen Helium Lithium Beryllium; do\n  if &#91;&#91; \"$element\" == \"Lithium\" ]]; then\n    break\n  fi\n  echo \"Element: $element\"\ndone\n\necho \"All Done!\"\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\"><code>continue<\/code> \u2014 Lewati Iterasi Saat Ini<\/h3>\n\n\n\n<p><code>continue<\/code> menghentikan iterasi saat ini dan langsung melompat ke iterasi berikutnya.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>for i in {1..5}; do\n  if &#91;&#91; \"$i\" == \"2\" ]]; then\n    continue\n  fi\n  echo \"Number: $i\"\ndone\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">5. Contoh Praktis<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">a) Mengganti spasi dalam nama file menjadi underscore<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>for file in *\\ *; do\n  mv -- \"$file\" \"${file\/\/ \/_}\"\ndone\n<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>*\\ *<\/code> \u2192 memilih file yang mengandung spasi.<\/li>\n\n\n\n<li><code>${file\/\/ \/_}<\/code> \u2192 mengganti semua spasi menjadi underscore.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">b) Mengganti ekstensi <code>.jpeg<\/code> menjadi <code>.jpg<\/code> pada semua file<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>for file in *.jpeg; do\n  mv -- \"$file\" \"${file%.jpeg}.jpg\"\ndone\n<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>*.jpeg<\/code> \u2192 memilih semua file dengan ekstensi <code>.jpeg<\/code>.<\/li>\n\n\n\n<li><code>${file%.jpeg}<\/code> \u2192 menghapus akhiran <code>.jpeg<\/code> dari nama file.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Kesimpulan<\/h2>\n\n\n\n<p>Loop <code>for<\/code> di Bash memudahkan otomatisasi tugas berulang dengan mengiterasi daftar item: string, angka, array, atau output perintah. Gunakan bentuk gaya C untuk kontrol yang lebih granuler. Manfaatkan <code>break<\/code> dan <code>continue<\/code> untuk mengatur alur iterasi, serta terapkan pada kasus nyata seperti penamaan file massal atau konversi ekstensi.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Loop adalah salah satu konsep mendasar dalam pemrograman. Di Bash, loop memungkinkan kita menjalankan serangkaian perintah berulang kali tanpa menulis kode yang sama berulang-ulang. Tiga jenis loop dasar di Bash adalah for, while, dan until. Halaman ini membahas dasar-dasar loop for dan penggunaan break serta continue untuk mengendalikan alur eksekusi. 1. Sintaks Dasar for Loop &#8230; <a title=\"Perulangan for di Bash (Bash For Loop)\" class=\"read-more\" href=\"https:\/\/www.jetorbit.com\/blog\/perulangan-for-di-bash-bash-for-loop\/\" aria-label=\"Read more about Perulangan for di Bash (Bash For Loop)\">Read more<\/a><\/p>\n","protected":false},"author":1,"featured_media":17832,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"generate_page_header":"","footnotes":""},"categories":[6927],"tags":[],"class_list":["post-17829","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-coding","infinite-scroll-item","generate-columns","tablet-grid-50","mobile-grid-100","grid-parent","grid-33"],"_links":{"self":[{"href":"https:\/\/www.jetorbit.com\/blog\/wp-json\/wp\/v2\/posts\/17829","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.jetorbit.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.jetorbit.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.jetorbit.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.jetorbit.com\/blog\/wp-json\/wp\/v2\/comments?post=17829"}],"version-history":[{"count":2,"href":"https:\/\/www.jetorbit.com\/blog\/wp-json\/wp\/v2\/posts\/17829\/revisions"}],"predecessor-version":[{"id":17833,"href":"https:\/\/www.jetorbit.com\/blog\/wp-json\/wp\/v2\/posts\/17829\/revisions\/17833"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.jetorbit.com\/blog\/wp-json\/wp\/v2\/media\/17832"}],"wp:attachment":[{"href":"https:\/\/www.jetorbit.com\/blog\/wp-json\/wp\/v2\/media?parent=17829"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.jetorbit.com\/blog\/wp-json\/wp\/v2\/categories?post=17829"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.jetorbit.com\/blog\/wp-json\/wp\/v2\/tags?post=17829"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}