Percabangan dan Ternary Operators
- Get link
- X
- Other Apps
Percabangan dan Ternary Operators
Control flow adalah sebuah cara untuk memberi tahu program mengenai instruksi yang harus dijalankan dan di mana harus memulai dan berakhir. Pada materi sebelumnya, Anda telah mempelajari aksi sekuensial. Python akan menjalankan kode Anda berdasarkan deretan instruksi yang dibuat secara sekuensial.
Dalam Python, program dapat berupa blok kode. Python sangat memperhatikan indentasi untuk membangun sebuah blok kode. Salah satu blok pemrograman adalah perulangan. Perulangan adalah satu dari beberapa control flow.
Control flow memungkinkan program untuk berjalan berdasarkan jalur eksekusi. Control flow terbagi menjadi beberapa jenis, yakni kondisi tertentu (percabangan), mengulang blok kode secara berulang (perulangan), melewati sebagian kode dan berhenti di kode tertentu, hingga mendefinisikan fungsi.
Kita akan mempelajari fungsi pada modul yang berbeda. Untuk menggantikannya, materi ini akan fokus menjelaskan error dan exception handling yang bertujuan untuk mengontrol dan merespons kejadian yang tidak diinginkan ketika program berjalan.
Mari kita mulai pembahasan kita dari Percabangan dan Ternary Operators terlebih dahulu.
Percabangan
Dalam pemrograman, sebuah kode program dapat berjalan berdasarkan kondisi tertentu. Maknanya, Anda dapat memberikan instruksi berdasarkan "Jika-maka" (if-else).
Misalnya dalam keadaan seperti berikut.
- Jika Anda tidak menyelesaikan kelas Memulai Pemrograman dengan Python, maka Anda tidak lulus dari kelas Memulai Pemrograman dengan Python.
- Jika jumlah variabel nama kurang dari dua, maka variabel tersebut tidak memenuhi kriteria kondisi.
Sebenarnya, kasus percabangan sering kita jumpai dalam kehidupan sehari-hari. Simak ilustrasi berikut.
"Setiap hari, Ibu selalu pergi ke pasar untuk membeli bahan makanan. Ibu selalu mengutamakan untuk membeli daging ayam di pasar. Jika daging ayam tidak tersedia, maka Ibu akan membeli tempe sebagai pengganti, lalu memasaknya."
Layaknya ilustrasi di atas, setiap kondisi akan mengembalikan nilai true atau false. Dengan nilai boolean ini, Anda dapat menentukan instruksi selanjutnya. Misalnya, jika ayam tersedia (bernilai true), maka ibu akan membeli ayam dan memasaknya.
Mari ubah ilustrasi di atas menjadi kode program Python.
ketersediaan = "Daging ayam"if ketersediaan == "Daging ayam": print("Ibu membeli dan memasak ayam")else: print("Ibu membeli dan memasak tempe")"""Output:Ibu membeli dan memasak ayam"""Kode di atas merupakan program percabangan. Jika variabel "ketersediaan" bernilai "Daging ayam", maka akan mengembalikan string "Ibu membeli dan memasak ayam". Kita bisa asumsikan variabel "ketersediaan" sama seperti ketersediaan bahan makanan dari pasar yang ibu kunjungi. Jika pasar tersebut menyediakan "Daging ayam", variabel tersebut bernilai "Daging ayam".
Jika daging ayam tidak tersedia di pasar, maknanya variabel "ketersediaan" akan bernilai kosong atau bernilai bahan makanan lain. Dengan begitu, jika variabel "ketersediaan" tidak memiliki nilai "Daging ayam", variabel ketersediaan tidak lagi memenuhi kondisi "if ketersediaan == 'Daging ayam'". Jadi, program akan mengembalikan teks atau string "Ibu membeli dan memasak tempe".
Ingat bahwa Python adalah bahasa pemrograman case-sensitive, hal ini berlaku juga pada percabangan. Buktikan sendiri dengan mengubah "Daging ayam" menjadi "Daging Ayam". Apakah output program masih sama?
Dalam ilustrasi di atas, kita paham bahwa percabangan melibatkan if dan else statement. Anda dapat mengasumsikan statement sebagai instruksi. Selain if dan else statement, sebenarnya Python masih memiliki satu statement lagi yang sering digunakan, yakni elif. Mari kita pelajari satu per satu.
If
If adalah statement Python yang akan mengecek nilai variabel di dalamnya memenuhi kriteria suatu kondisi atau tidak. Jika memenuhi kriteria, kondisi tersebut bernilai true. Jika tidak memenuhi kriteria, kondisi akan bernilai false. Jika kondisi if bernilai true, kode yang berada dalam blok kode if akan dieksekusi.
Perlu diingat bahwa if merupakan blok kode. Jadi, Anda perlu memperhatikan indentasi untuk menjalankan kode, seperti yang ditunjukkan gambar.
Mari tinjau implementasi if pada kode di bawah ini.
score = 100if score == 100: print("Nilai Anda sempurna!")"""Output:Nilai Anda sempurna!"""Pada kode di atas, program akan mengecek nilai dari variabel "score". Kondisi yang harus terpenuhi adalah "if score == 100" atau bisa diartikan nilai dari variabel "score" harus bernilai "100". Program lalu mengecek variabel dan mengevaluasi nilainya berdasarkan kondisi yang harus dipenuhi.
Pada kode di atas, kondisi terpenuhi dan program akan menjalankan kode yang berada dalam if statement. Kode tersebut merupakan fungsi "print()" untuk menampilkan teks atau string "Nilai Anda sempurna!".
Hal lain yang perlu diperhatikan adalah Python menganggap setiap nilai kosong (zero) dan null sebagai False. Sebaliknya, nilai yang tidak kosong (non-zero) dan tidak null (non-null) akan bernilai True. Untuk lebih mengetahui maksudnya, mari lihat kode berikut.
Pada baris pertama kode program di atas, variabel "x" diinisialisasikan dengan string kosong "". Kemudian if statement mengevaluasi variabel "x" dan menghasilkan nilai salah (False). Hal ini terjadi karena variabel "x" berisi string kosong dan Python mengevaluasinya sebagai False. Sebab hasil kondisinya adalah False, blok kode dalam if tidak dijalankan.
Beberapa nilai yang dianggap sebagai false oleh Python sebagai berikut.
- Nilai yang sudah didefinisikan bernilai salah: None dan False.
- Angka nol dari semua tipe numerik: 0, 0.0, 0j, Decimal(0), Fraction(0,1).
- Urutan (sequence) dan koleksi (collection) yang kosong: "", (), {}, set(), range(0).
Selain nilai di atas, Python akan menganggap semua nilai sebagai true.
Terakhir, if statement memiliki versi one-liner-nya. Ini memungkinkan Anda untuk membuat kode if dalam bentuk single statement atau satu baris, tanpa perlu memperhatikan indentasi dan membuat blok kode.
score = 100if score == 100: print("Nilai Anda sempurna!")"""Output:Nilai Anda sempurna!"""Kode program di atas merupakan program yang sama dengan contoh pertama sebelumnya. Perhatikan bahwa kode "print()" disimpan setelah tanda titik dua ":". Program tidak menganggap itu sebagai kesalahan sehingga dapat menghasilkan output yang diharapkan, yakni teks/string "Nilai Anda sempurna!".
Else
Else adalah statement yang menjadi jalan keluar saat kondisi atau hasil evaluasi if statement bernilai false. Maksudnya adalah program akan menjalani blok kode if terlebih dahulu dan jika hasilnya adalah false, program akan menjalankan else statement sebagai jalan keluar atau kondisi terakhir.
Jika kita gabungkan if dan else, struktur berikut akan dihasilkan.
Perhatikan gambar di atas, secara sekuensial program akan menjalankan kondisi if statement terlebih dahulu. Jika hasil kondisi adalah true, blok kode dalam if statement akan dieksekusi. Namun, jika kondisi if statement bernilai false, else statement akan dijalankan dan blok kode dalam else statement akan dieksekusi.
Else termasuk statement bersifat opsional. Umumnya, else statement digunakan ketika memiliki kondisi terakhir saat semua kondisi tidak terpenuhi. Mari tinjau penerapannya dalam kasus pengecekan tinggi badan suatu pengunjung untuk menaiki roller coaster.
tinggi_badan = 120if tinggi_badan >=160: print("Anda boleh menaiki roller coaster")else: print("Anda tidak diperbolehkan menaiki roller coaster")"""Output:Anda tidak diperbolehkan menaiki roller coaster"""Pada program di atas, Anda seolah berkata "Jika tinggi badannya adalah 160 cm ke atas, maka diperbolehkan naik roller coaster. Jika di bawah 160 cm, maka pengunjung tidak diperbolehkan menaiki roller coaster".
Baris pertama, variabel tinggi_badan diinisialisasikan dengan nilai 120. Ini artinya pengunjung memilki tinggi badan 120 cm. Program akan mengevaluasi variabel tersebut pada blok kode if statement. Sebab tinggi badannya adalah 120, kondisi akan bernilai false pada if statement tersebut dan tidak menjalankan kode di dalamnya.
Selanjutnya program menjalankan blok else statement sebagai upaya terakhir. Jika if statement menyatakan "tinggi badan harus di atas atau sama dengan 160", else statement menyatakan sebaliknya, "tinggi badan harus di bawah 160 atau tepatnya 159 ke bawah".
Jika pengunjung atau variabel "tinggi_badan" bernilai 120, kondisi ini akan memenuhi else statement. Lalu, blok kode dalam else statement dijalankan.
Apabila Anda memiliki pertanyaan seperti “bagaimana jika kondisi else statement tidak terpenuhi?” Jawabannya adalah kondisi else statement sudah pasti terpenuhi karena merupakan jalan keluar terakhir dalam suatu percabangan. Anda harus menggunakan else statement sebagai kondisi terakhir dalam percabangan dan bukan kondisi ke-2, kondisi ke-3, dan seterusnya.
Jika ingin menambah kondisi baru, seperti kondisi ke-2, kondisi ke-3, dan seterusnya, jangan gunakan else statement. Untuk hal itu, Anda bisa menggunakan elif statement.
Elif
Elif merupakan kependekan dari else if dan alternatif untuk if bertingkat atau switch case. Elif statement berada pada posisi setelah if. Anda dapat menambahkan elif statement lebih dari satu karena tidak dibatasi dan opsional.
Struktur keseluruhan percabangan jika kita gabungkan antara if, elif, dan else adalah berikut.
Perhatikan gambar di atas, secara sekuensial program akan menjalankan if statement terlebih dahulu. Jika kondisinya bernilai true, blok kode di dalamnya akan dieksekusi. Jika kondisinya false, elif statement akan dijalankan.
Jika kondisi elif statement menghasilkan true, blok kode di dalamnya akan dieksekusi. Kondisi else statement akan dijalankan dan kode di dalamnya akan dieksekusi jika semua kondisi sebelumnya salah atau menghasilkan false.
Mari tinjau penerapannya pada kasus penilaian tugas siswa.
nilai = 65if nilai>=80: print("Selamat! Anda mendapat nilai A") print("Pertahankan!")elif nilai>=70: print("Hore! Anda mendapat nilai B") print("Tingkatkan!")elif nilai>=60: print("Hmm.. Anda mendapat nilai C") print("Ayo semangat!")else: print("Waduh, Anda mendapat nilai D") print("Yuk belajar lebih giat lagi!")"""Output:Hmm.. Anda mendapat nilai CAyo semangat!Program di atas merupakan contoh penerapan if, else, dan elif statement. Kasus yang digunakan adalah penilaian tugas siswa. Jika nilai siswa lebih atau sama dengan dari 80, siswa akan mendapatkan nilai A. Jika nilai siswa lebih atau sama dengan dari 70 dan kurang dari 80, siswa akan mendapatkan nilai B. Jika nilai siswa lebih atau sama dengan dari 60 dan kurang dari 70, siswa akan mendapatkan nilai C. Jika nilai siswa kurang dari 60, siswa akan mendapatkan nilai D.
Pada program di atas, diasumsikan bahwa siswa memiliki nilai 65. Jadi, variabel "nilai" diinisialisasi dengan nilai 65. Program akan mengevaluasi satu persatu secara sekuensial dari if statement pertama hingga else statement.
Kondisi if pertama tidak memenuhi kriteria karena nilai harus lebih dari 80, program lanjut ke elif statement pertama dan tidak memenuhi kriteria karena harus bernilai lebih dari 70. Program berlanjut ke elif statement kedua, hasil evaluasinya ternyata memenuhi kriteria, yakni nilai lebih dari 60. Program mengeksekusi blok kode di dalamnya dengan menampilkan teks "Hmm.. Anda mendapat nilai C Ayo semangat!".
Perlu diingat bahwa else statement tidak akan dijalankan jika kondisi sebelumnya terpenuhi seperti pada kasus di atas.
Untuk informasi tambahan, kita juga dapat menambahkan 'and' atau 'or' operator dalam kondisi percabangan. Contohnya seperti di bawah ini. Asumsikan kita membuat program penilaian tugas siswa, tetapi kita memiliki dua indikator, yaitu nilai dan perilaku.
nilai = 81perilaku = 'tidak baik'if nilai>=80 and perilaku == 'baik': print("Selamat! Anda mendapat nilai A dan telah berkelakuan baik") print("Pertahankan!")elif nilai>=80 and perilaku != 'baik': print("Kamu mendapatkan nilai A, tetapi perilaku Anda kurang baik") print("Perbaiki lagi ya!")else: print("Yuk belajar lebih giat lagi!")"""Output:Kamu mendapatkan nilai A, tetapi perilaku Anda kurang baikPerbaiki lagi ya!"""Pada contoh di atas, kita membuat program penilaian tugas siswa dengan dua indikator, yaitu nilai dan perilaku. Jika siswa memiliki nilai di atas 80, tetapi tidak berkelakuan baik, program akan memunculkan teks "Kamu mendapatkan nilai A, tetapi perilaku Anda kurang baik". Begitu pun sebaliknya dan kita bisa menambahkan percabangan lain untuk kondisi setelahnya.
Ternary Operators
Ternary operators termasuk conditional expressions pada Python. Conditional expressions adalah bentuk ekspresi
Untuk memahaminya, perhatikan gambar berikut.
Ternary operators dibangun dengan menempatkan "blok kode jika benar" pada posisi awal, lalu diikuti oleh "if statement" serta "kondisi"-nya. Kemudian "else statement" ditempatkan di akhir beserta dengan "blok kode
Mari lihat implementasinya.
Kode program di atas menampilkan pesan teks "selamat" jika kondisi bernilai true dan menampilkan pesan teks "perbaiki" jika kondisi bernilai false. Jika kita transformasikan menjadi bentuk blok, berikut adalah kodenya.
lulus = Trueif lulus: print("Selamat") else: print("Perbaiki")"""Output:selamat"""Kode di atas merupakan program yang sama dengan contoh sebelumnya. Program akan menampilkan pesan teks "selamat" jika kondisi bernilai true dan menampilkan pesan teks "perbaiki" jika kondisi bernilai false. Silakan telaah secara perlahan untuk memahami maksudnya.
Perlu diingat bahwa tujuan dari one-liner bukanlah sekadar untuk memudahkan kode dibaca karena hanya dibuat dalam satu baris, melainkan untuk membuat kode menjadi lebih singkat dan jelas.
Opsi lain dari ternary operators adalah melibatkan tuple.
Perhatikan bahwa pada ternary tuples kita menggunakan indeks ke-0 tuples sebagai kode jika kondisi salah, sedangkan indeks ke-1 sebagai kode jika kondisi benar.
Mari lihat implementasi ternary tuples di bawah ini.
lulus = Truekelulusan = ("Perbaiki, Anda belum lulus.","Selamat, Anda lulus!")[lulus]print(kelulusan)"""Output:Selamat, Anda lulus!"""Kode program di atas menampilkan pesan teks "Selamat, Anda lulus!" jika kondisi bernilai true dan menampilkan pesan teks "Perbaiki, Anda belum lulus." jika kondisi bernilai false. Jika kita ubah menjadi blok kode IF, berikut penerapannya.
lulus = Trueif lulus: print("Selamat, Anda lulus!") else: print("Perbaiki, Anda belum lulus.")"""Output:Selamat, Anda lulus!"""Kode di atas merupakan program yang sama dengan contoh sebelumnya. Program akan menampilkan pesan teks "Selamat, Anda lulus!" jika kondisi bernilai true dan menampilkan pesan teks "Perbaiki, Anda belum lulus." jika kondisi bernilai false.
Perlu diingat oleh Anda, ternary tuples sebaiknya dihindari terutama untuk kode dan klausa true/false yang kompleks. Komunitas Python sendiri menganggap bahwa cara ternary tuples ini kurang "pythonic" atau "tidak Python banget!" karena cukup membingungkan untuk meletakkan kondisi saat True atau False.
Bersambung ke:
Perulangan
Dalam kehidupan sehari-hari, sering kali kita menemui situasi yang harus dilakukan berulang kali. Misalnya dalam skenario berikut.
"Setiap hari Rabu, pasar yang selalu dikunjungi oleh Ibu (pasar yang sama dengan cerita sebelumnya) selalu tidak menyediakan daging ayam. Maka dari itu, Ibu selalu membeli tempe sebagai gantinya. Pada minggu biasa, Ibu hanya akan memotong 3 balok tempe karena jumlah anggota keluarga adalah 3 orang. Namun, pada minggu lain, Ibu kedatangan keluarga besar untuk makan bersama. Kali ini, Ibu tidak mengetahui total keluarga yang datang. Jadi, setelah memotong 1 balok tempe, Ibu akan selalu mengecek bahwa jumlah tersebut cukup atau tidak."
Pada skenario berikut, Ibu kedatangan keluarga besar di rumahnya dan berencana untuk membuat hidangan makanan berupa tempe. Ibu tidak mengetahui jumlah keluarga yang hadir sehingga setiap kali ada keluarganya yang datang, Ibu akan memotong 1 balok tempe untuk disajikan kepada 1 orang.
Perhatikan pada diagram di atas, Ibu akan selalu melakukan aktivitas berulang untuk memotong tempe hingga kondisinya terpenuhi. Kondisi yang dimaksud adalah jumlah keluarga yang hadir sama dengan jumlah tempe yang disajikan.
Dalam pemrograman, kita juga akan sering menemui masalah serupa yang mengharuskan untuk melakukan kode berulang. Contohnya menampilkan angka 1 hingga 10.
print(1)print(2)print(3)print(4)print(5)print(6)print(7)print(8)print(9)print(10)"""Output:1234567Pada kode di atas, program menampilkan angka dari 1 hingga 10 menggunakan sintaks yang berulang. Terlihat tidak efisien, bukan? Itulah yang menjadi tujuan dari materi perulangan ini, Anda akan belajar untuk membuat kode program yang efektif dan mudah dibaca oleh programmer lain.
Dalam Python, ada beberapa sintaks atau statement untuk melakukan perulangan.
For
For termasuk sintaks dalam Python yang bersifat definite iteration. Definite iteration adalah sebuah proses iterasi atau perulangan ketika jumlah pengulangannya ditentukan secara eksplisit sebelumnya.
Format dari perulangan for sebagai berikut.
<iterable> merupakan segala object dalam Python yang dapat diiterasi seperti list, tuple, hingga string. Ada pula <var> merupakan variabel yang akan mengambil elemen berikutnya dari <iterable> setiap kali iterasi berjalan.
Mari lihat penerapannya di bawah ini.
var_list = [1,2,3,4,5,6,7,8,9,10]for i in var_list: print(i)"""Output:12345678910"""Kode di atas merupakan program yang bertujuan untuk menampilkan angka dari 1 hingga 10 berdasarkan variable list yang sudah diinisialisasikan sebelumnya. Perhatikan bahwa program di atas sebenarnya sama dengan program pada contoh sebelumnya. Jika contoh sebelumnya menggunakan sintaks "print()" yang berulang, program di atas menggunakan sintaks atau statement for.
Pada program di atas, kita melakukan perulangan untuk menampilkan angka dari 1 hingga 10 yang sebelumnya telah diinisialisasikan pada variabel "var_list". Setiap iterasi atau perulangan yang berjalan, "i" akan mengambil elemen dari "var_list" satu per satu. Lalu, blok kode "print(i)" akan dijalankan dengan nilai "i" adalah nilai yang sudah diambil sebelumnya.
Anda juga bisa menggunakan tipe data string sebagai object <iterable>, silakan ubah variable "var_list" di atas dengan string apa pun yang Anda inginkan. Hasilnya program akan menampilkan setiap huruf dari string tersebut.
Anda juga dapat melakukan perulangan berdasarkan panjang suatu nilai dengan menggunakan fungsi "range()".
Jika Anda perhatikan lebih baik, program di atas menampilkan angka dari 0 hingga 9 padahal kita menentukannya "10". Mengapa itu terjadi? Pada dasarnya, "range()" adalah fungsi bawaan dalam Python yang akan menghasilkan urutan bilangan dimulai dari indeks ke-0.
Sintaksis umum dari fungsi "range()" sebagai berikut.
Berikut adalah penjelasan detail terkait fungsi "range()".
- "Start" merupakan nilai awal dari urutan bilangan yang bersifat opsional, jika Anda tidak memasukkannya, nilai awal akan dianggap 0.
- "Stop" merupakan nilai batas yang wajib dimasukkan. Urutan akan berhenti sebelum mencapai nilai "stop" (eksklusif).
- "Step" merupakan nilai penambahan antara setiap dua bilangan dalam urutan yang bersifat opsional. Jika nilai tersebut tidak diberikan, secara default nilai yang dimasukkan adalah 1.
Di bawah ini contoh implementasinya.
Pada program di atas, kita menampilkan bilangan ganjil yang dimulai dari 1 hingga 10. Perhatikan bahwa program di atas mendefinisikan nilai "1" sebagai "start", nilai "10" sebagai "stop", dan nilai "2" sebagai "step". Ingat bahwa "stop" bersifat eksklusif, yang artinya nilai terakhirnya tidak akan disertakan.
Dengan begitu, program di atas akan menampilkan kode dari 1 hingga 10 dengan setiap bilangan ke-2 dan kelipatannya akan dilewati atau tidak dicetak.
While
While termasuk sintaks dalam Python yang bersifat indefinite iteration. Indefinite iteration adalah sebuah proses iterasi yang akan berhenti ketika memenuhi kondisi tertentu.
Format dari perulangan while sebagai berikut.
Kondisi merupakan ekspresi yang akan dievaluasi dan menghasilkan nilai true atau false. Selama hasil evaluasi bernilai true, program akan terus berjalan hingga menghasilkan nilai false.
Berikut implementasinya.
counter = 1while counter <= 5: print(counter) counter += 1 # Increment"""Output:12345"""Pada contoh di atas, kita menggunakan perulangan "while" untuk menampilkan angka 1 hingga 5. Variabel "counter" diinisialisasi dengan nilai 1 sebelum perulangan dimulai. Ini artinya perulangan akan dimulai dari 1 berdasarkan nilai variabel tersebut. Perulangan lalu berjalan dengan mengevaluasi variabel "counter" yang memiliki nilai "1". Hasil dari evaluasi tersebut bernilai true sehingga blok kode di dalamnya akan dijalankan.
Perhatikan bahwa kita menggunakan jenis ekspresi uner untuk melakukan increment. Increment adalah pola untuk menambahkan suatu variabel dengan nilai tetap. Dengan hal ini, setiap perulangan bernilai true maka variabel "counter" akan terus ditambah dengan nilai "1". Pada perulangan di atas, nilai variabel "counter" akan bertambah hingga nilainya adalah "5". Ketika nilai variabel "counter" menyentuh "5" maka hasil evaluasi akan bertambah menjadi "6", tetapi angka 6 tersebut tidak memenuhi kondisi "<=5" sehingga kode print() tidak akan dijalankan dan hanya akan memunculkan angka hingga 5.
Namun, Anda harus berhati-hati untuk tidak melakukan infinite loop, yakni sebuah kondisi ketika perulangan tidak berhenti karena tidak memenuhi kondisi yang diinginkan. Contohnya adalah ketika melakukan perulangan, kita tidak memberikan increment yang menyebabkan variabel atau counter tidak akan memenuhi kondisi while.
Pada contoh di atas, kita melakukan perulangan while, tetapi tidak melakukan increment di baris akhir kode. Hal ini menyebabkan program akan terus berjalan dan akhirnya berhenti karena run time exceeded atau waktu berjalan melebihi yang ditentukan.
Jika Anda menjalankan kode di atas pada IDE seperti notebook, program akan terus berjalan dan harus dihentikan dengan menekan CTRL + C.
For Bersarang
Ketika Anda membuat perulangan, sering kali menemukan perulangan dalam perulangan atau disebut sebagai nested loop.
Format dari nested loop sebagai berikut.
Anda dapat asumsikan bahwa ada dua perulangan, yakni "perulangan luar" dan "perulangan dalam". Program akan melakukan "perulangan luar" terlebih dahulu, lalu akan melakukan "perulangan dalam". "variabel_luar" akan mengambil nilai dari "iterable_luar", sedangkan "variabel_dalam" akan mengambil nilai dari "iterable_dalam".
Mari kita lihat implementasi dari for bersarang.
for i in range(1, 3): for j in range(1, 3): print(i,j)"""Output:1,11,22,12,2"""Pada contoh implementasi di atas, kita melakukan perulangan for luar dengan variabel "i" yang mengulang dari 1 hingga 2. Lalu melakukan perulangan "j" yang akan mengulang dari 1 hingga 2 juga.
Output dari sebelah kiri dihasilkan dari perulangan for luar, sedangkan output dari sebelah kanan dihasilkan dari perulangan for dalam. Perhatikan lebih detail bahwa "perulangan luar" atau outer loop akan dilanjutkan jika "perulangan dalam" atau inner loop telah selesai. Semua perulangan tersebut dilakukan hingga kedua perulangan menghasilkan false dan berhenti.
Kontrol Perulangan
Selain membuat perulangan, kita juga dapat mengontrol perulangan dengan menggunakan beberapa pernyataan di antaranya sebagai berikut.
Break
Break statement adalah pernyataan untuk menghentikan perulangan dan kemudian program akan otomatis keluar dari perulangan tersebut, lalu dilanjutkan dengan mengeksekusi blok perulangan selanjutnya. Jika Anda memiliki perulangan yang bertingkat seperti for bersarang, break akan menghentikan perulangan sesuai dengan tingkatan atau letak perulangannya berada.
for i in range(2): # Perulangan tingkat pertama print("Perulangan luar:", i) for j in range(10): # Perulangan tingkat kedua print("Perulangan dalam:", j) if j == 1: break # Menghentikan perulangan dalam jika j = 1"""Output:Perulangan luar: 0Perulangan dalam: 0Perulangan dalam: 1Perulangan luar: 1Perulangan dalam: 0Perulangan dalam: 1"""Pada kode di atas, kita melakukan perulangan untuk menampilkan bilangan 0 hingga 1 pada "perulangan luar" atau for pertama. Lalu, kita membuat perulangan kedua untuk menampilkan bilangan dari 0 hingga 9. Namun, pada perulangan kedua atau "perulangan dalam" tersebut, kita akan melakukan break jika bertemu angka "1". Alhasil, perulangan dalam hanya akan menampilkan angka hingga 1 saja. Program akan berhenti karena ada statement break yang diberikan jika bertemu angka "1".
Contoh lainnya sebagai berikut.
for huruf in 'Dico ding': if huruf == ' ': break print('Huruf saat ini: {}'.format(huruf))"""Output:Huruf saat ini: DHuruf saat ini: iHuruf saat ini: cHuruf saat ini: o"""Pada contoh di atas, program akan berhenti jika bertemu huruf " " (spasi) yang berada pada teks "Dico ding".
Continue
Continue statement adalah pernyataan untuk membuat iterasi berhenti, kemudian melanjutkan ke iterasi berikutnya. Continue seolah mengabaikan pernyataan (statement) yang berada antara continue hingga akhir blok.
for huruf in 'Dico ding': if huruf == ' ': continue print('Huruf saat ini: {}'.format(huruf))"""Output:Huruf saat ini: DHuruf saat ini: iHuruf saat ini: cHuruf saat ini: oHuruf saat ini: d # Perhatikan bahwa harusnya sebelum ini ada spasi, namun dilewati.Huruf saat ini: iHuruf saat ini: nHuruf saat ini: g"""Pada contoh di atas, kita membuat perulangan yang sama dengan contoh sebelumnya. Namun, alih-alih ada spasi maka program akan berhenti, program akan mengabaikan spasi tersebut dan melanjutkannya pada perulangan selanjutnya.
Dalam contoh di atas, program berusaha untuk menampilkan teks "Dico ding" dengan kondisi jika bertemu " " (spasi) akan dilewati dan melakukan perulangan selanjutnya. Alhasil output yang dihasilkan adalah "d", "i", "c", "o", "d", "i", "n", "g" tanpa adanya spasi.
Else setelah For
Pada Python juga dikenal else setelah for yang berfungsi untuk perulangan bersifat pencarian. Else setelah for ini bisa dikatakan sebagai memberikan jalan keluar program saat pencarian tidak ditemukan.
numbers = [1, 2, 3, 4, 5]for num in numbers: if num == 6: print("Angka ditemukan! Program berhenti!") breakelse: print("Angka tidak ditemukan.")"""Output:Angka tidak ditemukan."""Pada contoh di atas, kita membuat program untuk melakukan pencarian terhadap bilangan 6. Jika bilangan 6 tersebut merupakan elemen atau nilai yang berada list, program akan berhenti dan menampilkan teks "Angka ditemukan! Program berhenti!".
Namun, pada contoh di atas angka 6 bukan merupakan elemen dari list maka program akan menampilkan teks "Angka tidak ditemukan". Apa jadinya jika program menemukan angka? Silakan ganti "if num == 6" dengan "if num == 4" atau angka lain yang merupakan nilai yang berada dalam list.
Perlu diperhatikan oleh Anda, if dan else pada contoh tersebut berkaitan walaupun berbeda blok. Pada else setelah for, statement else tidak akan dieksekusi saat if pernah sekali saja benar. Dengan kata lain, break dalam if harus tidak terjadi untuk memicu else setelah for.
Else setelah While
Berbeda dengan else setelah for, pada statement else setelah while, blok statement else akan selalu dieksekusi saat kondisi pada while menjadi salah.
count = 0while count < 3: print("Dicoding Indonesia") count += 1else: print("Blok else dieksekusi karena kondisi pada while salah (3<3 == False).")"""Output:Dicoding IndonesiaDicoding IndonesiaDicoding IndonesiaBlok else dieksekusi karena kondisi pada while salah (3<3 == False)."""Pada contoh di atas, perulangan while akan terus terjadi dan else tidak akan dieksekusi jika kondisi while benar. Kondisi while akan terus benar pada kode di atas ketika variabel "count" bertambah dari 1 hingga 2 dan akan berhenti ketika variabel "count" bernilai 3 karena "3<3" adalah false atau salah.
Di sisi lain, jika menggunakan break akan seperti berikut.
n = 10while n > 0: n = n - 1 if n == 7: break print(n)else: print("Loop selesai")"""Output:98"""Pada contoh di atas, kita mencoba menampilkan angka dari 9 hingga 1. Program akan berhenti ketika angka tersebut adalah 7. Namun, lihat baik-baik bahwa else tidak tercetak di sini. Hal ini disebabkan while tersebut masih bernilai benar walaupun program keluar karena "break".
Pass
Pass statement adalah pernyataan yang digunakan jika Anda menginginkan sebuah pernyataan atau blok pernyataan (statement), tetapi tidak ada tindakan atau program tidak melakukan apa pun.
x = 10if x > 5: passelse: print("Nilai x tidak memenuhi kondisi")"""Output:"""Program di atas tidak menampilkan apa pun karena jika kondisi terpenuhi, program tidak akan melakukan apa pun.
Statement pass digunakan dalam situasi-situasi ketika Python memerlukan adanya pernyataan, tetapi tidak memiliki tindakan yang perlu dilakukan pada saat itu. Biasanya itu adalah kondisi ketika Anda membutuhkan placeholder untuk menunjukkan bahwa tidak ada operasi yang perlu dilakukan. Hal ini dapat membantu kita mengatur struktur kode secara rapi dan memungkinkan penambahan implementasi di kemudian hari.
List Comprehension
Masih terkait perulangan, terkadang ada kalanya Anda perlu membuat sebuah list baru berdasarkan list yang sudah ada.
angka = [1, 2, 3, 4]pangkat = []for n in angka: pangkat.append(n**2)print(pangkat)"""Output:[1, 4, 9, 16]"""Pada contoh di atas, kita mencoba melakukan operasi perpangkatan dari variabel list "angka". Hasil dari operasi tersebut kemudian disimpan pada variabel baru bernama "pangkat". Anda menggunakan fungsi ".append()" untuk menambahkan nilai baru ke dalam variabel "pangkat".
Namun, alih-alih membuat kode program seperti di atas. Anda dapat melakukan hal berikut.
angka = [1, 2, 3, 4]pangkat = [n**2 for n in angka]print(pangkat)"""Output:[1, 4, 9, 16]"""Pada kode di atas, kita melakukan perulangan dengan memasukkan operasi perulangan tersebut ke dalam inisialisasi variabel "pangkat". Hal ini memudahkan kita sehingga tidak perlu menggunakan fungsi ".append()" untuk menambahkan nilai baru.
Konsep ini disebut sebagai list comprehension, sebuah cara untuk menghasilkan list baru berdasarkan list atau iterables yang telah ada sebelumnya. Sintaks dasarnya adalah berikut.
Mari bedah satu per satu struktur tersebut.
- new_list merupakan variabel yang dideklarasikan oleh Anda.
- expression merupakan ekspresi yang akan dijalankan seiring perulangan bernilai benar.
for_loop_one_or_more_conditions merupakan perulangan for yang Anda definisikan. Misalnya "for n in angka" yang ada pada contoh sebelumnya.
Kuis Coding: Perulangan dan Percabangan
Untuk menguji kemampuan praktikal Anda dalam memahami materi perulangan dan percabangan di Python, silakan selesaikan kuis berikut.
Sebelum Anda mengerjakan kuis, ada beberapa hal yang perlu diperhatikan.
Mohon untuk membaca secara saksama perintah, kriteria, atau soal pada komentar kode yang diberi tanda TODO.
Lakukan pengujian kode yang Anda tulis dengan menggunakan “print()” untuk memastikan hasil sesuai dengan yang diharapkan. Lalu klik tombol Jalankan.
Bila sudah yakin dengan pekerjaan yang Anda lakukan, silakan submit kode dengan klik tombol Submit Kode
Batas waktu tunggu untuk mengirimkan kembali perbaikan kode adalah 1 menit. Jadi, pastikan kode yang Anda tulis sudah memenuhi perintah kriteria atau soal pada kuis sebelum klik tombol Submit Kode.
Sistem testing Dicoding akan menguji nilai yang berada dalam variabel sesuai yang diperintahkan. Contohnya jika yang diuji adalah variabel bilanganGanjil, isi variabelnya harus berupa nilai yang diinginkan (bukan sebuah variabel).
Jangan seperti ini.
- #Variabel yang diuji adalah bilanganGanjil
- bilangan = 1,3,5,7,9
- angkaGanjil = angka
Mengalami kendala? Kunjungi Forum Diskusi untuk mencari solusi atau bertanya langsung kepada mentor kami. |
"""TODO:Buatlah sebuah variabel bertipe list bernama "evenNumber" dengan ketentuan:- variabel tersebut menampung bilangan genap dari 0 hingga 500 (ingat 0 dan 500 termasuk).Tips:Anda bisa menggunakan loop dan if atau list comprehension untuk memudahkan."""# TODO: Silakan buat kode Anda di bawah ini.range(0, 501, 2): Memulai dari 0, berhenti sebelum 501, dan melompat 2 angka (0, 2, 4, ..., 500).[i for i in ...] : Memasukkan setiap angka tersebut ke dalam list. Bersambung ke: Penanganan Kesalahan (Error Handling and Exception Handling)
Exception Handling)
- Get link
- X
- Other Apps













Comments
Post a Comment