Modul 2: Perulangan, List, dan String - Algoritma-dan-Pemrograman-ITS/DasarPemrograman GitHub Wiki
Perulangan atau looping digunakan untuk menjalankan suatu blok kode secara berulang kali. Python mendukung dua jenis loop utama, yaitu for
dan while
Perulangan for digunakan untuk mengulang melalui elemen-elemen dari suatu urutan (iterable sequences), seperti list
, tuple
, string
, dictionary
, atau range()
. Perulangan for
memiliki sintaks sebagai berikut
for <val> in <sequence>:
# blok kode yang akan dijalankan
.
.
language = 'Python'
for i in language:
print(i)
- Pada setiap iterasi (putaran perulangan), i merupakan variabel yang digunakan untuk mewakili setiap elemen dari language.
-
in language
berarti Python akan mengambil setiap karakter dari stringlanguage
secara berurutan (dimulai dariP
, laluy
, dan seterusnya sampain
) dan disimpan pada variablei
.
Pada python fungsi range()
digunakan untuk menghasilkan deret angka sesuai dengan pola tertentu (sequence). Sintkas dari range():
range(start, stop, step)
-
start
: (opsional) menentukan angka awal dari deret. Jika tidak diatur, nilai default-nya adalah 0. -
stop
: menentukan angka akhir deret, tetapi tidak termasuk angka tersebut. -
step
: (opsional) Menentukan kenaikan atau langkah antara setiap angka dalam deret. Jika tidak diatur, nilai default-nya adalah 1.
Fungsi range()
biasanya dimanfaatkan oleh loop-for sebagai batasan atau kontrol iterasi. Contoh program:
for i in range(1,4):
print(i)
Output:
1
2
3
Perulangan while
memungkinkan kita menjalankan blok kode berulang kali selama kondisi yang ditentukan masih memenuhi. Sintaks perulangan while
:
# initial value misal, i = 0
while <Ekspresi/Kondisi>:
# blok kode yang akan dijalankan
.
.
.
# increment/decrement misalnya, i+=1
Cara kerja perulangan while
mirip dengan if
. Jika pada if potongan kode akan dieksekusi sekali saja apabila ekspresi/kondisi bernilai TRUE, pada while potongan kode akan terus dieksekusi hingga ekspresi/kondisi menghasilkan FALSE.
Contoh
i = 0
while i < 10:
print(f"Hello World! ke-{i}")
i += 1
Sehingga pada contoh di atas:
- Pada awalnya, variabel
i
bernilai 0. - Sequence selanjutnya adalah
while
, dan i bernilai kurang dari 10 (TRUE), maka kode didalamwhile
akan dijalankan, yakni print Hello world ke-i. - Setelah melakukan print hello world, variabel
i
akan di increment, dan kembali ke statementwhile
untuk memeriksa apakahi
masih kurang dari 10 setelah di-increment - Karena setelah
i
di-increment nilainya masih 1 dan kurang dari 10, makawhile
akan dijalankan lagi hinggai
bernilai 10 yang berarti tidak memenuhi kondisiwhile
.
Percabangan dan perulangan juga dapat dibuat secara bersarang (membuat percabangan/perulangan di dalam percabangan/perulangan), tentu saja menyesuaikan kebutuhan. Contoh berikut adalah perulangan for
bersarang.
for i in range(1, 11): # Perulangan luar (dari 1 sampai 10)
# Statement yang ingin dijalankan pada level terluar
for j in range(1, 11): # Perulangan dalam (dari 1 sampai 10)
# Statement yang ingin dijalankan pada level terdalam
# Percabangan di dalam perulangan
if i == 10:
# Lakukan sesuatu
pass # Ganti dengan tindakan yang diinginkan
# Statement yang ingin dijalankan pada level terluar
Keyword break
dan continue
digunakan untuk mengendalikan (kontrol) alur pada perulangan. Berikut penjelasannya.
Perintah break
digunakan untuk menghentikan perulangan (secara paksa). Apabila perintah break
pada suatu perulangan dijalankan, maka perulangan tersebut akan dihentikan (secara paksa) dari titik dimana perintah break muncul.
Contoh
for i in range(1, 7): # Perulangan dari 1 hingga 6 (range(1, 7))
print(i)
# Jika i adalah 4, maka keluar dari perulangan
if i == 4:
break
Perintah continue
dalam Python digunakan untuk melewati sisa kode dalam iterasi saat ini dari sebuah loop (baik for
atau whil
e) dan langsung melanjutkan ke iterasi berikutnya.
Contoh
for i in range(1, 6):
if i == 4:
continue # Melewati sisa kode dalam iterasi ini jika i adalah 4
print(i)
Infinite loop adalah kasus di mana perulangan tidak akan pernah berhenti. Hal ini terjadi karena perulangan tidak akan pernah menemui kondisi yang membuatnya berhenti. Contoh di bawah akan menghasilkan infinite loop.
i = 0
while i < 10:
print(f"Hello World! ke-{i}")
# perulangan tidak akan berhenti
Pada kasus di atas, perulangan tidak akan berhenti karena kondisi pada while akan selalu benar jika variabel i tidak mengalami perubahan. Oleh karena itu, penting untuk memastikan bahwa variabel dalam kondisi loop diubah (diberi increment atau decrement) agar loop tidak menjadi infinite (tak berujung).
List adalah struktur data dalam Python yang memungkinkan kita untuk mengelompokkan dan menyimpan beberapa item sekaligus. List merupakan salah satu tipe data collection built-in dari python. Berbeda dengan array di beberapa bahasa pemrograman lain, list di Python:
- Dapat menampung berbagai tipe data (tidak harus homogen). Misalnya, dalam satu list bisa terdapat elemen dengan tipe int, string, bahkan objek atau tipe data lainnya.
- Ukuran list dinamis. Kalian dapat menambah atau menghapus elemen dari list, dan ukuran list akan menyesuaikan secara otomatis.
Ada lebih dari satu tipe data collection yang memungkinkan kita untuk mengelompokkan dan menyimpan beberapa item sekaligus(seperti tuples
, set
, dictionary
, etc), namun list memiliki karakter tersendiri. Karakteristik dari list:
- Ordered - List dapat mempertahankan urutan elemen.
- Mutable - Item dapat diubah setelah dibuat.
- Allow duplicates - List dapat berisi nilai yang sama atau duplikat.
Seperti halnya tipe data lain pada python, list dapat di-inisialisasi langsung tanpa perlu deklarasi. Sintaksnya adalah seperti berikut.
identifier_list = [elem1, elem2, elem3, ....]
Contoh:
angka = [1, 2, 3, 4, 5]
Python mengidentifikasi list dengan menggunakan kurung siku []. Selain itu, list di Python tidak memerlukan penentuan ukuran (size) terlebih dahulu karena bersifat dinamis.
Seperti yang sudah dijelaskan pada karakteristik list, list disimpan secara terurut/ordered. Untuk mengakses elemen di dalam list, Python menggunakan zero-based index, yang berarti indeks pertama adalah 0 dan elemen terakhir adalah N-1, di mana N adalah panjang list.
Pengaksesan elemen dalam list dilakukan dengan menuliskan nama list diikuti oleh indeks elemen yang ingin diakses di dalam kurung siku []
.
# Deklarasi list
angka = [10, 20, 30, 40, 50]
# Mengakses elemen pertama (indeks 0)
print(angka[0]) # Output: 10
# Mengakses elemen terakhir
print(angka[-1]) # Output: 50
List bersifat mutable, artinya kita bisa mengubah nilai elemen tertentu setelah list inisialisasi.
Contoh:
angka[2] = 35 # Mengubah nilai elemen indeks 2 menjadi 35
print(angka) # Output: [10, 20, 35, 40, 50]
Slicing adalah cara untuk mengakses sekelompok elemen dalam list. Format slicing menggunakan start:end
, di mana elemen mulai dari indeks start
hingga indeks end-1
.
Nilai default dari start
adalah 0 (indeks awal) sedangkan nilai default dari end
adalah end - 1
(indeks akhir).
Contoh:
angka = [10, 20, 30, 40, 50]
# Mengambil elemen dari indeks 1 hingga 3
print(angka[1:4]) # Output: [20, 30, 40]
# Mengambil elemen dari awal hingga indeks 2
print(angka[:3]) # Output: [10, 20, 30]
# Mengambil elemen dari indeks 2 hingga akhir
print(angka[2:]) # Output: [30, 40, 50]
Selain start
dan end
, slicing juga dapat menggunakan step, yang menentukan seberapa besar langkah untuk mengambil elemen. Nilai default dari step adalah 1.
Contoh:
# Mengambil setiap elemen kedua dari indeks 1 hingga akhir
print(angka[1::2]) # Output: [20, 40]
# Mengambil elemen dari belakang
print(angka[::-1]) # Output: [50, 40, 30, 20, 10]
List satu dimensi di Python adalah list biasa yang hanya berisi elemen-elemen dengan satu tingkat kedalaman. Contoh-contoh pada penjelasan sebelumnya merupakan List satu dimensi.
Karena list Dapat menampung berbagai tipe data, maka list juga dapat menyimpan list(atau tipe data collection lain) didalamnya. Apabila list satu dimensi hanya memiliki sebuah index, list multidimensi memiliki dua atau lebih index untuk mengakses elemen dalam list tersebut. Contoh list dua dimensi (matriks):
# Deklarasi list dua dimensi
matriks = [
[1, 2, 3, 4],
[5, 6, 7, 8],
[9, 10, 11, 12]
]
# Mengubah nilai elemen
matriks[1][2] = 200
# Mengakses elemen
print(matriks[2][3]) # Output: 11
print(matriks[1][2]) # Output: 200
list comprehension merupakan cara penulisan kode dalam satu baris dengan fungsionalitas yang sangat tinggi. List comprehension digunakan untuk membuat list baru dari iterable lain seperti tuple, string, array, list, dan lain-lain. Alih-alih menggunakan loop untuk menambahkan elemen ke list, Anda bisa menggunakan list comprehension untuk mencapainya dalam satu baris kode.
My_list = [<expression> <for loop> <condition if any>]
Contoh penggunaan:
angka = [1, 2, 3, 4, 5]
kuadrat_genap = [x**2 for x in angka if x % 2 == 0]
print(kuadrat_genap) # Output: [4, 16]
Beberapa method yang dapat dimanfaatkan pada list:
Method | Deskripsi |
---|---|
append() |
Menambahkan item ke akhir list |
extend() |
Menambahkan item dari list dan iterable lainnya ke akhir list |
insert() |
Menyisipkan item pada indeks yang ditentukan |
remove() |
Menghapus nilai yang ditentukan dari list |
pop() |
Mengembalikan dan menghapus item pada indeks yang diberikan |
clear() |
Menghapus semua item dari list |
index() |
Mengembalikan indeks dari item yang pertama kali cocok |
count() |
Mengembalikan jumlah dari item yang ditentukan dalam list |
sort() |
Mengurutkan list dalam urutan menaik/mendekik |
reverse() |
Membalikkan urutan item dalam list |
copy() |
Mengembalikan salinan dangkal dari list |
Untuk penggunaan dan informasi lebih detail bisa explorasi di Referensi method pada list.
string adalah kumpulan karakter yang dikelilingi oleh tanda kutip. String dapat ditulis menggunakan tanda kutip tunggal, ganda, atau triple (untuk multi-baris).
- Ordered - String dapat mempertahankan urutan elemen.
- Immutable - Karakter didalam string tidak dapat diubah setelah dibuat.
- Allow duplicates - String dapat berisi nilai yang sama atau duplikat.
Pada String dapat dilakukan pengaksesan menggunakan indeks ataupun menggunakan slicing seperti halnya list. Pengaksesan List
Method | Deskripsi |
---|---|
upper() |
Mengubah string menjadi huruf kapital |
lower() |
Mengubah string menjadi huruf kecil |
partition() |
Mengembalikan tuple yang membagi string berdasarkan separator |
replace() |
Mengganti substring di dalam string |
find() |
Mengembalikan indeks kemunculan pertama substring |
rstrip() |
Menghapus karakter di akhir string |
split() |
Membagi string dari kiri berdasarkan delimiter |
startswith() |
Memeriksa apakah string diawali dengan substring yang ditentukan |
isnumeric() |
Memeriksa apakah string hanya terdiri dari karakter numerik |
index() |
Mengembalikan indeks dari substring (menghasilkan error jika tidak ditemukan) |
Untuk penggunaan dan informasi lebih detail bisa explorasi di Referensi method pada string.
ComingSoon
Buat program yang mencetak kata Ganjil
untuk bilangan ganjil, dan kata Genap
untuk bilangan genap dari sebuah input.
Sample Input
1
Sample Output
Ganjil
Buat program untuk mencetak asterisk, *
, untuk bilangan genap, dan bilangan aslinya untuk bilangan ganjil, dari n buah bilangan mulai 1 s.d n.
Sample Input
6
Sample Output
1 * 3 * 5 *
Buat program untuk mencetak asterisk, *
, untuk bilangan prima, dan angka asli untuk bilangan non-prima dari n buah bilangan mulai 2 s.d n.
Sample Input
10
Sample Output
* * 4 * 6 * 8 9 10
Buatlah program untuk mencetak N buah angka yang diinput secara terbalik. Input baris pertama adalah N yang merupakan banyaknya angka yang akan diinput. Baris berikutnya terdapat N buah angka (dipisahkan spasi).
Sample Input
5
1 4 3 2 9
Sample Output
9
2
3
4
1
Buatlah sebuah program untuk menghitung jumlah huruf vokal yang terdapat pada sebuah string S. Panjang string S tidak melebihi 100 karakter dan terdiri dari huruf lowercase, uppercase dan spasi.
Sample Input
Dasar Pemograman Keren
Sample Output
A/a : 4
I/i : 0
U/u : 0
E/e : 3
O/o : 1
Diberikan sebuah nama variabel dalam bentuk snake_case. Buatlah program untuk mengubah nama variabel tersebut menjadi bentuk camelCase. Nama variabel hanya terdiri dari huruf lowercase, uppercase, dan simbol underscore.
Sample Input 1
skor_pemain
Sample Output 1
skorPemain
Sample Input 2
VariabEl_Satu
Sample Output 2
variabelSatu
- https://github.com/Algoritma-dan-Pemrograman-ITS/DasarPemrograman/wiki/Modul-2:-Perulangan,-Array,-dan-String
- https://www.programiz.com/python-programming/for-loop
- https://revou.co/panduan-teknis/range-python
- https://revou.co/panduan-teknis/python-while-loop
- https://www.programiz.com/python-programming/methods/list
- https://medium.com/@rzahmdf/python-collection-data-types-jenis-dan-karakteristiknya-614daecf7128
- https://www.programiz.com/python-programming/methods/string