{ "cells": [ { "cell_type": "markdown", "id": "e0e8b8fb-45b5-49c3-84ac-37e039959ecd", "metadata": { "editable": true, "slideshow": { "slide_type": "slide" }, "tags": [] }, "source": [ "# Runtutan, Percabangan, dan Perulangan di Python\n", "Python menggunakan runtutan seperti string, list; percabangan dengan if, elif, else untuk membuat pilihan berdasarkan kondisi; dan perulangan dengan for untuk mengulang elemen runtutan, serta while untuk mengulang dengan syarat tertentu." ] }, { "cell_type": "markdown", "id": "638b1621-24df-4cd9-a1f9-df2b54aef2b9", "metadata": { "editable": true, "slideshow": { "slide_type": "slide" }, "tags": [] }, "source": [ "## 1. Runtutan (Sequence)\n", "Konsep algoritma runtutan melibatkan urutan langkah-langkah yang harus diikuti dalam eksekusi. Ini penting karena memastikan bahwa tugas-tugas dieksekusi dengan benar dan dalam urutan yang diinginkan. Dalam algoritma runtutan, langkah pertama diikuti oleh langkah kedua, dan seterusnya. Keperluan algoritma runtutan meliputi:\n", "1. **Keteraturan Eksekusi**: Algoritma runtutan memastikan bahwa tugas-tugas dilakukan dalam urutan yang benar dan dapat diandalkan.\n", "2. **Kontrol**: Algoritma runtutan memberikan kontrol yang jelas terhadap tugas yang harus dijalankan dan dalam urutan yang diinginkan.\n", "3. **Kemudahan Pemahaman**: Dengan mengikuti urutan yang logis, algoritma runtutan menjadi lebih mudah dipahami oleh orang lain yang membaca atau menganalisis algoritma tersebut.\n", "4. **Prediktabilitas**: Algoritma runtutan memungkinkan hasil yang konsisten, karena setiap langkah dieksekusi dengan cara yang diharapkan.\n", "5. **Pengurangan Kesalahan**: Dengan mengikuti urutan yang ditentukan, peluang terjadinya kesalahan manusia berkurang, karena tugas-tugas dieksekusi sesuai dengan rencana" ] }, { "cell_type": "markdown", "id": "3af50849-2214-4e2b-a8bd-21e46648a0f7", "metadata": { "editable": true, "slideshow": { "slide_type": "slide" }, "tags": [] }, "source": [ "Misalnya, dalam membuat kopi tehnik ini sangat penting. Langkahnya adalah: tuangkan air mendidih ke dalam gelas, masukkan kantong teh, biarkan meresap, lalu tambahkan gula atau susu sesuai selera. Jika urutan ini diubah, hasilnya mungkin tidak sesuai. Dalam pemrograman, algoritma runtutan memastikan bahwa program dijalankan dengan benar dan efisien. Dalam hal ini, mengatur langkah-langkah dengan benar adalah kunci untuk mencapai hasil yang diinginkan." ] }, { "cell_type": "markdown", "id": "ce4c0460-ebbd-477e-9aab-84af977d1b64", "metadata": { "editable": true, "slideshow": { "slide_type": "slide" }, "tags": [] }, "source": [ "### Contoh Runtutan 1\n", "**Selamat datang di Aplikasi Perhitungan Belanja**
\n", "Masukkan nama item: Apel
\n", "Masukkan harga item: 1.5
\n", "\n", "Daftar Item:
\n", "Apel: 1.5
\n", "\n", "Total belanja: 1.5
\n", "Terima kasih telah menggunakan Aplikasi Perhitungan Belanja!
\n" ] }, { "cell_type": "code", "execution_count": null, "id": "d720fbbe-a542-44d8-889f-a89e9ef3bc3d", "metadata": { "editable": true, "slideshow": { "slide_type": "slide" }, "tags": [] }, "outputs": [], "source": [ "def main():\n", " item_prices = {} # Dictionary untuk menyimpan informasi harga item\n", "\n", " print(\"Selamat datang di Aplikasi Perhitungan Belanja\")\n", "\n", " # Menambahkan item dan harga ke dalam dictionary\n", " item = input(\"Masukkan nama item: \")\n", " price = float(input(\"Masukkan harga item: \"))\n", " item_prices[item] = price\n", "\n", " # Menampilkan daftar item dan harga\n", " print(\"\\nDaftar Item:\")\n", " for item, price in item_prices.items():\n", " print(f\"{item}: {price}\")\n", "\n", " # Menghitung total belanja\n", " total = sum(item_prices.values())\n", " print(f\"\\nTotal belanja: {total}\")\n", "\n", " print(\"Terima kasih telah menggunakan Aplikasi Perhitungan Belanja!\")\n", "\n", "if __name__ == \"__main__\":\n", " main()\n" ] }, { "cell_type": "markdown", "id": "1e466498-d66c-4eff-b7b2-e12348c6ffbb", "metadata": { "editable": true, "slideshow": { "slide_type": "slide" }, "tags": [] }, "source": [ "### Contoh Runtutan 2" ] }, { "cell_type": "markdown", "id": "589a9d12-b204-4ecb-bec5-6a86da1a812d", "metadata": { "editable": true, "slideshow": { "slide_type": "subslide" }, "tags": [] }, "source": [ "Selamat datang di Aplikasi Daftar Belanja\n", "\n", "Menu:\n", "1. Tambahkan item\n", "2. Lihat daftar belanja\n", "3. Keluar\n", "Pilih menu (1/2/3): 1\n", "Masukkan nama item: Apel\n", "Apel telah ditambahkan ke daftar belanja.\n", "\n", "Menu:\n", "1. Tambahkan item\n", "2. Lihat daftar belanja\n", "3. Keluar\n", "Pilih menu (1/2/3): 1\n", "Masukkan nama item: Susu\n", "Susu telah ditambahkan ke daftar belanja.\n", "\n", "Menu:\n", "1. Tambahkan item\n", "2. Lihat daftar belanja\n", "3. Keluar\n", "Pilih menu (1/2/3): 2\n", "Daftar Belanja:\n", "1. Apel\n", "2. Susu\n", "\n", "Menu:\n", "1. Tambahkan item\n", "2. Lihat daftar belanja\n", "3. Keluar\n", "Pilih menu (1/2/3): 3\n", "Terima kasih telah menggunakan Aplikasi Daftar Belanja!\n" ] }, { "cell_type": "code", "execution_count": null, "id": "3e4e45db-fab8-4c57-94dc-85be5e5fd344", "metadata": { "editable": true, "slideshow": { "slide_type": "slide" }, "tags": [] }, "outputs": [], "source": [ "def main():\n", " shopping_list = [] # Inisialisasi list kosong untuk menyimpan daftar belanjaan\n", "\n", " print(\"Selamat datang di Aplikasi Daftar Belanja\")\n", " while True:\n", " print(\"\\nMenu:\")\n", " print(\"1. Tambahkan item\")\n", " print(\"2. Lihat daftar belanja\")\n", " print(\"3. Keluar\")\n", " choice = input(\"Pilih menu (1/2/3): \")\n", "\n", " if choice == '1':\n", " item = input(\"Masukkan nama item: \")\n", " shopping_list.append(item) # Menambahkan item ke dalam list\n", " print(f\"{item} telah ditambahkan ke daftar belanja.\")\n", " elif choice == '2':\n", " if shopping_list:\n", " print(\"\\nDaftar Belanja:\")\n", " for index, item in enumerate(shopping_list, start=1):\n", " print(f\"{index}. {item}\")\n", " else:\n", " print(\"Daftar belanja masih kosong.\")\n", " elif choice == '3':\n", " print(\"Terima kasih telah menggunakan Aplikasi Daftar Belanja!\")\n", " break\n", " else:\n", " print(\"Pilihan tidak valid. Mohon pilih 1, 2, atau 3.\")\n", "\n", "if __name__ == \"__main__\":\n", " main()\n" ] }, { "cell_type": "markdown", "id": "b00905d4-c598-4356-be54-0d0647298060", "metadata": { "editable": true, "slideshow": { "slide_type": "" }, "tags": [] }, "source": [ "Dalam aplikasi ini, pengguna dapat menambahkan item ke dalam daftar belanjaan, melihat daftar belanjaan, dan keluar dari aplikasi. List digunakan untuk menyimpan runtutan item belanjaan. Perulangan while digunakan untuk menjalankan aplikasi sampai pengguna memilih untuk keluar." ] }, { "cell_type": "code", "execution_count": null, "id": "644ceae3-b204-4f11-86c3-85a5e8f9fcc3", "metadata": { "editable": true, "slideshow": { "slide_type": "slide" }, "tags": [] }, "outputs": [], "source": [ "def get_input():\n", " length = float(input(\"Masukkan panjang balok: \"))\n", " width = float(input(\"Masukkan lebar balok: \"))\n", " height = float(input(\"Masukkan tinggi balok: \"))\n", " return length, width, height\n", "\n", "def calculate_volume(length, width, height):\n", " volume = length * width * height\n", " return volume\n", "\n", "def main():\n", " print(\"Selamat datang di Aplikasi Perhitungan Volume Balok\")\n", " \n", " length, width, height = get_input()\n", " volume = calculate_volume(length, width, height)\n", " \n", " print(f\"Volume balok adalah: {volume} satuan kubik\")\n", " print(\"Terima kasih telah menggunakan Aplikasi Perhitungan Volume Balok!\")\n", "\n", "if __name__ == \"__main__\":\n", " main()\n" ] }, { "cell_type": "markdown", "id": "62872ca5-90ae-4b08-b91a-e1269ac99bc8", "metadata": { "editable": true, "slideshow": { "slide_type": "slide" }, "tags": [] }, "source": [ "## 2. Percabangan (Conditional Programming)\n", "Percabangan (if-else) adalah konsep dalam algoritma yang memungkinkan Anda untuk membuat keputusan berdasarkan kondisi tertentu. Ini memungkinkan algoritma Anda untuk mengevaluasi satu atau lebih kondisi, kemudian menjalankan blok kode yang sesuai tergantung pada apakah kondisi tersebut benar (True) atau salah (False)." ] }, { "cell_type": "markdown", "id": "38c9a262-688c-4849-ae0c-0dbba759e63c", "metadata": { "editable": true, "slideshow": { "slide_type": "" }, "tags": [] }, "source": [ "Percabangan (if-else) dalam algoritma terdiri dari beberapa elemen penting:\n", "- Kondisi: Ini adalah pernyataan atau ekspresi yang dievaluasi untuk menentukan apakah benar atau salah. Jika kondisi ini terpenuhi (True), maka blok kode dalam pernyataan if akan dieksekusi.\n", "- Pernyataan If: Ini adalah blok kode yang akan dieksekusi jika kondisi dinyatakan benar (True).\n", "- Pernyataan Else (Opsional): Ini adalah blok kode yang akan dieksekusi jika kondisi dalam pernyataan if dinyatakan salah (False). Pernyataan else bersifat opsional, dan Anda hanya perlu menyertakannya jika ingin menjalankan kode alternatif saat kondisi tidak terpenuhi.\n", "\n", "Berikut adalah contoh sederhana dari percabangan dalam algoritma:" ] }, { "cell_type": "code", "execution_count": null, "id": "37d640a5-96ae-4d23-9de0-e0472fa87a9c", "metadata": { "editable": true, "slideshow": { "slide_type": "slide" }, "tags": [] }, "outputs": [], "source": [ "nilai = 75\n", "\n", "if nilai >= 70:\n", " print(\"Anda lulus!\")\n", "else:\n", " print(\"Anda tidak lulus.\")" ] }, { "cell_type": "markdown", "id": "a4daba11-78a3-4a9c-aab0-4857bccfda80", "metadata": { "editable": true, "slideshow": { "slide_type": "subslide" }, "tags": [] }, "source": [ "Dalam contoh ini:\n", "- Kondisi adalah nilai >= 70.\n", "- Jika kondisi benar (nilai lebih besar atau sama dengan 70), maka pernyataan if akan dieksekusi dan program akan mencetak \"Anda lulus!\".\n", "- Jika kondisi salah (nilai kurang dari 70), maka pernyataan else akan dieksekusi dan program akan mencetak \"Anda tidak lulus.\"." ] }, { "cell_type": "markdown", "id": "c771c5cc-47b8-4b8b-ae30-3b69501f41d4", "metadata": { "editable": true, "slideshow": { "slide_type": "subslide" }, "tags": [] }, "source": [ "Percabangan memberikan fleksibilitas pada algoritma, memungkinkan Anda untuk membuat keputusan berdasarkan berbagai kondisi yang mungkin terjadi. Hal ini sangat penting dalam membuat algoritma yang lebih dinamis dan mampu menangani situasi yang berbeda-beda." ] }, { "cell_type": "code", "execution_count": null, "id": "f13d1c3e-3538-4a98-b8d8-ae2193f9f82b", "metadata": { "editable": true, "slideshow": { "slide_type": "slide" }, "tags": [] }, "outputs": [], "source": [ "total_belanja = float(input(\"Masukkan total belanja: \"))\n", "\n", "if total_belanja >= 100000:\n", " diskon = 0.1 * total_belanja # Diskon 10% untuk total belanja >= 100000\n", " total_bayar = total_belanja - diskon\n", " print(f\"Anda mendapatkan diskon 10%! Total yang harus dibayar: {total_bayar}\")\n", "else:\n", " total_bayar = total_belanja\n", " print(f\"Anda tidak mendapatkan diskon. Total yang harus dibayar: {total_bayar}\")\n" ] }, { "cell_type": "markdown", "id": "0c6e8e53-1247-4fb3-8fe4-e85fee0f6896", "metadata": { "editable": true, "slideshow": { "slide_type": "subslide" }, "tags": [] }, "source": [ "Dalam contoh ini:\n", "- Kondisi adalah total_belanja >= 100000.\n", "- Jika kondisi benar (total belanja lebih besar atau sama dengan 100000), maka pernyataan if akan dieksekusi. Program akan menghitung diskon sebesar 10% dari total belanja dan mencetak total yang harus dibayar setelah diskon.\n", "- Jika kondisi salah (total belanja kurang dari 100000), maka pernyataan else akan dieksekusi. Program akan mencetak total yang harus dibayar tanpa diskon." ] }, { "cell_type": "markdown", "id": "778e3eff-e4d7-4d68-9db5-3ba2a6273669", "metadata": { "editable": true, "slideshow": { "slide_type": "slide" }, "tags": [] }, "source": [ "Percabangan (if-else) sangat berguna untuk membuat keputusan logis dalam algoritma, di mana algoritma harus memilih tindakan atau jalur yang berbeda berdasarkan kondisi yang terjadi. Berikut adalah beberapa contoh penggunaan percabangan untuk keputusan logis:" ] }, { "cell_type": "markdown", "id": "35fa5e68-b255-4b3e-863e-a5b21ca04d8d", "metadata": { "editable": true, "slideshow": { "slide_type": "" }, "tags": [] }, "source": [ "### a. Pengambilan Keputusan Sederhana\n", "Anda dapat menggunakan percabangan untuk membuat keputusan berdasarkan satu kondisi. Misalnya, apakah seseorang berhak mendapatkan akses atau tidak berdasarkan usia mereka." ] }, { "cell_type": "code", "execution_count": null, "id": "64ce0525-a47e-40f7-8aae-fcc2f81af241", "metadata": { "editable": true, "slideshow": { "slide_type": "" }, "tags": [] }, "outputs": [], "source": [ "usia = int(input(\"Masukkan usia Anda: \"))\n", "\n", "if usia >= 18:\n", " print(\"Anda berhak mendapatkan akses.\")\n", "else:\n", " print(\"Maaf, Anda belum berhak mendapatkan akses.\")" ] }, { "cell_type": "markdown", "id": "e3edde44-fd36-41e2-a9a2-e7b5ae17a6f6", "metadata": { "editable": true, "slideshow": { "slide_type": "" }, "tags": [] }, "source": [ "### b. Keputusan Ganda\n", "Anda dapat menggunakan percabangan untuk mengatasi dua kondisi yang berbeda. Misalnya, apakah cuaca saat ini cerah atau hujan." ] }, { "cell_type": "code", "execution_count": 1, "id": "50d147e7-3fce-4fb6-b976-aacfff5935bf", "metadata": { "editable": true, "slideshow": { "slide_type": "" }, "tags": [] }, "outputs": [ { "ename": "KeyboardInterrupt", "evalue": "Interrupted by user", "output_type": "error", "traceback": [ "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[1;31mKeyboardInterrupt\u001b[0m Traceback (most recent call last)", "Cell \u001b[1;32mIn[1], line 1\u001b[0m\n\u001b[1;32m----> 1\u001b[0m cuaca \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43minput\u001b[39;49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mMasukkan kondisi cuaca saat ini (cerah/hujan): \u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m)\u001b[49m\n\u001b[0;32m 3\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m cuaca \u001b[38;5;241m==\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mcerah\u001b[39m\u001b[38;5;124m\"\u001b[39m:\n\u001b[0;32m 4\u001b[0m \u001b[38;5;28mprint\u001b[39m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mAnda bisa pergi bermain di luar.\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n", "File \u001b[1;32m~\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\ipykernel\\kernelbase.py:1202\u001b[0m, in \u001b[0;36mKernel.raw_input\u001b[1;34m(self, prompt)\u001b[0m\n\u001b[0;32m 1200\u001b[0m msg \u001b[38;5;241m=\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mraw_input was called, but this frontend does not support input requests.\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[0;32m 1201\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m StdinNotImplementedError(msg)\n\u001b[1;32m-> 1202\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_input_request\u001b[49m\u001b[43m(\u001b[49m\n\u001b[0;32m 1203\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;28;43mstr\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43mprompt\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 1204\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_parent_ident\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mshell\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m]\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 1205\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mget_parent\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mshell\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 1206\u001b[0m \u001b[43m \u001b[49m\u001b[43mpassword\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mFalse\u001b[39;49;00m\u001b[43m,\u001b[49m\n\u001b[0;32m 1207\u001b[0m \u001b[43m\u001b[49m\u001b[43m)\u001b[49m\n", "File \u001b[1;32m~\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\ipykernel\\kernelbase.py:1245\u001b[0m, in \u001b[0;36mKernel._input_request\u001b[1;34m(self, prompt, ident, parent, password)\u001b[0m\n\u001b[0;32m 1242\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mKeyboardInterrupt\u001b[39;00m:\n\u001b[0;32m 1243\u001b[0m \u001b[38;5;66;03m# re-raise KeyboardInterrupt, to truncate traceback\u001b[39;00m\n\u001b[0;32m 1244\u001b[0m msg \u001b[38;5;241m=\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mInterrupted by user\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m-> 1245\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mKeyboardInterrupt\u001b[39;00m(msg) \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[0;32m 1246\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mException\u001b[39;00m:\n\u001b[0;32m 1247\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mlog\u001b[38;5;241m.\u001b[39mwarning(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mInvalid Message:\u001b[39m\u001b[38;5;124m\"\u001b[39m, exc_info\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mTrue\u001b[39;00m)\n", "\u001b[1;31mKeyboardInterrupt\u001b[0m: Interrupted by user" ] } ], "source": [ "cuaca = input(\"Masukkan kondisi cuaca saat ini (cerah/hujan): \")\n", "\n", "if cuaca == \"cerah\":\n", " print(\"Anda bisa pergi bermain di luar.\")\n", "else:\n", " print(\"Mungkin sebaiknya Anda tetap di dalam ruangan.\")" ] }, { "cell_type": "markdown", "id": "9b4451cd-2df7-44d5-aed8-684a79155ac5", "metadata": { "editable": true, "slideshow": { "slide_type": "" }, "tags": [] }, "source": [ "### c. Keputusan Berantai\n", "Anda dapat menggunakan percabangan bersarang (nested) untuk menangani keputusan berantai. Misalnya, untuk menentukan level pengguna berdasarkan skor ujian." ] }, { "cell_type": "code", "execution_count": null, "id": "3aa621bb-73b6-40c9-8551-4672aa2893a8", "metadata": { "editable": true, "slideshow": { "slide_type": "" }, "tags": [] }, "outputs": [], "source": [ "skor = int(input(\"Masukkan skor ujian Anda: \"))\n", "\n", "if skor >= 90:\n", " print(\"Anda berada di level A.\")\n", "elif skor >= 80:\n", " print(\"Anda berada di level B.\")\n", "elif skor >= 70:\n", " print(\"Anda berada di level C.\")\n", "else:\n", " print(\"Anda berada di level D.\")" ] }, { "cell_type": "markdown", "id": "8275ecff-0473-4acd-9dda-07b50d265dae", "metadata": { "editable": true, "slideshow": { "slide_type": "" }, "tags": [] }, "source": [ "Percabangan memungkinkan Anda untuk membuat algoritma yang lebih fleksibel dan dapat menangani situasi berbeda secara tepat. Dengan memahami kondisi logis dan keputusan yang ingin diambil, Anda dapat menggunakan percabangan untuk mengendalikan alur eksekusi algoritma dengan lebih baik.m" ] }, { "cell_type": "markdown", "id": "e0ae285e-9f5a-41bd-9c5f-4427bd10a8ce", "metadata": { "editable": true, "slideshow": { "slide_type": "" }, "tags": [] }, "source": [ "## 3. Perulangan (Looping)\n", "Konsep perulangan (loop) dalam pemrograman memungkinkan Anda untuk menjalankan serangkaian instruksi secara berulang. Perulangan digunakan untuk mengotomatiskan tugas yang memerlukan eksekusi berulang atau pengulangan kode tertentu. Terdapat dua jenis perulangan utama dalam pemrograman:\n", "1. Perulangan menggunakan for.\n", "2. Perulangan menggunakan while." ] }, { "cell_type": "markdown", "id": "01531b0d-ad3f-4182-9701-cd4f6d36bf5b", "metadata": { "editable": true, "slideshow": { "slide_type": "" }, "tags": [] }, "source": [ "Manfaat utama dari perulangan adalah:\n", "1. **Efisiensi**: Perulangan memungkinkan Anda menjalankan instruksi yang sama berulang kali tanpa harus menulis kode berulang kali. Ini membantu menghemat waktu dan upaya dalam mengotomatiskan tugas.\n", "2. **Automasi**: Perulangan memungkinkan Anda melakukan tugas yang sama secara otomatis pada berbagai data atau situasi. Ini sangat berguna dalam pemrosesan data massal atau mengulang tugas yang sama dalam berbagai iterasi.\n", "3. **Pengulangan Berbasis Kondisi**: Anda dapat menggunakan perulangan untuk mengulang tugas berdasarkan kondisi tertentu, sehingga menghindari penulisan kode yang berbeda-beda.\n", "4. **Penanganan Runtutan**: Perulangan for membantu Anda dalam mengakses dan memproses setiap elemen dalam runtutan seperti list atau string tanpa harus melakukannya secara manual.\n", "5. **Reusabilitas Kode**: Dengan perulangan, Anda dapat mengemas tugas-tugas berulang menjadi blok kode tunggal, yang dapat digunakan lagi di berbagai bagian dalam program Anda." ] }, { "cell_type": "markdown", "id": "57a26a66-e5be-4bbd-8125-bb6a49ab2b93", "metadata": { "editable": true, "slideshow": { "slide_type": "" }, "tags": [] }, "source": [ "### a. Perulangan Menggunakan For\n", "Perulangan `for` dalam pemrograman Python adalah alat yang kuat untuk mengulang tugas secara terstruktur. Dengan kemampuan untuk mengakses setiap elemen dalam runtutan, seperti list atau string, perulangan `for` membantu mengotomatiskan pengulangan dan pemrosesan data. Fungsi `range` sering digunakan untuk menghasilkan urutan angka. Dalam situasi ini, Anda dapat mengakses nilai dan indeks menggunakan fungsi `enumerate`. Keberadaan pernyataan `break` dan `continue` memungkinkan pengendalian alur perulangan. Hal ini meningkatkan efisiensi, kejelasan, dan reusabilitas kode." ] }, { "cell_type": "code", "execution_count": null, "id": "4ad8dc27-70e3-4fcf-bbb8-463a36ba8b23", "metadata": { "editable": true, "slideshow": { "slide_type": "" }, "tags": [] }, "outputs": [], "source": [ "# 1. Mengulang List\n", "buah = [\"apel\", \"pisang\", \"jeruk\", \"anggur\"]\n", "for item in buah:\n", " print(item)" ] }, { "cell_type": "code", "execution_count": null, "id": "14abeb1d-0c71-47ec-befd-235f23ae39b4", "metadata": { "editable": true, "slideshow": { "slide_type": "" }, "tags": [] }, "outputs": [], "source": [ "# 2. Menggunakan Fungsi range\n", "for i in range(1, 6):\n", " print(i)" ] }, { "cell_type": "code", "execution_count": null, "id": "559701e9-dcd9-4123-ac52-62af593d1045", "metadata": { "editable": true, "slideshow": { "slide_type": "" }, "tags": [] }, "outputs": [], "source": [ "# 3. Mengulang Sring\n", "kata = \"python\"\n", "for char in kata:\n", " print(char)\n" ] }, { "cell_type": "code", "execution_count": null, "id": "fea3cb86-600b-450f-a646-2b99f8619035", "metadata": { "editable": true, "slideshow": { "slide_type": "" }, "tags": [] }, "outputs": [], "source": [ "# 4. Menghitung Total\n", "total = 0\n", "for angka in range(1, 6):\n", " total += angka\n", "print(\"Total:\", total)\n" ] }, { "cell_type": "code", "execution_count": 2, "id": "8c9a9cfc-19f7-4b15-bcf3-435e27c9a278", "metadata": { "editable": true, "slideshow": { "slide_type": "" }, "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "*\n", "**\n", "***\n", "****\n", "*****\n" ] } ], "source": [ "# 5. Membuat Pola Bintang\n", "for baris in range(5):\n", " for kolom in range(baris + 1):\n", " print(\"*\", end=\"\")\n", " print() # Pindah ke baris berikutnya" ] }, { "cell_type": "code", "execution_count": null, "id": "3c85b761-37af-4c85-84a9-9b4df9d48278", "metadata": { "editable": true, "slideshow": { "slide_type": "" }, "tags": [] }, "outputs": [], "source": [ "# 6. Menggunakan enumerate\n", "buah = [\"apel\", \"pisang\", \"jeruk\"]\n", "for indeks, item in enumerate(buah):\n", " print(f\"Indeks {indeks}: {item}\")" ] }, { "cell_type": "code", "execution_count": null, "id": "c9fda73a-b7d8-4c43-89cc-641c11066ff8", "metadata": { "editable": true, "slideshow": { "slide_type": "" }, "tags": [] }, "outputs": [], "source": [ "# 7. Menggunakan break dan continue\n", "for i in range(1, 11):\n", " if i == 5:\n", " break # Menghentikan perulangan saat i == 5\n", " if i % 2 == 0:\n", " continue # Melanjutkan ke iterasi berikutnya jika i adalah genap\n", " print(i)" ] }, { "cell_type": "markdown", "id": "af52fdc7-da78-419c-9c5f-f165bdc0d074", "metadata": { "editable": true, "slideshow": { "slide_type": "" }, "tags": [] }, "source": [ "### b. Perulangan Menggunakan While\n", "Perulangan while dalam pemrograman Python memungkinkan pengulangan berdasarkan kondisi tertentu. Ini cocok untuk situasi-situasi di mana jumlah pengulangan tidak pasti dan dikontrol oleh kondisi. Perulangan ini terus berjalan selama kondisi yang diberikan tetap benar (True). Ini adalah alat yang berguna untuk mengatasi tugas-tugas yang memerlukan interaksi berulang dengan pengguna atau pemrosesan iteratif." ] }, { "cell_type": "code", "execution_count": null, "id": "409c7b90-bbfa-4f57-be30-524bfe2738bf", "metadata": { "editable": true, "slideshow": { "slide_type": "" }, "tags": [] }, "outputs": [], "source": [ "# 1. Menghitung Mundur\n", "count = 5\n", "while count > 0:\n", " print(count)\n", " count -= 1" ] }, { "cell_type": "code", "execution_count": null, "id": "59b534a9-cdc3-4ab0-87f6-1266c50ee3a8", "metadata": { "editable": true, "slideshow": { "slide_type": "" }, "tags": [] }, "outputs": [], "source": [ "# 2. Membaca Input Valid\n", "password = \"password123\"\n", "input_password = input(\"Masukkan password: \")\n", "\n", "while input_password != password:\n", " print(\"Password salah, coba lagi.\")\n", " input_password = input(\"Masukkan password: \")\n", "\n", "print(\"Password benar. Akses diberikan.\")" ] }, { "cell_type": "code", "execution_count": null, "id": "55ee869a-ad4c-4536-bf85-3997fac6ddcb", "metadata": { "editable": true, "slideshow": { "slide_type": "" }, "tags": [] }, "outputs": [], "source": [ "# 3. Perulangan Tak Terbatas dengan break\n", "while True:\n", " opsi = input(\"Lanjutkan? (ya/tidak): \")\n", " if opsi == \"tidak\":\n", " break\n", "print(\"Perulangan berhenti.\")\n" ] }, { "cell_type": "code", "execution_count": null, "id": "8e8222dd-606f-48b6-80ac-c8b8511cd94e", "metadata": { "editable": true, "slideshow": { "slide_type": "" }, "tags": [] }, "outputs": [], "source": [ "# 4. Perulangan dengan Batas Bawah dan Atas\n", "bilangan = 1\n", "while bilangan <= 10:\n", " print(bilangan)\n", " bilangan += 2 # Hanya angka ganjil\n" ] }, { "cell_type": "code", "execution_count": null, "id": "a49a2120-6be1-4c51-9396-6550e757611a", "metadata": { "editable": true, "slideshow": { "slide_type": "" }, "tags": [] }, "outputs": [], "source": [ "# 5. Menghitung Total\n", "total = 0\n", "angka = 1\n", "while angka <= 5:\n", " total += angka\n", " angka += 1\n", "print(\"Total:\", total)\n" ] }, { "cell_type": "markdown", "id": "641cd7ce-6ef8-476e-9c98-9ac0dcebb11a", "metadata": { "editable": true, "slideshow": { "slide_type": "" }, "tags": [] }, "source": [ "## Latihan Percabangan\n", "1. Tulislah program yang meminta pengguna untuk memasukkan nilai ujian dan mengeluarkan keterangan \"Lulus\" jika nilai lebih dari atau sama dengan 60, \"Remidi\" jika nilai di antara 40 dan 59, dan \"Tidak Lulus\" jika nilai di bawah 40.\n", "2. Buatlah program yang menerima input umur pengguna dan memberikan informasi tentang kategori usia: \"Balita\" untuk usia 0-5 tahun, \"Anak-anak\" untuk usia 6-12 tahun, \"Remaja\" untuk usia 13-19 tahun, dan \"Dewasa\" untuk usia 20 tahun ke atas.\n", "3. Tulislah program yang meminta pengguna untuk memasukkan tahun dan menentukan apakah tahun tersebut adalah tahun kabisat atau bukan. Tahun kabisat adalah tahun yang habis dibagi 4, tetapi tidak habis dibagi 100 kecuali habis dibagi 400.\n" ] }, { "cell_type": "markdown", "id": "1f51527a-718f-459a-8cb3-367704e90758", "metadata": { "editable": true, "slideshow": { "slide_type": "" }, "tags": [] }, "source": [ "## Latihan For Loop\n", "1. Buatlah program yang mencetak bilangan genap dari 1 hingga 20 menggunakan perulangan for.\n", "2. Tulislah program untuk menghitung faktorial dari suatu angka yang dimasukkan oleh pengguna menggunakan perulangan for." ] }, { "cell_type": "markdown", "id": "d8e42014-0be5-4719-987e-15841bf6340b", "metadata": { "editable": true, "slideshow": { "slide_type": "" }, "tags": [] }, "source": [ "## Latihan While Loop\n", "1. Buatlah program yang meminta pengguna untuk menginputkan sebuah kata. Program harus mencetak jumlah huruf vokal (a, e, i, o, u) dalam kata tersebut menggunakan perulangan while.\n", "2. Tulislah program yang meminta pengguna untuk menginputkan sebuah angka. Program akan mencetak tabel perkalian dari angka tersebut menggunakan perulangan while.\n", "3. Buatlah program yang meminta pengguna untuk menginputkan kata atau kalimat. Program akan membalikkan teks yang dimasukkan menggunakan perulangan while\n", "4. Tulislah program yang meminta pengguna untuk menginputkan sejumlah angka positif. Program harus mencetak rata-rata dari angka-angka tersebut menggunakan perulangan while.\n", "5. Tulislah program yang meminta pengguna untuk menginputkan suatu kata. Program harus mencetak apakah kata tersebut merupakan palindrom (membaca sama dari depan dan belakang) atau tidak menggunakan perulangan while." ] }, { "cell_type": "code", "execution_count": null, "id": "78aae7d2-a84d-4995-a8c7-d735ade5054d", "metadata": { "editable": true, "slideshow": { "slide_type": "" }, "tags": [] }, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.11.4" } }, "nbformat": 4, "nbformat_minor": 5 }