Percabangan dan Ternary Operators

 

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.

  1. Jika Anda tidak menyelesaikan kelas Memulai Pemrograman dengan Python, maka Anda tidak lulus dari kelas Memulai Pemrograman dengan Python.
  2. 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."

dos:ae0a04195ca336691887a641cd8695c020230807150858.jpeg

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. 

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".

dos:d1d63ca471bf2534f073d43b88a9495420230807150857.jpeg

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.

dos:021775a9d9c2ed70fec03a41e95a9fa620230807150857.jpeg

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.

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.

  1. Nilai yang sudah didefinisikan bernilai salah: None dan False.
  2. Angka nol dari semua tipe numerik: 0, 0.0, 0j, Decimal(0), Fraction(0,1).
  3. 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.

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.

dos:d5b4283033db242f782db78d61ae722f20230807150857.jpeg

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.

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 ifelif, dan else adalah berikut.

dos:caaf6de4c5dff50afaae5b494fa915fe20230807150857.jpeg

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. 

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.

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.

dos:53b1fb7b0eccf6dc56281cc018082bbc20230807150857.jpeg

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.

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.

dos:4e7af531d2e5f386e7a25a83db5f690d20230807150857.jpeg

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.

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.

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.
dos:fcb6713875f0c8fd0586e7c525f1cb8620230807193204.jpeg

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.

Pada 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 iterationDefinite iteration adalah sebuah proses iterasi atau perulangan ketika jumlah pengulangannya ditentukan secara eksplisit sebelumnya.

Format dari perulangan for sebagai berikut.

dos:6116c4f5084798986ed4a8f30eb2a64820230807193204.jpeg

<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.

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.

dos:b70834cb1e9d407c4bc84dcc381e8a1b20230807193204.jpeg

Berikut adalah penjelasan detail terkait fungsi "range()".

  1. "Start" merupakan nilai awal dari urutan bilangan yang bersifat opsional, jika Anda tidak memasukkannya, nilai awal akan dianggap 0. 
  2. "Stop" merupakan nilai batas yang wajib dimasukkan. Urutan akan berhenti sebelum mencapai nilai "stop" (eksklusif). 
  3. "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 iterationIndefinite iteration adalah sebuah proses iterasi yang akan berhenti ketika memenuhi kondisi tertentu.

Format dari perulangan while sebagai berikut.

dos:6fd43b1ee428540183e0e96f86fa27e220230807193204.jpeg

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.

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 incrementIncrement 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.

dos:fc71ece06d9fbf27e17c04c0e4299e3b20230807193204.jpeg

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.

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.  

dos:dee5b63b18b5dead0363b6fa62c6635920230807193204.jpeg

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.

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.

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.

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.

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

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.

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.

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.

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.

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.

dos:14b4a1285ea8cffc7dd138596628225920230807193204.jpeg

Mari bedah satu per satu struktur tersebut.

  1. new_list merupakan variabel yang dideklarasikan oleh Anda.
  2. 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.

  1. Mohon untuk membaca secara saksama perintah, kriteria, atau soal pada komentar kode yang diberi tanda TODO.

  2. 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.

  1. #Variabel yang diuji adalah bilanganGanjil
  2. bilangan = 1,3,5,7,9
  3. angkaGanjil = angka

Mengalami kendala?

Kunjungi Forum Diskusi untuk mencari solusi atau bertanya langsung kepada mentor kami.


Bersambung ke: Penanganan Kesalahan (Error Handling and Exception Handling)




 Exception Handling)

Comments

Popular posts from this blog

Ceritakan cerita saya:

Aplikasi/Gaming/Koding: NKHM Nusantara: