74
74
if(a>b):
print("Terbesar:", a)
else:
print("Terbesar:", b)
Terbesar: 12
Hak Memilih
age=eval(input("Berapa usia anda?"))
if(age>=18):
print("Anda punya hak suara.")
else:
print("Anda tidak punya hak suara.")
Berapa usia anda? 45
Anda punya hak suara.
7.3 if-elif-else
Bentuk struktur seleksi kondisi seperti ini disebut pula kondisi berantai atau
seleksi kondisi banyak arah dikarenakan ada beberapa seleksi terhadap kondisi.
Keyword elif merupakan singkatan dari else-if yang digunakan untuk memeriksa
leih dari satu konsisi. Jika kondisi1 bernilaiFalse, maka dilakukan pemeriksaan
terhadap Kondisi2 yang berada diblok elif. Jika semua kondisi bernilai False, maka
bagian dari else yang dieksekusi. Diantara bagian if...elif... else ini, hanya satu
bagian yang dieksekusi sesuai dengan nilai kondisi yang bernilai True. Blok if
hanya
boleh memiliki satu bagian else, tetapi dapat mempunyai banyak blok elif.
Sintaks dari if-elif-else ini adalah
if (kondisi 1):
pernyataan 1
elif (kondisi 2):
pernyataan 2
elif (kondisi 3):
pernyataan 3
else:
pernyataan default
Jika dibuatkan flowchart, if-elif-else terlihat seperti Gambar 7.3.
Husni & Aeri Rachmad | 75
Gambar 7.3 Flowchart Seleksi Kondisi Banyak Arah: if-elif-else
Contoh
Sistem Nilai Mahasiswa
Sistem Traffic Light
Membandingkan dua bilangan
Akar dari persamaan kuadrat
Sistem Nilai Mahasiswa Output
mark=eval(input("Masukkan Nilai:"))
if(mark>=80):
print("Nilai: A")
elif(mark>=70):
print("Nilai: B")
elif(mark>=60):
print("Nilai: C")
elif(mark>=50):
print("Nilai: D")
else:
Masukkan Nilai: 67
Nilai: C
76 | Algoritma Pemograman Pendekatan Praktis Menggunan Python
print("Nilai: E")
Sistem Traffic Light
colour=input("Masukkan warna lampu:")
if(colour=="hijau"):
print("JALAN")
elif(colour=="kuning"):
print("HATI-HATI")
else: print("BERHENTI")
Masukkan warna lampu:
kuning
HATI-HATI
Membandingkan Dua Bilangan
x=eval(input("Masukkan nilai x:"))
y=eval(input("Masukkan nilai y:"))
if(x == y):
print("x dan y sama")
elif(x < y):
print("x lebih kecil daripada y")
else:
print("x lebih besar daripada y")
Masukkan nilai x:7
Masukkan nilai y:12
x lebih kecil daripada y
Akar Persamaan Kuadrat
a=eval(input("enter a value:"))
b=eval(input("enter b value:"))
c=eval(input("enter c value:"))
d=(b*b-4*a*c)
if(d==0):
print("same and real roots")
elif(d>0):
print("different real roots")
else:
print("imaginary roots")
enter a value:1
enter b value:0
enter c value:0
same and real roots
7.4 Kondisi Bersarang
Seleksi terhadap suatu kondisi dapat pula dibuat bersarang di dalam seleksi
kondisi lainnya. Jika suatu syarat kondisi utama terpenuhi maka program perlu
memeriksa syarat kondisi selanjutnya (sub-kondisi), misalnya. Jika kedua kondisi
bernilai True, maka pernyataan yang lebih dalam akan dieksekusi.
Berikut ini adalah sintaks dari seleksi kondisi bersarang:
Husni & Aeri Rachmad | 77
if (kondisi 1):
if (kondisi 2):
pernyataan 1
else:
pernyataan 2
else
if (kondisi 3):
pernyataan 3
else:
pernyataan 4
Contoh flowchart dari if bersarang diperlihatkan pada gambar. Jika kondisi1
bernilai True maka diperiksa apakah Kondisi2 juga bernilai True? Jika kedua
kodisi
ini bernilai True maka Pernyataan1 yang dieksekusi. Jika hanya Kondisi 1 yang
bernilai True daan Kondisi 2 tidak terpenuhi maka Pernyataan2 yang dieksekusi
(lihat Gambar 7.4).
Gambar 7.4 Flowchart Seleksi Kondisi Bersarang
Bagaimana jika Kondisi 1 bernilai False? Flowchart ini memperlihatkan perlunya
memeriksa Kondisi 3. Jika Kondisi 3 bernilai True maka Pernyataan3 yang
dieksekusi. Jika Kondisi3 juga bernilai False maka yang dieksekusi adalah
Pernyataan 4.
Contoh:
Terbesar dari 3 bilangan
Positif Negatif atau Nol
78 | Algoritma Pemograman Pendekatan Praktis Menggunan Python
Terbesar dari 3 Bilangan Output
a=eval(input(‚Masukkan nilai a:‛))
b=eval(input(‚Masukkan nilai b:‛))
c=eval(input(‚Masukkan nilai c:‛))
if(a>b):
if(a>c):
print(‚Angka terbesar adalah‛, a)
else:
print(‚Angka terbesar adalah‛, c)
else:
if(b>c):
print(‚Angka terbesar adalah‛, b)
else:
print(‚Angka terbesar adalah‛, c)
Masukkan nilai a: 12
Masukkan nilai b: 5
Masukkan nilai c: 9
Angka terbesar
adalah 12
Positif Negatif atau Nol
n=eval(input("Masukkan angka n:"))
if(n==0):
print("Angka tersebut nol.")
else:
if(n>0):
print("Angka tersebut positif. ")
else:
print("Angka tersebut negatif.")
Masukkan angka n: -3
Angka tersebut
negatif
Husni & Aeri Rachmad | 79
8. Kendali Perulangan
Python mempunyai pernyataan untuk mengontrol perulangan atau iterasi. Terkait
fitur ini, ada beberapa istilah yang perlu dipahami, yaitu:
State (status)
While
For
Break
Continue
Pass
Status, Kondisi atau Keadaan adalah transisi dari satu proses ke proses lain dalam
kondisi tertentu dengan waktu tertentu.
Ada 2 pendekatan untuk menangani perulangan di Python, yaitu while dan for.
Mari kita diskusikan satu demi satu.
8.1 Perulangan while
Pernyataan perulangan atau loop while digunakan untuk secara berulang
mengekekusi himpunan pernyataan selama suatu kondisi yang diberikan bernilai
True. Di dalam perulangan while, ekspresi uji diperiksa terlebih dahulu. Badan dari
perulangan (loop body) dimasuki hanya jika ekspresi uji bernilai True. Setelah satu
iterasi (satu siklus perulangan). Ekspresi uji Kembali diperiksa. Proses ini berlanjut
terus sampai ekspresi uji bernilai False saat dievaluasi.
Di Python, badan dari perulangan while dibuat dengan cara indentasi, sama
seperti blok pada if-elif-else sebelumnya. Pernyataan-pernyataan di dalam while
dimulai dengan indentasi dan baris pertama yang keluar dari indentasi tersebut
menandakan akhir blok while.
80 | Algoritma Pemograman Pendekatan Praktis Menggunan Python
Gambar 8.1 Bentuk dasar dari perulangan while
Sintaks dasar dari perulangan while adalah
nilai awal
while (kondisi)
badan perulangan while
increment
Sedangkan jika diwujudkan dalam bentuk flowchart diperoleh seperti Gambar 8.1
Gambar 8.1 jelas memperlihatkan bahwa jika Kondisi atau Ekspresi Uji bernilai
True maka badan while loop diproses (dieksekusi) dan kemudian setelah adanya
increment Kembali dilakukan pemeriksaan terhadap Kondisi. Satu kali proses
perulangan disebut satu iterasi.
Contoh program
Program untuk mencari hasil penjumlahan n bilangan
Program untuk mencari factorial dari suatu bilangan
Program untuk mencari hasil penjumlahan digit dari suatu bilangan
Program untuk membalikkan (reverse) bilangan yang diberikan
Program untuk mengetahui apakah suatu angka termasuk bilangan
Amstrong atau tidak
Program untuk memeriksi apakah suatu angka termasuk bilangan
palindrom.
Husni & Aeri Rachmad | 81
Jumlah n Bilangan Output
n=eval(input("Masukkan n:"))
i=1
sum=0
while(i<=n):
sum=sum+i
i=i+1
print(sum)
Masukkan n: 10
55
Faktorial dari suatu Bilangan
n=eval(input("enter n"))
i=1 fact=1
while(i<=n):
fact=fact*i
i=i+1
print(fact)
Masukkan n: 5
120
Penjumlahan Digit dari suatu Bilangan
n=eval(input("Masukkan suatu angka:"))
sum=0
while(n>0):
a=n%10
sum=sum+a
n=n//10
print(sum)
Masukkan suatu Angka:
123
6
Membalik Bilangan
n=eval(input("Masukkan suatu Angka: "))
sum=0
while(n>0):
a=n%10
sum=sum*10+a
n=n//10
print(sum)
Masukkan suatu Angka:
123
321
Cek Bilangan Amstrong
n=eval(input("Masukkan suatu Angka:"))
org=n
Masukkan suatu Angka:
153
82 | Algoritma Pemograman Pendekatan Praktis Menggunan Python
sum=0
while(n>0):
a=n%10
sum=sum+a*a*a
n=n//10
if(sum==org):
print("Angka itu bilangan Armstrong.")
else:
print("Angka itu bukan bilangan
Armstrong.")
Angka itu bilangan
Armstrong.
Palindrom
n=eval(input("Masukkan suatu Angka:"))
org=n
sum=0
while(n>0):
a=n%10
sum=sum*10+a
n=n//10
if(sum==org):
print("Angka itu Palindrom.")
else:
print("Angka itu bukan Palindrom.")
Masukkan suatu Angka:
121
Angka itu Palindrom.
8.2 Perulangan For
Fasilitas perulangan lain yang disediakan oleh Python adalah for. For loop
digunakan untuk membuat jumlah perulangan dengan jumlah pasti, misalnya
sebanyak 100 kali atau sebanyak anggota (elemen) dari suatu list. Karena itu,
pendekatan ini dinamakan count-controlled loop (perulangan dikendalikan
pencacah/counter). Perulangan while disebut condion-controlled loop
(perulangan yang dikontrol oleh suatu kondisi).
for menggunakan range
Kita dapat membangkitkan suatu sequence berisi bilangan atau angka-angka
menggunakan fungsi range(). Pernyataan range (10) akan membangkitkan
bilangan bulat dari 0 s.d 9 (10 bilangan, tetapi 10 tidak termasuk salah satunya).
Sesuai dengan dokumentasi Python, fungsi range mempunyai 3 parameter, yaitu
start, stop dan step. Sehingga jika dituliskan, cara memanggil fungsi range()
menjadi:
Husni & Aeri Rachmad | 83
range(start, stop, step)
start: bilangan integer yang menentukan posisi pertama. Defaultnya
adalah 0.
stop: bilangan integer yang menentukan posisi terakhir, yaitu stop -1
step: bilangan integer yang menentukan besarnya kenaikan. Defaultnya
adalah 1
Range ini mempunyai tiga versi pemanggilan:
range(a)
range(a, b)
range(a, b, k)
Sintaks dasar dari for dengan memanfaatkan fungsi range adalah
for i in range(start, stop, step):
pernyataan-pernytaan di dalam badan loop for
Dan jika dibuatkan flowchart menjadi sebagaimana Gambar 8.2.
Gambar 8.2 Bentuk dasar perulangan for
Fungsi range(a, b) mengembalikan sequence berisi integer a, a+ 1, ..., b-2, dan b-1.
Sebagai contoh:
for v in range(4, 8):
print("v =", v)
Fungsi range(a) sama dengan range(0, a). Sebagai contoh: