Anda di halaman 1dari 23

STRUKTUR PERULANGAN

Perulangan atau Loop


Perulangan (loop) adalah menjalankan proses sampai suatu kondisi terpenuhi. Kondisi
yang dimaksud - tentunya - akan mempengaruhi seberapa banyak proses tersebut
dijalankan. Banyaknya perulangan ini bisa ditentukan di awal loop maupun selama
loop berlangsung.

Perulangan for
Perintah for dalam python mempunyai ciri khas tersendiri dibandingkan dengan perulangan
for pada bahasa pemograman C ataupun Pascal (dibandingkan dengan bahasa pemrogramman
lain). Tidak hanya mengulang bilangan - bilangan sebuah ekspresi aritmatik(dalam Pascal),
atau memberikan keleluasaan si user untuk mendefinisikan perulangan iterasi dan
menghentikan perulangan pada saat kondisi tertentu (dalam C). Dalam Python, statement for
bekerja mengulang berbagai macam tipe data sekuensial seperti list, string, dan tuple.

Contohnya:
>>> a = ['satu', 'dua', 'tiga', 'empat']
>>> for i in a :
... print i
...
satu
dua
tiga
empat
Contoh diatas berarti fungsi for <iterasi> in <objek>:.
Bentuk umum perintah for,
For (variabel ) in (objek) :
Statement
Else :
Statement

Contoh penggunaan for :


Contoh 1:
>>> for i in [ 5, 4, 3, 2, 1 ]:
...

print i

...
54321
Pada contoh 1, perintah perulangan terjadi dimana data-data untuk iterasi (objek) berada dalam list. Jadi elemen-elemen yang berada dalam list akan dimasukkan (assign)
ke dalam variabel target yaitu i.
Contoh 2 :
>>> nama = [budi, andi, rudi, sandi]
>>> usia = [ 20, 18, 22, 19 ]
>>> for i in range (len(nama)):
...

print nama[i], berusia, usia[i], tahun

...
budi berusia 20 tahun
andi berusia 18 tahun
rudi berusia 22 tahun
sandi berusia 19 tahun

Atau definisi yang lain :

Jumlah Perulangan Ditetapkan -> for


for merupakan perulangan sebanyak elemen data dalam suatu list. Perhatikan contoh
berikut:
for nomor in [1,2,3]:
print nomor
for akan menghitung satu persatu setiap elemen dalam [1,2,3].
Selama proses menghitung itu, ia:
1. Memberi nilai dari setiap elemen data ke variabel nomor.

2. Menjalankan print nomor sesaat setelah point 1 dijalankan.


Dengan demikian script di atas menghasilkan output sebagai berikut:
123
for memang bekerja dengan list, sehingga list [1, 2, 3] bisa merupakan list berisi data
lainnya.
record = [ 2769, "Jeruk", 5500 ]
for nilai in record:
print nilai,
print
Koma pada print berarti tidak berganti baris. Untuk menampilkan list multidimensi
kita membutuhkan for di dalam for sebanyak dimensi tersebut. Misalkan struktur
table yang merupakan list dua dimensi, maka diperlukan dua for untuk menampilkan
isi setiap elemen datanya.
tabel = [
[ 2769, "Jeruk", 5500 ],
[ 8205, "Mangga", 3750 ]
]
for record in tabel:
for nilai in record:
print nilai,
print

Perulangan while
*. Perintah while pada python merupakan perintah yang paling umum digunakan untuk
proses iterasi
*. Konsep sederhana dari perintah while : akan mengulang atau mengeksekusi statement
dalam blok while selama nilai kondisinya benar dan akan keluar atau tidak melakukan
eksekusi blok statement jika nilai kondisinya salah
*. Bentuk umum statement while,
While ( kondisi ) :
Statement
Contoh penggunaan while :
>>> a = 0; b = 10
>>> while a < b :
...

print a,

...

a=a+1

...
0123456789
Perulangan while akan mengulang didalam ruang lingkup while, selama suatu kondisi

terpenuhi. Misalnya :
>>> n = 9
>>> while n < 20 :
... print n
... n = n + 1
...
9
10
11
12
13
14
15
16
17
18
19
Pada contoh diatas, nilai variabel n akan ditambahkan 1 secara terus menerus
sampai kondisi n lebih kecil dari 20.
Definisi dari while yang lainnya sebagai berikut :

Selama -> while

while adalah bentuk perulangan dimana jumlah perulangannya ditentukan oleh suatu
kondisi. Ikuti langkah berikut untuk hasil yang sama dengan contoh for sebelumnya,
namun kini
menggunakan while:
i=0
while i < 3:
i=i+1
print i
Script di atas memang lebih pas bila dengan for. Contoh berikut akan menampilkan
bilangan acak yang dibuat terusmenerus sampai ditemukan bilangan yang lebih
besar dari 0.5:
import random
i=0
while i <= 0.5:
i = random.random();
print i
dengan contoh hasil sebagai berikut:
0.135330567072
0.321183281272
0.42870775016
0.335857508686
0.447331794014
0.287945799635
0.854292081945
Hasil di atas sangat mungkin berbeda dengan yang Anda peroleh - karena sifat
bilangan acak itu sendiri. Perhatikan nilai setiap barisnya dimana program tidak akan
berhenti sampai ditemukan kondisi yang dimaksud yaitu 0,854292081945 lebih kecil
dari 0,5. Coba jalankan sekali lagi, pasti Anda akan menemukan hasil yang berbeda.
Kini sudah jelas, untuk menerapkan algoritma tersebut perulangan for tidak dapat
digunakan karena jumlah perulangan yang tidak menentu.

Fungsi Range()
range() merupakan fungsi yang mengembalikan daftar bilangan integer secara
berurutan dimulai dari nol, banyaknya sesuai dengan jumlah yang dinginkan.
range(3) berarti [0,1,2] dan range(5) berarti [0,1,2,3,4], begitu seterusnya.

Fungsi ini sering dipakai dalam for untuk mendapatkan jumlah perulangan yang
dinginkan.
for nomor in range(3):
print nomor
dimana output yang dihasilkan adalah:
012
Bila kisaran yang dinginkan adalah 1-3 maka gunakan range(1,4).
Latihan Tampilkan nilai faktorial n dimana n dimasukkan pada saat runtime.
Contoh: faktorial 5 adalah 5 x 4 x3 x 2 x 1 = 120. Namun faktorial 0 atau lebih kecil
lagi (negatif) hasilnya tetap 1.

Atau .
Jika Anda ingin melakukan perulangan sejumlah yang diinginkan, fungsi built-in
range sangat membantu. Fungsi tersebut menghasilkan sejumlah indeks dari nilai yang telah
ditentukan. Contohnya :
>>> range(15)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]

Ataupun sebagian angka yang diinginkan. Contohnya :


>>> range (8, 15)
[8, 9, 10, 11, 12, 13, 14]
>>> range(0,9,3)
[0, 3, 6]
>>> range(0, 20, 3)
[0, 3, 6, 9, 12, 15, 18]
Contoh diatas menunjukan kelipatan dari suatu interval bilangan yang mempunyai
sintaks range(<nilai-awal>, <nilai-akhir>, <kelipatan-angka>). Selanjutnya adalah

Contoh perulangan for dengan range() :


>>> for i in range(10):
... print i
...

0
1
2
3
4
5
6
7
8
9
Mengulang perulangan for sejumlah anggota elemen suatu tipe data sekuensial.
Contohnya :
>>> a
['satu', 'dua', 'tiga', 'empat']
>>> for i in range(len(a)):
... print i
...
0
1
2
3

Perintah break, continue dan else


Perintah break seperti dalam bahasa C, berarti keluar dari ruang lingkup yang
terkecil dari kondisi for atau while. Atau perintah break digunakan untuk
menghentikan jalannya proses iterasi pada statement for atau while. Statement yang
berada di bawah break tidak akan di eksekusi dan program akan keluar dari proses
looping.

Contoh :
>>> x = 1
>>> while x < 5:
...
if x = = 3:
...
break
...
print x
...
x=x+1
...
else:
Printloop sudah selesai dikerjakan
...
1
2

Perintah continue sama halnya dengan di C, yang berfungsi melanjutkan kalimat


perintah berikutnya dalam kondisi perulangan.
*.Statement continue menyebabkan alur program kembali ke perintah looping
*. Jadi jika dalam sebuah perulangan terdapat statement continue, maka program
akan kembali ke perintah looping untuk iterasi selanjutnya
contoh :
>>> n = 10
>>> while n:
...
n=n1
...
if n % 2 != 0:
...
continue
...
print n
...
8
6
4
2
Pada kondisi perulangan juga diperbolehkan untuk menggunakan kalimat perintah
else, yang dijalankan pada saat kondisi perulangan for tidak menemui suatu kondisi
atau jika suatu kondisi tersebut mengalami kesalahan / false (dengan while),
tetapi bukan pada saat kondisi perulangan dihentikan dengan perintah break.
Berikut adalah contohnya :
for n in range(2, 10):
for x in range(2, n):
if n % x == 0:
print n, 'sama dengan', x, '*', n/x

break
else:
print n, 'adalah bilangan prima'
2 adalah bilangan prima
3 adalah bilangan prima
4 sama dengan 2 * 2
5 adalah bilangan prima
6 sama dengan 2 * 3
7 adalah bilangan prima
8 sama dengan 2 * 4
9 sama dengan 3 * 3
Penjelasannya adalah apabila suatu kondisi dalam perulangan for x in range(2, n)
tidak ada yang terpenuhi maka alur perulangannya akan lari ke ruang lingkup
perintah else.
Definisi lainnya :

Keluar Dari Perulangan -> break


Perulangan juga bisa dihentikan dari dalam, yaitu menggunakan perintah break.

Atau perintah break digunakan untuk menghentikan jalannya proses iterasi pada
statement for atau while. Statement yang berada di bawah break tidak akan di
eksekusi dan program akan keluar dari proses looping.
Contoh :
>>> x = 1
>>> while x < 5:
...
if x = = 3:
...
break
...
print x
...
x=x+1
...
else:
Printloop sudah selesai dikerjakan
...
1

import random
while 1:
i = random.random();
print i
if i > 0.5:
break
print "selesai"
Perhatikan angka 1 diatas yang merupakan kondisi benar. Dengan kata lain
perulangan akan dijalankan terus-menerus tanpa henti, karena akan dihentikan
dengan perintah break. break hanya menghentikan perulangan, selanjutnya proses
kembali ke blok utama. Pada contoh di atas dibuktikan dengan dijalankannya print
"selesai".
Latihan
1. Tampilkan satu bilangan acak yang lebih kecil dari 0,5.
2. Melanjutkan sebelumnya, tampilkan n bilangan acak yang
lebih kecil dari 0,5. n disi pada saat runtime. Anda boleh menggunakan kombinasi
for dan while.

Perintah return
Perintah return dapat menghentikan suatu proses dari fungsi sebelum mengakhiri

fungsi tersebut. Alasan menggunakan perintah return adalah jika menemui sebuah
kesalahan kondisi, yang berarti nilai suatu fungsi tersebut mengembalikan nilai null
(kosong) :
import math

def print_log (x):


if x <= 0 :

print x, "Bilangan lebih sama dengan 0"


return
hasil = math.log (x)
print "Hasil log dari", x, "adalah", hasil
Fungsi print_log() mengambil sebuah parameter x. Hal yang dilakukan pertama
kali adalah memeriksa apakah nilai x lebih kecil atau sama dengan 0, yang dapat
menghasilkan pesan kesalahan jika di proses dalam instruksi perintah selanjutnya
maka diberi perintah return untuk keluar dari fungsi tersebut. Alur jalannya program segera
dikembalikan ke pemanggil dari fungsi tersebut, dan instruksi - instruksi berikutnya
tidak akan dijalankan. Perhatikan! untuk memanggil fungsi dari modul math harus
menggunakan perintah import <nama-modul> .

Fungsi
Pada contoh-contoh program sebelumnya, Anda sudah menggunakan fungsi seperti
len(), range(), dan random() dimana tujuan pembuatan fungsi adalah mempersingkat
penulisan suatu blok program yang dipakai berulang-ulang. Misalnya pada program
berikut:
print "-" * 10
print "Setiap pesan diawali garis."
print "-" * 10
print "Juga diakhiri garis."
print "-" * 10
Tampak dalam script di atas bahwa print "-" * 10 ditulis berulang-ulang.
Contoh berikut akan kita ganti dengan pemanggilan fungsi:
# Deklarasi fungsi
def garis():
print "-" * 10
# Program utama
garis()
print "Setiap pesan diawali garis."
garis()
print "Juga diakhiri garis."
garis()
def menyatakan awal deklarasi suatu fungsi.

Nilai Masukan
Fungsi tersebut dikatakan fungsi statis karena ia tidak bisa menerima _masukan_ dari
baris program yang memanggilnya. Misalkan kita ingin membuat garis dengan
panjang berbeda-beda
namun fungsi yang digunakan tetap sama.
def garis(n):
print "-" * n
garis(10)
print "Setiap pesan diawali garis."
garis(3)
print "Juga diakhiri garis."
garis(10)
Fungsi juga dapat menerima masukan lebih dari satu. Misalkan karakternya bisa
diganti-ganti, tidak hanya "-".
def garis(k,n):
print k * n
garis("-",10)
print "Setiap pesan diawali garis."
garis(".",3)
print "Juga diakhiri garis."
garis("*",10)

Nilai Keluaran - return


Fungsi juga dapat mengembalikan suatu nilai sebagaimana yang pernah kita temui
pada len(), range(), dan random() sebelumnya. return digunakan untuk tujuan
tersebut.
def garis(k,n):
return k * n
print garis("-",10)
print "Setiap pesan diawali garis."
print garis(".",3)
print "Juga diakhiri garis."
print garis("*",10)

Sebagai tambahan, perintah lain di bawah baris return (masih dalam fungsi yang
sama) tidak akan diproses, sebagaimana _baris mubazir_ yang terdapat pada contoh
berikut ini:
def garis(k,n):
return k * n
print "Selesai"
Baris print "Selesai" tidak akan dijalankan karena sudah didahului oleh return yang
menyebabkan proses keluar dari fungsi. Fungsi yang tidak menggunakan return
sebenarnya tetap mengembalikan nilai, yaitu None dimana None merupakan objek
hampa.

Fungsi Interpreter ->exec()


exec() adalah fungsi interpreter yang akan menerjemahkan string sebagai perintah
Python.
> > > exec("a = 5")
>>>a
5
Berikut ini program kalkulator yang akan berhenti bila hanya tombol Enter saja yang
ditekan.
from math import *
while 1:
r = raw_input("x = ")
if r == "":
break
exec("x = " + r)
print x
Anda dapat menuliskan rumus matematika sesuai dengan ketentuan Python. Bahkan
modul math sudah disertakan, memudahkan penggunaan fungsi tambahan.
x = 8*3
24
x = 7+3
10
x = sin(45)
0.850903524534
x = pi*(10**2)
314.159265359

x=

Fungsi Memanggil DirinyaRekursif


Rekursif adalah istilah untuk fungsi yang memanggil dirinya sendiri. Contohnya pada
fungsi faktorial() berikut ini:
def faktorial(n):
if n <= 1: return 1
else: return n * faktorial(n-1)
print faktorial(5)
Rekursif memang membuat algoritma menjadi lebih pendek. Namun perlu dingat
teknik ini tergolong lebih boros memori. Jadi sebisa mungkin tetap gunakan
perulangan. Namun jika algoritma menjadi terlalu rumit silahkan terapkan rekursif

Atau definisi lainnya :


Fungsi Rekursif
Kita juga dapat memanggil fungsi itu sendiri yang kemudian di kenal dengan istilah
rekursif.
Mungkin sekilas hal itu tidak memberi alasan mengapa rekursif ini adalah hal yang
baik, tetapi akan berubah menjadi program yang menarik.Sebagai contohnya, lihat
fungsi berikut :
def hitung_mundur (x):
if x == 0 :
print "Sudah nol koq!"
else :
print x
hitung_mundur (x-1)
fungsi diatas menampilkan program hitung mundur dari nilai parameter x yang
diberikan, parameter tersebut seharusnya sebuah bilangan integer yang positif,

dan jika nilai x sama dengan 0 akan menampilkan string yang memberitahu bahwa
nilai x adalah 0.Kalau tidak nol(0) maka akan memanggil fungsi itu sendiri dan

memberi nilai x-1 sebagai parameternya.


Prosesnya adalah sebagai berikut, jika kita memanggil fungsi tersebut dengan nilai
3, maka nilai 3 akan di check apabila bukan nol (0) maka akan di cetak, dan

memanggil fungsi itu sendiri dengan parameter 3-1, yaitu nilai 2, kemudian nilai 2

akan di periksa apakah nilai 2 sama dengan 0, jika bukan maka akan di cetak, dan
memanggil fungsi tersebut dengan nilai parameter 1, di check kembali bila bukan
nol (0) maka akan akan memberikan parameter x-1 ke fungsi itu sendiri, setelah itu
maka fungsi tersebut di beri paramater 0 maka string "Sudah nol koq!" dicetak,
kemudian kembali lagi ke fungsi sebelumnya dengan nilai 1, kembali ke nilai 2,
kembali ke nilai 3.
Jadi tampilan hasilnya akan seperti berikut.
3
2
1
Sudah nol koq!
Hal ini akan berbeda jika perintah print diletakkan setelah pemanggilan fungsi
rekursif itu sendiri. Misalnya :
def hitung_maju(x):
if x == 0 :
print "Sudah nol, Mulai!"
else :
hitung_maju (x-1)
print x
maka tampilannya akan menjadi :
Sudah nol, Mulai!
1
2
3
Latihan
Buatlah fungsi bilangan faktorial, dengan menggunakan metode rekursif diatas.

Jawaban

def factorial(n):
if n <= 1:
return 1
return n*factorial(n-1)

Rekursif tanpa batas


Jika fungsi rekursif tidak pernah mencapai kondisi dasar, maka akan memanggil
fungsi rekursif secara berulang - ulang selamanya, dan program tersebut tidak akan
pernah berakhir. Keadaan ini dikenal dengan Rekursif tanpa batas , dan kondisi ini
sangat tidak disarankan. Contoh programnya :
def rekursif():
rekursif()
Dalam lingkungan pemrograman, sebuah program dengan rekursif tanpa batas tidak
pernah benar - benar berjalan selamanya. Interpreter akan menampilkan pesan
kesalahan apabila batas maksimal rekursif telah dicapai, Pesan kesalahannya :
Traceback (most recent call last):
File "<stdin>", line 2, in rekursif
(98 Perulangan telah terjadi)
File "<stdin>", line 2, in rekursif

RuntimeError: maximum recursion depth exceeded


Sebenarnya tampilannya tidak akan seperti di atas bila dijalankan di interpreter
Python

Pemanggilan fungsi

Anda telah melihat satu contoh pemanggilan fungsi pada bab sebelumnya :
>>> type ("54")
<'type string'>
Nama fungsi tersebut adalah type dan fungsinya untuk menampilkan tipe data
suatu nilai atau suatu variabel. Nilai atau variabel sebagai argumen parameter

pada fungsi, harus diletakkan di dalam tanda kurung. Biasanya suatu fungsi
mengambil satu atau beberapa argumen dan menampilkan hasil dari fungsi

tersebut yang dinamakan nilai hasil.


Walaupun suatu nama variabel tersebut merupakan suatu fungsi, akan tetap
menghasilkan nilai dari fungsi tersebut. Misalnya,
>>> fungsi = type ("satu")
>>> print fungsi
<'type string'>
Sebagai contoh lain adalah fungsi id, yang mengambil suatu nilai atau variabel dan
mengembalikan suatu nilai integer yang mewakili identitas dari suatu nilai atau
variabel tersebut.Misalnya :
>>> id (9)
135109956
>>> angka = 9
>>> id (angka)
135109956
Dapat kita lihat bahwa id suatu variabel merupakan id dari nilai variabel tersebut,
setiap nilai mempunyai sebuah nomor id , yang unik atau berbeda satu sama lain
dan angka tersebut disimpan pada memori komputer.
Peubah tipe data
Python menyediakan fungsi - fungsi built-in yang dapat mengubah suatu nilai dari
suatu tipe data ke tipe data lainnya. Fungsi int mengambil suatu nilai yang mungkin
ke tipe data integer, atau menimbulkan pesan kesalahan nilai, Misalnya :
>>> int ("30.5")#Ingat segala sesuatu yang di apit dalam #tanda kutip adalah tipe data

string

30
>>> int ("Hello World!")
Traceback (most recent call last):
File "<stdin>", line 1, in ?
ValueError: invalid literal for int(): Hello World!
fungsi int juga dapat digunakan untuk mengubah tipe data float menjadi tipe data
int, akan tetapi nilai yang berada di belakang nol akan di hilangkan, Misalnya :
>>> int (3.14)
3
>>> int (-7.5)
-7
sedangkan fungsi float dapat mengubah nilai integer dan string menjadi nilai float.
Misalnya :
>>> float (43)
43.0
>>> float ("123")
123.0
dari sini terlihat bahwa nilai 43 dalam integer dan nilai 43 dalam float mempunyai

nilai matematik yang sama, tetapi berbeda tipe data. Perbedaan tipe data ini
terjadi di dalam memori komputer.
Yang terakhir adalah fungsi pengubah nilai string, fungsi str akan mengubah nilai
integer dan nilai float menjadi tipe data string. Misalnya
>>> str (23)
'23'
>>> str (45.9)
'45.9'
Dalam Python juga terdapat fitur pengubah nilai secara otomatis, yang akan
mengubah nilai hasil jika salah satu operandnya mempunyai tipe data yang

berbeda, pada contohnya pembagian nilai dengan tipe data integer dengan nilai
dengan tipe data float akan menghasilkan nilai dengan tipe data float.
>>> 60 / 4.5
13.333333333333334
nilai 60 adalah nilai dari tipe data integer, sedangkan 4.5 adalah nilai dari tipe data
float, pada python perbedaan tipe data ini akan secara otomatis dirubah hasilnya
menjadi nilai yang sesuai.
Membuat Fungsi baru
Sejauh ini kita hanya menggunakan fungsi - fungsi yang tersedia di Python, kita
juga dapat membuat sebuah fungsi baru untuk menyelesaikan masalah yang
spesifik.
Dalam konteks pemrograman, sebuah fungsi adalah sebuah himpunan dari beberapa
instruksi untuk menyelesaikan suatu masalah spesifik yang diinginkan. Sebelum
membuat fungsi kita harus terlebih dahulu menspesifikasikan pendefinisian fungsi
itu.
Sintaks Pendefinisian fungsi adalah :
def NAMA_FUNGSI ( DAFTAR PARAMETER):
PERINTAH - PERINTAH DALAM FUNGSI
Anda dapat menggunakan nama fungsi apa saja sesuai keinginan dan yang
menunjukkan kegunaan fungsi tersebut, tetapi Anda tidak dapat menggunakan
kata kunci dalam Python sebagai nama fungsi. DAFTAR PARAMETER merupakan
parameter - parameter apa saja yang ingin di proses oleh fungsi tersebut, Anda
juga diperbolehkan untuk tidak meletakan parameter fungsi tersebut jika tidak ada
data yang diproses oleh fungsi tersebut. Perintah - perintah dalam fungsi dapat di

letakkan di bawah pendefinisian fungsi dengan kata kunci def yang diletakkan
setelah identasi dari kiri di atas, dalam contoh di atas dipergunakan identasi
sebanyak 2 spasi.
Contoh fungsi pertama yang tidak mempergunakan parameter :
def baris_baru ():
print
Fungsi diatas mempunyai nama baris_baru dan tidak mempunyai parameter di
dalam tanda kurung (tempat dimana parameter diletakkan) mempunyai satu baris
perintah yang menghasilkan baris kosong yang baru (ini terjadi jika anda

menggunakan perintah print dengan tidak meletakan argumen-argumennya).


Penggunaan fungsi diatas adalah :
print "Contoh fungsi baris baru"
baris_baru ()
print "Dibawah baris baru yang kosong"
Tampilan dari perintah di atas adalah :
Contoh fungsi baris baru

Dibawah baris baru yang kosong


Perhatikan baris kosong diatas, jika kita menginginkan baris kosong lebih dari satu,
kita dapat langsung memanggil fungsi baris_baru berulang kali atau membuat
fungsi baru yang isi perintahnya terdapat fungsi baris_baru, Misalnya :
def tiga_baris ():
baris_baru ()
baris_baru ()
baris_baru ()

print "Contoh fungsi baris baru"


tiga_baris ()
print "Dibawah baris baru yang kosong"
Fungsi tiga_baris mempunyai 3 baris perintah yang memanggil fungsi
baris_baru(). Jadi dapat kita simpulkan bahwa :
1. Kita dapat memanggil suatu fungsi berulangkali.
2. Kita dapat membuat fungsi yang dapat memanggil fungsi lain.
3. Membuat suatu fungsi memudahkan Anda membuat suatu kelompok kecil untuk
menyederhanakan penyelesaian masalah yang kompleks.

4. Kegunaan suatu fungsi adalah membuat program lebih kecil, karena dapat
merepresentasikan penggunaan kode yang berulang - ulang.
Alur eksekusi program
Untuk memastikan bahwa suatu fungsi telah didefinisikan sebelum fungsi itu
digunakan, Anda harus mengetahui perintah yang mana yang sekarang Anda
jalankan, ini yang di sebut sebagai Alur eksekusi program.
Pada saat program dijalankan selalu dimulai dari perintah pertama dalam program.
Perintah - perintah tersebut dijalankan satu kali, dari atas sampai bawah.
Dalam pendefinisian suatu fungsi kita dapat menggunakan fungsi di dalam suatu
fungsi, yang berarti kita harus memanggil fungsi yang di atas untuk menjalankan
fungsi yang di bawah. Pemanggilan suatu fungsi bisa juga merupakan pengubah
alternatif pembacaan alur eksekusi program, karena pemanggilan fungsi di dalam
fungsi harus memperhatikan fungsi yang ada diatasnya untuk mendapatkan hasil

dari fungsi didalam fungsi tersebut. Jadi intinya Ketika Anda melihat suatu program
jangan melihat program tersebut dari atas ke bawah, melainkan perhatikanlah alur
jalannya program tersebut.
Argumen parameter
Beberapa fungsi built-in yang telah Anda gunakan memerlukan beberapa argumen
parameter, nilai yang di proses dalam suatu fungsi. Contohnya pada saat
menggunakan fungsi built-in type yang memerlukan nilai untuk menentukan tipe
data dari nilai tersebut. Beberapa fungsi juga memerlukan argumen lebih dari satu,
misalnya fungsi pow yang memerlukan 2 argumen, nilai dasar dan nilai pangkat.
Contohnya :
>>> pow (3, 1)
3
fungsi pow digunakan untuk memperoleh nilai dari eksponen suatu nilai. Jika fungsi
pow diisi dengan satu argumen, maka akan timbul pesan kesalahan.
>>> pow (3)
Traceback (most recent call last):
File "<stdin>", line 1, in ?
TypeError: pow() takes at least 2 arguments (1 given)
Berikut contoh fungsi yang menggunakan suatu argumen.

def cetak (kata):


print "Fungsi ini mencetak=>",kata
Fungsi cetak ini memerlukan satu argumen parameter yang bernama "kata", nilai
parameter ini dapat kita tentukan untuk menjalankan fungsi ini.
cetak ("Hello Fungsi")
Fungsi ini mencetak=> Hello Fungsi
cetak (54321)
Fungsi ini mencetak=> 54321
Pada pemanggilan fungsi di atas, nilai argumen pertama bertipe data string, yang
kedua bertipe data integer. Jika kita jalankan fungsi cetak tanpa argumen akan

menghasilkan pesan kesalahan :


>>> cetak ()
Traceback (most recent call last):
File "<stdin>", line 1, in ?
TypeError: cetak() takes exactly 1 argument (0 given)
Yang menjelaskan bahwa fungsi cetak, memerlukan 1 argumen parameter.

Variabel lokal dalam Fungsi


Ketika Anda membuat variabel lokal pada suatu fungsi, variabel tersebut hanya
dapat dikenali dalam fungsi itu saja, dan Anda tidak dapat menggunakannya di luar

dari fungsi itu. Misalnya :


def cetak_lokal (kata):
lokal = kata + " tambah lokal"
print lokal

>>> cetak_lokal ("apa saja")


apa saja tambah lokal

>>> print lokal


Traceback (most recent call last):
File "<stdin>", line 1, in ?
NameError: name 'lokal' is not defined

>>> print kata


Traceback (most recent call last):
File "<stdin>", line 1, in ?
NameError: name 'kata' is not defined
perhatikan! bahwa fungsi diatas memerlukan argumen parameter yang bertipe
data string, karena pada variabel lokal terdapat operator tambah (+) yang berarti
penggabungan antar string. Dan tidak diperbolehkan untuk menampilkan variabel
lokal yang terdapat di dalam fungsi cetak_lokal. Parameter suatu fungsi juga

bersifat lokal pada fungsi tersebut.

Anda mungkin juga menyukai