Anda di halaman 1dari 33

Topik 3 – Kontrol Aliran dan Fungsi

Daftar Isi
1. Seleksi Kondisi ..................................................................................................................................... 2
if .......................................................................................................................................................... 2
if-else................................................................................................................................................... 3
if-elif-else ............................................................................................................................................ 4
Kondisi Bersarang................................................................................................................................ 7
2. Kendali Perulangan ............................................................................................................................. 8
Perulangan while ................................................................................................................................ 9
Perulangan For .................................................................................................................................. 11
for menggunakan range ................................................................................................................ 11
for dalam Sequence ...................................................................................................................... 13
Break, Continue, dan Pass................................................................................................................. 15
else dalam Perulangan for dan while................................................................................................ 18
3. Fungsi ................................................................................................................................................ 18
Parameter Posisi ........................................................................................................................... 20
Parameter Kata Kunci ................................................................................................................... 21
Parameter Default......................................................................................................................... 21
Parameter dengan Panjag Variatif ................................................................................................ 21
4. String ................................................................................................................................................. 24
Slice String ..................................................................................................................................... 25
Immutabilitas ................................................................................................................................ 26
Fungsi dan Metode String Bawaan ............................................................................................... 26
Modul String.................................................................................................................................. 27
Karakter Escape............................................................................................................................. 28
5. List sebagai Larik ............................................................................................................................... 28
Membuat Array ............................................................................................................................. 28
Konversi List ke dalam Array ......................................................................................................... 29
Metode di dalam Array ................................................................................................................. 29
6. Contoh Program Lain ........................................................................................................................ 30
7. Soal Latihan ....................................................................................................................................... 32
Bagian I .............................................................................................................................................. 32
Bagian II ............................................................................................................................................. 33

1
1. Seleksi Kondisi
Python mempunyai beberapa pendekatan dalam mengatur laju program melalui seleksi
kondisi. Pendekatan ini dapat dibagi menjadi:

• Kondisi Satu arah:if


• Kondisi Dua arah: if-else
• Kondisi Banyak Arah: if-elif-else
• Kondisi Bertingkat: if bersarang

if
Seleksi kondisi searah hanya berupa if. Pendekatan ini digunakan untuk menguji suatu kondisi
dimana jika kondisi tersebut bernilaiTrue maka pernyataan di dalam (atau di bawah) blok if
tersebut akan dieksekusi.

Sintaks dari bentuk if paling sederhana ini adalah

if (kondisi):
pernyataan

Jika digambarkan dalam bentuk flowchart diperoleh:

Contoh:

1. Program untuk memberikan potongan 5000 rupiah jika jumlah total pembelian lebih
dari 90000 rupiah
2. Program untuk memberikan potongan 10% harga tiket untuk mahasiswa.

Program Potongan 5000 Output


pembelian=eval(input(“Masukkan total Masukkan total pembelian (Rp.):
pembelian (Rp.):”)) 100000

if(pembelian >= 90000):

2
pembelian = pembelian -5000
print(“Total pembelian:”, pembelian) Total pembelian: 95000

Program Dison 5% jika Mahasiswa


hargatiket = eval(input(“Berapa harga Berapa harga tiket?” 150000
tiket?”)) Kategori penumpang (U/M)? M
kategori= input(“Kategori Penumpang
(U/M)?”)
Harga Tiket: 142500
if(kategori == ‘M’):
hargatiket -= (hargatiket * 0.05)
print(“Harga Tiket:”, hargatiket)

if-else
Bentuk if-else dapat dikatakan sebagai alternatif dari if sederhana. Pernyataan if dipadukan
dengan else. Secara mudah kita dapat membacanya “jika kondisi ini bernilai True maka
kerjakan blok if, jika tidak (jika kondisi bernilai False) maka kerjakan blok else. Jadia ada dua
kemungkinan hasil, True atau False, sehingga ada dua kemungkinan arah eksekusi. Karena
itulah bentuk if-else ini dinamakan kondisi dua arah.

Sintaks dari if-else di Python adalah

if (kondisi):
pernyataan 1
else:
pernyataan 2

Jika diwujudkan dalam bentuk flowcharat diperoleh gambar berikut:

Contoh:

• Memeriksa ganjil atau genapnya suatu bilangan


• Memeriksa apakah suatu bilangan bernilai positif atau negatif
• Memastikan apakah suatu tahun termasuk tahun kabisat atau bukan.
• Mencari bilangan terbesar di antara dua bilangan
• Hak memilih

3
Bilangan Genap atau Ganjil? Output
n=eval(input("Masukkan bilangan:")) Masukkan bilangan: 8

if(n%2==0): Bilangan Genap.


print("Bilangan Genap.")
else:
print("Bilangan Ganjil.")

Bilangan Positif atau Negatif?


n=eval(input("Masukkan angka:")) Masukkan angka: -5

if(n>=0): Bilangan negatif.


print("Bilangan positif.")
else:
print("Bilangan negative.")

Tahun Kabisat
y=eval(input("Masukkan Tahun:")) Masukkan Tahun: 2010

if(y%4==0): Bukan Tahun Kabisat.


print("Tahun Kabisat.")
else:
print("Bukan Tahun Kabisat.")

Bilangan Terbesar
a=eval(input("Masukkan angka a:")) Masukkan angka a: 10
b=eval(input("Masukkan angka b:")) Masukkan angka b: 12
Terbesar: 12
if(a>b):
print("Terbesar:", a)
else:
print("Terbesar:", b)

Hak Memilih
age=eval(input("Berapa usia anda?")) Berapa usia anda? 45
Anda punya hak suara.
if(age>=18):
print("Anda punya hak suara.")
else:
print("Anda tidak punya hak suara.")

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.

4
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 berikut

Contoh

• Sistem Nilai Mahasiswa


• Sistem Traffic Light
• Membandingkan dua bilangan
• Akar dari persamaan kuadrat

5
Sistem Nilai Mahasiswa Output
mark=eval(input("Masukkan Nilai:")) Masukkan Nilai: 67
Nilai: C
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:
print("Nilai: E")

Sistem Traffic Light


colour=input("Masukkan warna lampu:") Masukkan warna lampu: kuning

if(colour=="hijau"):
print("JALAN") HATI-HATI
elif(colour=="kuning"):
print("HATI-HATI")
else: print("BERHENTI")

Membandingkan Dua Bilangan


x=eval(input("Masukkan nilai x:")) Masukkan nilai x:7
y=eval(input("Masukkan nilai y:")) Masukkan nilai y:12

if(x == y): x lebih kecil daripada y


print("x dan y sama")
elif(x < y):
print("x lebih kecil daripada y")
else:
print("x lebih besar daripada y")

Akar Persamaan Kuadrat


a=eval(input("enter a value:")) enter a value:1
b=eval(input("enter b value:")) enter b value:0
c=eval(input("enter c value:")) enter c value:0
same and real roots
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")

6
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:

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.

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

7
Terbesar dari 3 Bilangan Output
a=eval(input(“Masukkan nilai a:”)) Masukkan nilai a: 12
b=eval(input(“Masukkan nilai b:”)) Masukkan nilai b: 5
c=eval(input(“Masukkan nilai c:”)) Masukkan nilai c: 9

if(a>b): Angka terbesar adalah 12


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)

Positif Negatif atau Nol


n=eval(input("Masukkan angka n:")) Masukkan angka n: -3

if(n==0): Angka tersebut negatif


print("Angka tersebut nol.")
else:
if(n>0):
print("Angka tersebut positif. ")
else:
print("Angka tersebut negatif.")

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

Sintaks dasar dari perulangan while adalah

nilai awal
while (kondisi)
badan perulangan while
increment

Sedangkan jika diwujudkan dalam bentuk flowchart diperoleh

Gambar ini 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

9
• Program untuk mengetahui apakah suatu angka termasuk bilangan Amstrong atau
tidak
• Program untuk memeriksi apakah suatu angka termasuk bilangan palindrom.

Jumlah n Bilangan Output


n=eval(input("Masukkan n:")) Masukkan n: 10

i=1 55
sum=0
while(i<=n):
sum=sum+i
i=i+1

print(sum)

Faktorial dari suatu Bilangan


n=eval(input("enter n")) Masukkan n: 5

i=1 fact=1 120

while(i<=n):
fact=fact*i
i=i+1

print(fact)

Penjumlahan Digit dari suatu Bilangan


n=eval(input("Masukkan suatu angka:")) Masukkan suatu Angka: 123

sum=0 6
while(n>0):
a=n%10
sum=sum+a
n=n//10

print(sum)

Membalik Bilangan
n=eval(input("Masukkan suatu Angka: ")) Masukkan suatu Angka: 123

sum=0 321
while(n>0):
a=n%10
sum=sum*10+a
n=n//10

print(sum)

10
Cek Bilangan Amstrong
n=eval(input("Masukkan suatu Angka:")) Masukkan suatu Angka: 153

org=n Angka itu bilangan


sum=0 Armstrong.

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

Palindrom
n=eval(input("Masukkan suatu Angka:")) Masukkan suatu Angka: 121

org=n Angka itu Palindrom.


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

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:

range(start, stop, step)

11
• 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 sebagai berikut

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:

for v in range(6):
print("v =", v)

Bagaimana dengan range(a, b, k)? k digunakan sebagai nilai Langkah (step) dalam range(a, b,
k). Bilangan pertama dalam sequence ini adalah a. Setiap bilangan berikutnya dalam sequence
akan naik sebesar nilai step k. b adalah limit (batas akhir). Bilangan terakhir dalam sequence
ini harus kurang dari pada b. Kita harus memastikan bahwa a, b, dan k adalah bilangan bulat
atau integer.

12
Contoh:

Nilai Langkah (step) dalam range(3, 9, 2) adalah 2, dan limit adalah 9. Sehingga sequence ini
beranggotakan 3, 5, dan 7

for v in range(3, 9, 2):


print("v =", v)

Python juga memungkinkan kita membuat range nilai secara mundur, dari bilangan lebih
besar ke lebih kecil. Fungsi range(a, b, k) dapat melakukan hitungan mundur jika k bernilai
negatif. Dalam hal ini, sequence masih a, a + k, a + 2k, dan seterusnya untuk suatu k negatif.
Bilangan terakhir dalam sequence harus lebih besar daripada b.

Contoh:

for v in range(5, 1, -1):


print("v =", v)

for dalam Sequence


Perulangan for di dalam Python pada dasarnya digunakan untuk membuat iterasi berdasarkan
suatu sequence (list, tuple, string). Iterasi yang dilakukan dengan memanfaatkan sequence ini
dinamakan traversal. Loop berjalan terus sampai dicapai elemen atau item terakhir di dalam
sequence tersebut. Seperti pada while dan for yang menggunakan fungsi range(), badan dari
perulangan (loop body) kali ini juga harus berada di bawah baris for dan ditulis masuk ke kanan
(indentasi).

for i in sequence:
print(i)

Tabel di bawah ini memperlihatkan bagaimana sequence digunakan di dalam for.

No. Sequence Contoh Output


1. Perulangan for menjelajahi string for i in “ALPRO”: A
print(i) L
P
R
O
2. Perulangan for menjelajahi list for i in [2,3,4,6,9]: 2
print(i) 3
4
6
9
3. Perulangan for menjelajahi tuple for i in (2 ,6, 4): 2
print(i) 6
4

13
Contoh:

• Mencetak bilangan yang habis dibagi 5 tetapi tidak habis dibagi 10


• Program untuk mencetak deret Fibonacci
• Program untuk mencari factor dari suatu bilangan
• Memeriksa bilangan tertentu apakah angka sempurna atau tidak
• Memeriksa apakah suatu bilangan prima atau bukan
• Mencetak n pertama dari bilangan prima
• Program untuk mencetak bilangan prima di dalam suatu rentang

Mencetak Bilangan yang Habis dibagi 5 tidak habis dibagi 10 Output


n=eval(input("Masukkan angka:")) Masukkan angka:
for i in range(1,n,1): 30
if(i%5==0 and i%10!=0): 5
print(i) 15
25

Deret Fibonaci
a=0 Masukkan Angka:
b=1 6
n=eval(input("Masukkan Angka: ")) Deret
print("Deret Fibonacci: ") Fibonacci:
print(a,b) 0
1
for i in range(1,n,1): 1
c=a+b 2
print(c) 3
a=b 5
b=c 8

Menemukan Faktor Suatu Bilangan


n=eval(input("Masukkan Angka:")) Masukkan
for i in range(1,n+1,1): Angka:10
if(n%i==0): 1
print(i) 2
5
10

Cek Bilangan Prima


n=eval(input("enter a number")) enter a no:7
The num is a
for i in range(2,n): prime number.
if(n%i==0):
print("The num is not a prime")
break
else:
print("The num is a prime number.")

Cek Bilangan Sempurna


n=eval(input("enter a number:")) enter a
number:6 the

14
sum=0 number is
for i in range(1,n,1): perfect number
if(n%i==0):
sum=sum+i

if(sum==n):
print("the number is perfect number")
else:
print("the number is not perfect number")

Cetak n Bilangan Prima


number=int(input("enter no of prime numbers to be enter no of
displayed:")) prime numbers
count=1 to be
n=2 displayed:5
while(count<=number): 2
for i in range(2,n): 3
if(n%i==0): 5
break 7
else: 11
print(n)
count=count+1
n=n+1

Cetak Bilangan Prima dalam Rentang


lower=eval(input("enter a lower range")) enter a lower
upper=eval(input("enter a upper range")) range50
enter a upper
for n in range(lower,upper + 1): range100
if n > 1: 53
for i in range(2,n): 59
if (n % i) == 0: 61
break 67
else: 71
print(n) 73
79
83
89
97

Break, Continue, dan Pass


Pernyataan break dapat digunakan untuk mengubah aliran di dalam suatu loop. Break akan
menghentikan iterasi loop yang sedang berjalan dan mengeksekusi pernyataan berikutnya
diluar loop. Jika loop tersebut mempunyai pernyataan else maka itu akan juga berhenti dan
keluar dari loop secara lengkap.

Sintaks pengguna break adalah sebagai berikut

15
Dan jika diwujudkan dalam flowchart menjadi:

Contoh Output
for i in "welcome": w
if(i=="c"): e
break l
print(i)

Berbeda dengan break, pernyataan continue menghentikan iterasi yang sedang berlangsung
dan mentransfer kendali atau control ke iterasi berikutnya di dalam loop tersebut. Jadi tidak
sampai keluar dari loop.

Sintaks continue:

16
Sedangkan bentuk flowchartnya adalah

Contoh Output
for i in "welcome": w
if(i=="c"): e
continue l
print(i) o
m
e

Pernyataan terakhir yang sering digunakan di dalam perulangan adalah pass. Pass digunakan
ketika suatu pernyataan diperlukan secara sintaktis tetapi kita tidak ingin kode tersebut
dieksekusi. Ini dinamakan pernyataan null, tidak ada yang terjadi Ketika dieksekusi.
Perhatikan contoh berikut:

Contoh Output
for i in "welcome": w
if(i=="c"): e
pass l
print(i) c
o
m
e

Perbedaan antara break dan continue:

break continue
Mengakhiri iterasi yang sedang berlangsung Mengakhiri iterasi saat ini dan mentransfer
dan mengeksekusi pernyataan yang berada kontrol ke iterasi berikutnya di dalam loop.
di luar loop.

17
for i in "welcome": for i in "welcome":
if(i=="c"): if(i=="c"):
break continue
print(i) print(i)

w w
e e
l l
o
m
e

else dalam Perulangan for dan while

Jika pernyataan else digunakan di dalam loop for, maka pernyataan else akan dieksekusi
ketika loop telah mencapai limit (nilai counter terakhir). Pernyataan di dalam loop for dan
pernyataan di dalam else akan juga dieksekusi.

Contoh Output
for i in range(1,6): 1
print(i) 2
else: 3
print("the number greater than 6") 4
5
the number greater than 6

Jika pernyataan else digunakan di dalam loop while, bagian else akan dieksekusi Ketika
konsdisi menjadi False. Pernyataan di dalam loop while dan pernyataan di dalam else juga
akan dieksekusi.

Contoh Output
i=1 1
while(i<=5): 2
print(i) 3
i=i+1 4
else: 5
print("the number greater than 5") the number greater than 5

3. Fungsi
Dalam Python, fungsi adalah sekelompok pernyataan terkait yang melakukan tugas tertentu.
Fungsi membantu kita memecah program menjadi potongan yang lebih kecil dan modular.
Seiring program kita tumbuh lebih besar dan semakin besar, fungsi membuatnya lebih
terorganisir dan dapat dikelola. Selain itu, fungsi menghindari pengulangan dan membuat
kode dapat digunakan kembali.

Ada beberapa hal atau istilah yang harus dipahami dan dibahas di dalam bagian ini, di
antaranya:

18
• Fungsi fruitful
• Fungsi void
• Nilai return
• Parameter
• Lingkup local dan global
• Komposisi fungsi
• Rekursi.

Suatu fungsi yang mengembalikan nilai disebut fungsi fruitful.

Contoh

root = sqrt(25)

sqrt adalah fungsi bawaan Python yang digunakan untuk mendapatkan akar dari suatu
bilangan, dalam hal ini adalah akar 25 = 5.

Bagaimana jika kita ingin membuat fungsi sendiri? Kita dapat menggunakan sintaks berikut
untuk membuat fungsi:

def function_name(parameters):
"""docstring"""
statement(s)

Sintaks di atas adalah definisi fungsi yang terdiri dari komponen berikut:

1. Kata kunci def menandakan awal dari header fungsi.


2. Nama fungsi secara unik mengidentifikasi fungsi tersebut. Penamaan fungsi
mengikuti rule yang sama dengan penulisan pengenal (identifier) di Python
3. Parameter atau argumen digunakan untuk melewatkan nilai ke fungsi. Paremeter ini
bersifat opsional.
4. Titik dua atau colon (:) menandakan akhir dari header fungsi.
5. String dokumentasi opsional (docstring) untuk mendeskripsikan apa yang dilakukan
di dalam fungsi.
6. Satu atau lebih pernyataan Python yang valid membangun badan fungsi. Pernyataan
ini mempunyai level indentasi yang sama (biasanya 4 spasi).
7. Pernyataan return (opsional) mengembalikan nilai dari fungsi tersebut.

Contoh

def add():
a=10
b=20
c=a+b
return c
c=add()
print(c)

19
Selain fungsi fruitful, ada pula fungsi void. Void menunjukkan bahwa fungsi tersebut tidak
mengembalikan suatu nilai. Contoh dari fungsi void adalah print yang hanya mencetak teks
ke console dan tidak ada nilai yang dikembalikan.

Contoh

def add():
a=10
b=20
c=a+b
print(c)
add()

Keyword return digunakan untuk mengembalikan nilai dari dalam fungsi. Contoh penggunaan
return di dalam fungsi adalah

• return a mengembalikan nilai variabel a


• return a, b mengembalikan nilai dari 2 variabel a dan b
• return a, b, c mengembalikan nilai dari 3 variabel a, b dan c
• return a + b mengembalikan suatu nilai, nilai a di tambah nilai b
• return 8 mengembalikan nilai 8

Parameter adalah variable yang digunakan di dalam definisi fungsi. Parameter merupakan
input untuk fungsi tersebut. Parameter menerima input dari pemanggilan fungsi (function
call). Kita dapat mendefinisikan lebih dari dsatu parameter di dalam definisi fungsi. Istilah
argumen biasanya digunakan saat memanggil fungsi.

Parameter terdiri dari beberapa tipe, di antaranya:

• Parameter posisi atau wajib


• Parameter keyword (kata kunci)
• Parameteer default
• Parameter Panjang tidak tetap (bervariasi)

Parameter Posisi
Jumlah dari parameter di dalam definisi fungsi harus cocok secara tepat dengan jumlah
argument di dalam function call. Perhatikan contoh di bawah ini

Contoh Output
def student( name, roll ): George 98
print(name,roll)

student(“George”, 98)

20
Parameter Kata Kunci
Ketika kita memanggil suatu fungsi dengan beberapa nilai, nilai-nilai ini dikirimkan ke
parameter sesuai dengan posisinya. Saat kita memanggil fungsi dalam parameter kata kunci,
urutan dari argumen dapat diubah (tidak kaku dan tergantung pada posisi atau urutan
parameter).

Contoh Output
def student(name, roll, mark): 90 102 bala
print(name,roll,mark)
student(90,102,"bala")

Parameter Default
Python memungkinkan parameter fungsi mempunyai nilai default; jika fungsi dipanggil tanpa
argument, parameter memperoleh nilai defaultnya yang dicantumkan di dalam definisi
fungsi.

Contoh Output
def student(name, age=17): Joko 17
print (name, age) Budiman 17

student(“Joko”)
student(“Budiman”)

Parameter dengan Panjag Variatif


Terkadang, kita tidak mengetahui sebelumnya jumlah argumen yang akan dilewatkan ke
dalam suatu fungsi. Python memungkinkan kita untuk menangani situasi seperti ini melalui
pemanggilan fungsi dengan sejumlah argumen. Dalam definisi fungsi kita menggunakan tanda
asterisk (*) sebelum nama parameter untuk menunjukkan ini adalah parameter dengan
panjang variatif.

Contoh Output
def student(name,*mark): bala (102 ,90)
print(name, mark)
student(“bala”,102,90)

Cakupan Local dan Global

• Cakupan dari suatu variabel mengacu pada tempat dimana kita dapat melihat atau
mengakses variabel.
• Suatu variabel dengan cakupan global dapat diakses dan digunakan di mana saja
dalam program.
• Ini dapat dibuat dengan mendefinisikan variabel di luar fungsi.

21
Contoh Output
a=50 #variabel global 70

def add():
b=20 #variabel lokal
c=a +b
print(c) 20

def sub(): 50
b=30
c=a-b
print(c)

print(a)

Suatu variabel dengan cakupan local dapat digunakan atau diakses hanya didalam fungsi
tersebut.

Contoh Output
def add():
b=20 #variabel lokal
c=a+b
print(c) 70

def sub():
b=30 #variabel lokal
c=a-b
print(c) 20

print(a) error
print(b) error

Komposisi Fungsi adalah kemampuan untuk memanggil satu fungsi dari dalam fungsi lainnya.
Ini merupakan cara untuk menngkombinasikan fungsi-fungsi sehingga hasil dari setiap fungsi
dilewatkan (pass) sebagai argument dari fungsi berikutnya. Dengan kata lain, output dari satu
fungsi diberikan sebagai input dari fungsi lain dikenals ebagai komposisi fungsi.

Contoh Output
def add(a,b):
c = a + b
return c
900
def mul(c,d):
e = c * d
return e

c=add(10,20)
e=mul(c,30)

print(e)

22
Mencari Jumlah dan Rerata menggunakan Output
Komposisi Fungsi
def sum(a,b):
sum=a+b enter a:4
return sum enter b:8
the avg is 6.0
def avg(sum):
avg=sum/2
return avg

a=eval(input("enter a:"))
b=eval(input("enter b:"))
sum=sum(a,b)
avg=avg(sum)

print("the avg is", avg)

Suatu fungsi yang memanggil dirinya sendiri sampai dicapai suatu nilai basis (dasar, titik henti
dari function call) dinamakan sebagai fungsi rekursif.

Contoh: faktorial dari suatu bilangan menggunakan pendekatan rekursif.

Faktorial dari n Output


def fact(n):
if(n==1): Masukkan bilangan: 5
return 1 Faktorial: 120
else:
return n*fact(n-1)

n=eval(input("Masukkan bilangan:"))
fact=fact(n)
print("Faktorial:",fact)

Penjelasan:

23
Contoh program lain:

• Jumlah n bilangan menggunakan rekursi


• Eksponensial dari suatu bilangan menggunakan rekursi.

Jumlah dari n Bilangan Output


def sum(n):
if(n==1): Masukkan bilangan: 10
return 1 Jumlah: 55
else:
return n*sum(n-1)

n=eval(input("Masukkan bilangan: "))


sum=sum(n)
print("Jumlah: ", sum)

4. String
String merupakan tipe data di Python yang dapat dianggap sebagai teks. Beberapa istilah yang
perlu dipahami adalah

• String
• Slices
• Immutability
• Fungsi dan Metode String
• Modul String

String didefinisikan sebagai sequence atau deretan karakter yang direpresentasikan di dalam
tanda petik (quotation), baik single quote (‘) ataupun double quote (“). Karakter-karakter atau
huruf di dalam suatu String diakses menggunakan indeksnya. Indeks harus selalu berupa
integer (positif atau negatif). Indeks dimulai dari 0 s.d n-1. String adalah tipe data yang
bersifat immutable, artinya isi dari suatu string tidak dapat diubah setelah string tersebut
dibuat.

Python mengambil masukan dari pengguna menggunakan fungsi input yang biasanya
disimpan ke dalam suatu variabel. Python menganggap apapun yang dimasukkan oleh
pengguna sebagai String, karena itu diperlukan proses konversi ke numerik agar dapat
diberlakukan operasi numerik atau komputasi. Fungsi yang sering dipakai untuk konversi ini
adalah eval, int dan float.

Python tidak menyediakan tipe data khusus untuk karakter. Suatu String yang berukuran
panjang satu diperlakukan sebagai karakter.

Terkait quote di atas, sebetulnya ada tiga jenis quote di Python:

• Single quote (‘ ‘) untuk membuat String yang diapit satu tanda petik

24
• Double quotes (“ “) untuk membuat String yang diapit dua tanpa petik
• Triple quotes (“”” “””) untuk membuat teks banyak baris.

Operasi Terhadap String

• Indexing
• Slicing
• Concatenation
• Repetition
• Membership

Katakanlah kita mempunya String “HELLO”. Indexing yang digunakan sebagai basis untuk
mengakses elemen atau item dari suatu String diperlihatkan pada gambar di bawah ini.

String A H E L L O
Indeks Positif 0 1 2 3 4
Indeks Negatif -5 -4 -3 -2 -1

Berikut ini adalah contoh 5 operasi String yang disebutkan di atas:

Operasi Contoh Penjelasan


a = “HELLO” Indexing positif untuk mengakses string dari awal
Indexing print(a[0]) Subscript negatif untuk mengakses string dari ujung.
print(a[-1])
print[0:4] Operator slice [start:stop] mengekstrak sub string
Slicing print[:3] dari string. Suatu segmen dari string dinamakan slice
print[0:]
a = “save” Operator + menggabungkan (join) teks pada kedua
Concatenation b = “earth” sisi operator
print(a+b)
a=”panimalar” Operator * mengulangi string pada sisi kiri sebanyak
Repetition print(3*a) nilai pada sisi kanan
s=”good Operator keanggotaan digunakan untuk memeriksa
morning” keberadaan karakter tertentu (ada atau tidak) di
Membership “m” in s dalam suatu string. Mengembalikan True jika ada.
“a” not in s

Slice String

Bagian tertentu dari suatu string disebut substring atau slice. Proses mengekstrak sub string
tertentu tersebut dari suatu string dinamakan slicing.

Operasi Contoh Penjelasan


Slicing print[0:4] Operator slice [n:m] mengambil slice dari string.
A=”HELLO” print[:3]
print[0:]

25
Immutabilitas
String di Python bersifat “immutable” (tidak dapat bermutasi, tidak dapat berubah) karane
string yang telah dibuat tidak dapat diubah nilainya. Karena itu, operator [] tidak dapat
digunakan pada sisi kiri dari suatu operasi assignment (pemberian nilai).

Operasi Contoh Output


Assignment a = “python” TypeError: 'str' object does not support element
Elemen a[0] = x assignment

Menghapus a=”python” TypeError: 'str' object doesn't support element


Elemen del a[0] deletion
Menghapus a=”python” NameError: name 'my_string' is not defined
String del a
print(a)

Fungsi dan Metode String Bawaan


Metode adalah suatu fungsi yang dimiliki oleh suatu obyek.

Sintaks untuk mengakses metode:

namaString.namaMetode()

a=”happy birthday”

Di sini, a adalah suatu nama variabel bertipe data String.

No. Sintaks Contoh Deskripsi


1. a.capitalize() >>> a.capitalize() Mengubah huruf pertama dari suatu
'Happy birthday’
String menjadi huruf besar
2. a.upper() >>> a.upper() Mengubah String menjadi huruf besar
'HAPPY BIRTHDAY’
(untuk semua hurufnya)
3. a.lower() >>> a.lower() Mengubah String menjadi huruf kecil
' happy birthday’
4. a.title() >>> a.title() Mengubah String ke bentuk judul,
' Happy Birthday '
yaitu huruf pertama semua kata
dijadikan besar
5. a.swapcase() >>> a.swapcase() Mengubah huruf kecil ke huruf besar
'HAPPY BIRTHDAY'
dan sebaliknya.
6. a.split() >>> a.split() Mengembalikan daftar kata yang
['happy', 'birthday']
dipisahkan spasi
7. a.center >>>a.center(19,”*”) Mengapitkan string dengan "fillchar"
(width,”fillchar”) '***happy birthday***'
yang ditentukan hingga panjangnya
sama dengan "width"
8. a.count(substring) >>> a.count('happy') Mengembalikan jumlah kemunculan
1
suatu substring

26
9. a.replace(old,new) >>>a.replace('happy', Menggantikan semua substring lama
'wishyou happy')
dengan substring baru
'wishyou happy birthday'

10. a.join(b) >>> b="happy" Mengembalikan suatu string gabungan


>>> a="-"
dengan elemen-elemen berupa
>>> a.join(b) 'h-a-p-p-y'
iterable. “a” bersifat iterable.
11. a.isupper() >>> a.isupper() Memeriksa apakah semua karakter
False
(huruf) dari string adalah besar
12. >>> a.islower() Memeriksa apakah semua huruf dari
a.islower() True
String adalah huruf kecil
13. a.isalpha() >>> a.isalpha() Memeriksa apakah suatu String
False
mengandung hanya karakter
alfanumerik
14. a.isalnum() >>> a.isalnum() Memeriksa apakah suatu String
False
mengandung karakter alfanumerik
15. a.isdigit() >>> a.isdigit() Memeriksa apakah suatu String
False
mengandung hanya digit.
16. a.isspace() >>> a.isspace() Memeriksa apakah string mengandung
False
hanya whitespace
17. a.istitle() >>> a.istitle() Memeriksa apakah String telah
False
menggunakan format Judul
18. a.startswith >>> a.startswith("h") Memeriksa apakah string dimulai
(substring) True
dengan substring
19. a.endswith >>> a.endswith("y") Memeriksa apakah string berakhir
(substring) True
dengan substring
20. a.find >>> a.find("happy") Mengembalikan indeks dari substring,
(substring) 0
jika ditemukan. Jika tidak -1
21. Len(a) >>>len(a) >>>14 Mengembalikan panjang dari string

22. Min(a) min(“I hate u”) Mengembalikan karakter minimum


‘ ‘
dalam string
23. Max(a) Max(a) Mengembalikan karakter maksimum
‘y’
dalam string

Modul String
Modul merupakan suatu file yang mengandung definisi, fungsi dan pernyataan dalam Bahasa
Python. Pustaka standar dari Python dapat diperluas (diextend) menggunakan modul. Isi dari
modul dapat digunakan di dalam program setelah modul tersebut diimpor terlebih dahulu.
Fungsi, variabel dan konstanta dapat diakses dengan menyebutkan nama modul atau
aliasnya. Python secara default telah menyediakan banyak modul seperti math, random, dan
string. Cara mengimport modul standar dalam persis dengan cara mengimport modul yang
dibuat oleh pengguna (user-defined).

27
Sintaks dasar dari import modul:

import nama_modul atau


import nama_modul as nama_alias

Contoh Output
import string
print(string.punctuation) !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~
print(string.digits) 0123456789
print(string.printable) 0123456789abcdefghijklmnopqrstuvwxyzABCDEFG
print(string.capwords("happy HIJKLMNOPQRSTUVWXYZ!"#$%&'()*+,-
birthday")) ./:;<=>?@[\]^_`{|}~
print(string.hexdigits) Happy Birthday
print(string.octdigits) 0123456789abcdefABCDEF
01234567

Karakter Escape

Escape Deskripsi Contoh


>>> print("hai \nhello")
\n Baris baru hai
hello
>>> print("hai\\hello")
\\ Cetak backslash (\) hai\hello
>>> print("'")
\’ Cetak single quote (‘) '
>>>print("\"")
\” Cetak double quote (“) "
>>>print(“hai\thello”)
\t Cetak spasi tab hai hello
\a Kode ASCI >>>print(“\a”)

5. List sebagai Larik


Array atau larik merupakan suatu koleksi elemen-elemen serupa (bertipe data sama). Elemen
di dalam array dapat diakses berdasarkan indeksnya. Indeks dimulai dengan 0. Array dapat
ditangani di dalam Python berkat adanya module bernama array. Bagaimana membuat suatu
array?

Membuat Array
Import Pustaka array:

import array as larik

Kemudian membuat array:

28
nama_array = nama_modul.nama_fungsi(‘datatype’, [elemen-elemen])

Contoh

a = larik.array(‘i’, [1,2,3,4])

dimana:
• array : nama fungsi di dalam modul array
• larik : nama alias dari modul array
• i : tipe data integer

Contoh: Program untuk mencari hasil penjumlahan elemen array Output


import array as larik
sum = 0 10
a = larik.array('i',[1,2,3,4])
for i in a:
sum = sum+i
print(sum)

Konversi List ke dalam Array


Fungsi fromlist() digunakan untuk menambahkan List ke Array. Berikut ini adalah list yang
bertindak seperti suatu array.

Sintaks:

namaarray.fromlist(daftar nama)

Contoh: Program untuk mengkonversi List ke dalam Array Output


import array as larik
sum=0 35
l = [6,7,8,9,5]
a = larik.array('i',[])
a.fromlist(l)

for i in a:
sum=sum+i
print(sum)

Metode di dalam Array


Misal: a = [2,3,4,5]

29
No. Sintaks Contoh Deskripsi
1. array( Digunakan untuk membuat array
data type, array(‘i’,[2,3,4,5]) dengan tipe data dan daftar nilai
value list) ditetapkan dalam argumennya.

2. >>>a.append(6) Digunakan untuk menambahkan


append()
[2,3,4,5,6] pada ujung array.

3. Digunakan untuk menambahkan


insert(index, >>>a.insert(2,10)
nilai pada posisi yang ditetapkan
element) [2,3,10,5,6]
dalam argumen.

4. Digunakan untuk menghapus


>>>a.pop(1) elemen pada posisi yang
pop(index)
[2,10,5,6] disebutkan dalam argument, dan
mengembalikannya.

5. >>>a.index(2) Diguakan untuk memperoleh


index(element)
0 indeks dari nilai tertentu.

6. >>>a.reverse() Digunakan untuk membalikkan


reverse()
[6,5,10,2] elemen-elemen array.

7. count() a.count() Digunakan untuk menghitung


jumlah elemen suatu array

6. Contoh Program Lain


Akar kuadrat menggunakan Metode Newton Output
def newtonsqrt(n): enter number to find Sqrt:
root=n/2 9 3.0
for i in range(10):
root=(root+n/root)/2

print(root)

n=eval(input("enter number to find Sqrt: "))


newtonsqrt(n)

GCD dari Dua Bilangan


n1=int(input("Enter a number1:")) Enter a number1:8 Enter a
n2=int(input("Enter a number2:")) number2:24 8

for i in range(1,n1+1):
if(n1%i==0 and n2%i==0):
gcd=i

30
print(gcd)

Eksponen dari Bilangan


def power(base,exp): Enter base: 2
if(exp==1): Enter exponential value:3
return(base) Result: 8
else:
return(base*power(base,exp-1))

base=int(input("Enter base: "))


exp=int(input("Enter exponential value:"))
result=power(base,exp)
print("Result:",result)

Jumlah Elemen Array


a=[2,3,4,5,6,7,8] sum=0 the sum is 35

for i in a:
sum=sum+i
print("the sum is",sum)

Pencarian Linier
a=[20,30,40,50,60,70,89] [20, 30, 40, 50, 60, 70, 89]
print(a) enter a element to search:30
search=eval(input("enter a element to search:")) element found at 2

for i in range(0,len(a),1):
if(search==a[i]):
print("element found at",i+1)
break
else:
print("not found")

Pencarian Biner
a=[20, 30, 40, 50, 60, 70, 89] [20, 30, 40, 50, 60, 70, 89]
print(a) Masukkan item yang
search=eval(input("Masukkan tem yang dicari:")) dicari:30
start=0 Item ditemukan di posisi 2
stop=len(a)-1

while(start<=stop):
mid=(start+stop)//2
if(search==a[mid]):
print("Item ditemukan pada posisi",mid+1)
break
elif(search<a[mid]):
stop=mid-1
else:
start=mid+1
else:
print("Tidak ditemukan.")

31
7. Soal Latihan
Bagian I
1. Apa yang dimaksud nilai Boolean?
2. Apa perbedaan antara operator dan operan?
3. Tuliskan sintaks untuk pernyataan if, berikan contoh!
4. Tuliskan sintaks dan flowchart untuk pernyataan if else.
5. Tuliskam sintaks dan flowchart untuk pernyataan if bersarang.
6. Apa yang dimaksud dengan status (atau kondisi)?
7. Tuliskan sintaks untuk perulangan while, sertakan juga flowchartnya.
8. Tuliskan sintaks untuk perulangan for, lengkapi dengan flowchartnya.
9. Apa perbedaan antara break dan continue?
10. Jelaskan kegunaan dari kata kunci pass
11. Apa yang dimaksud fungsi fruitful?
12. Apa yang dimaksud fungsi void?
13. Jelaskan cara berbeda menuliskan pernyataan return!
14. Apa yang dimaksud parameter? Apa saja jenisnya?
15. Jelaskan mengenai lingkup local dan global!
16. Apa perbedaan antara variabel local dan global?
17. Jelaskan komposisi fungsi! Berikan contoh!
18. Apa yang dimaksud rekursi?
19. Jelaskan perbedaan antara iterasi dan rekursi!
20. Apa yang dimaksud dengan string? Bagaimana memperoleh suatu string saat program
berjalan?
21. Apa yang dimaksud slicing? Berikan contoh.
22. Apa yang dimaksud immutability dari suatu string?
23. Sebutkan 10 fungsi bawaan yang dapat beroperasi terhadap string! berikan contoh.
24. Modul apa yang berisi banyak fungsi untuk operasi string?
25. Bagaimana agar list dapat berlaku sebagai array?
26. Tuliskan program untuk memeriksa genap atau ganjilnya suatu bilangan.
27. Tuliskan program untuk memeriksa apakah suatu bilangan itu positif atau negatif
28. Tuliskan program untuk memeriksa apakah suatu tahun termasuk kabisat atau tidak
29. Tuliskan program untuk mencari yang terbesar dari dua bilangan
30. Tuliskan program untuk memeriksa hak suara (di pemilu)
31. Tuliskan program untuk mencari jumlah total dari n bilangan
32. Tuliskan program untuk mencari faktorial dari suatu bilangan yang diberikan
33. Tuliskan program untuk mencari jumlah angka (digit) di dalam suatu bilangan
34. Tuliskan program untuk membalikkan bilangan yang diberikan.

32
35. Tuliskan program untuk memeriksa apakah suatu bilangan termasuk palindrom atau
tidak.
36. Tuliskan program untuk memeriksa apakah suatu bilangan termasuk Armstrong atau
tidak.
37. Bagaimana kita menggunakan perulangan for dengan mengakses elemen dari sequence?
38. Bagaimana kita menggunakan pernyataan else di dalam perulangan if?
39. Apa kegunaan dari fungsi map()?

Bagian II
1. Jelaskan pernyataan kondisional secara detail dengan contohnya (if, if..else, if..elif..else)
2. Jelaskan secara detail mengenai operator dalam bahasa Python
3. Jelaskan secara terperinci mengenai iterasi beserta contohnya (for, while)
4. Jelaskan pemanfaatan pernyataan else di dalam suatu perulangan
5. Jelaskan secara detail mengenai penggunaan for terhadap sequence.
6. Jelaskan secara lengkap mengenai fungsi bawaan string disertai dengancontoh yang tepat
7. Jelaskan mengenai pernyataan kendali perulangan (break, continue, pass)
8. Berikan contoh fungsi fruitful.
9. Berikan contoh mengenai variabel lokal dan global
10. Berikan contoh dan penjelasan mengenai komposisi fungsi
11. Jelaskan danberikan contoh tentang rekursi.
12. Jelaskan secara detail mengenai string dan operasi terhadapnya (slicing, immutablity)
13. Buatlah program untuk mencari akar kuadrat dari suatu bilangan menggunakan metode
Newtons
14. Buatlah program untuk mencari GCD dari suatu bilangan
15. Buatlah program untuk mencari eksponensial dari suatu bilangan menggunakan rekursi
16. Buatlah program untuk mencari jumlah total elemen array.
17. Buatlah program untuk mencari elemen array menggunakan pencarian linier (linear
search).
18. Buatlah program untuk mencari elemen array menggunakan binary search.
19. Buatlah program untuk menemukan faktorial dari suau bilangan menggunakan rekursi.

33

Anda mungkin juga menyukai