Anda di halaman 1dari 29

LAPORAN PRAKTIKUM KOMPUTER

MODUL IV
SUB DAN FUNCTION

KELOMPOK: II/SHIFT-JUMAT PAGI

OLEH:

1. ADRI.S 2110017311020
2. WILANDA OKTAVIA 2110017311023

LABORATORIUM KOMPUTER
JURUSAN TEKNIK INDUSTRI
FAKULTAS TEKNOLOGI INDUSTRI
UNIVERSITAS BUNG HATTA
PADANG
2022
BAB I
PENDAHULUAN
1.1. Latar Belakang
Pada pembuatan program yang kompleks dan memiliki banyak fitur, kita
diharuskan menggunakan fungsi. Alasan kita menggunakan fungsi yaitu agar kita
tidak akan kerepotan menulis kode programnya, karena banyak yang harus ditulis
dan kode akan menjadi sulit dibaca dan dirawat(maintenance). Dengan fungsi,
kita dapat memecah program besar menjadi sub program yang lebih sederhana.
Masing-masing fitur pada program dapat kita buat dalam satu fungsi. Pada saat
kita membutuhkan fitur tersebut, kita tinggal panggil fungsinya saja. Kita harus
memahami teori dasar dan hal apa saja yang harus kita ketahui tentang fungsi di
Python. Di era big data, perkembangan data sangat signifikan. Dalam satu hari
dunia dapat memproduksi jutaan data. Sebagian besar data ini merupakan data
yang tidak terstruktur yang sebagian besar berasal dari media sosial. Di era mod-
ern, perusahaan dan organisasi mulai memahami betapa pentingnya data bagi ke-
berlangsungan bisnis maupun organisasi mereka. Data-data ini dapat digunakan
sebagai bahan dasar pengambilan keputusan. Untuk mengubah data menjadi infor-
masi yang bermanfaat, perusahaan membutuhkan para ahli data yang kompeten.
Ahli data yang dimaksud adalah seorang data scientist. Selain bertugas mengubah
data menjadi informasi yang berguna, seorang data scientist juga bertugas untuk
membuat visualisasi data dan mempresentasikannya. Oleh karena itu, seorang data
scientist tidak hanya harus memiliki kemampuan olah data saja, tetapi juga harus
memiliki kemampuan komunikasi yang baik. 
Seorang data scientist yang bekerja menggunakan big data membutuhkan
beberapa tools yang akan menunjang pekerjaannya, seperti tools olah data dan
database. Untuk mengolah big data, data scientist tidak bisa menggunakan tools
konvensional sehingga mereka perlu menggunakan bahasa pemrograman yang
lebih powerful dan lebih cepat. Bahasa pemrograman yang sering digunakan oleh
data scientist adalah R dan Python. Sebelumnya kita telah melihat dan menggunakan
fungsi-fungsi seperti print, int, float dan sebagainya. Python memiliki lebih banyak fungsi,
dan membuat fungsi kita sendiri adalah bagian besar dari perjalanan kita belajar pemro-
graman python. Dalam bagian ini kita akan belajar lebih banyak tentang menggunakan
dan mendefinisikan fungsi.
1.2. Tujuan Praktikum
1. Praktikan mengenal dan mengerti konsep dari modularity serta pen-
gaplikasiannya dengan menggunakan sub dan function.
2. Praktikan dapat memahami tentang pengiriman parameter, data global
dan lokal, dan cara memanggil sub.
3. Praktikan dapat memahami tentang perbedaan antara sub dan func-
tion.
4. Praktikan dapat membuat program yang bersifat modularity dengan
menggunakan sub dan function.
1.3. Alat dan Bahan
Berikut ini alat dan bahan yang digunakan dalam praktikum:
1. Laptop / computer yang memiliki aplikasi python.
2. Modul praktikum computer.
1.4. Prosedur Praktikum
Berikut prosedur percobaan pada praktikum kali ini sebagai berikut:
1. Praktikan menerima materi praktikum dari asisten.
2. Praktikan mencoba membuat program di computer.
3. Praktikan mengerjakan latihan yang diberikan.
4. Praktikan menyimpan hasil kerja.
1.5. Sistematika Penulisan
Berdasarkan modul praktikum, prosedur penulisan pada modul ini seba-
gai berikut:
BAB I PENDAHULUAN
Pada bab ini praktikan menuliskan latar belakang, tujuan praktikum, alat
dan bahan, prosedur penulisan dan sistematika penulisan pada praktikum.
BAB II LANDASAN TEORI
Pada bab ini terdapat landasan teori yang terdiri dari function, struktur
fungsi def, statement lambada, pengiriman parameter dan nested func-
tion.
BAB III FLOWCHART
Pada bab flowchart ini terdapat diagram alir yang menggambarkan proses
pembuatan program yang akan dibuat secara rinci.
BAB IV LISTING PROGRAM
Pada bab ini terdapat listing program dari tugas yang diberikan oleh asis-
ten dosen yang mana pada program tersebut kita memasukkan penggu-
naan materi yang telah dipelajari.
BAB V PENUTUP
Pada bagian penutup ini praktikan menuliskan analisa dari laporan prak-
tikum yang telah dibuat, kemudaian menambahkan kesimpulan dan
saran.
DAFTAR PUSTAKA
BAB II
LANDASAN TEORI
2.1. Function
Fungsi adalah blok kode terorganisir dan dapat digunakan kembali yang
digunankan untuk melakukan sebuah tindakan/ action. Fungsi memberikan
modularitas yang lebih baik untuk aplikasi anda dan tingkat penggunaan kode
yang tinggi. Fungsi atau dalam istilah pemrograman disebut dengan “function”
merupakan blok kode yang digunakan untuk menyelesaikan masalah spesifik.
Fungsi dapat dipanggil dan digunakan berkali-kali, serta dapat menerima input
dan mengeluarkan output. Misalnya ketika kita ingin menghitung luas segitiga.
Nah, sebagai programmer kita dapat membuat fungsi yang menerima input berupa
2 bilangan yaitu alas dan tinggi lalu mengeluarkan output berupa luas segitiga
sesuai rumus yang ada. Tidak terbatas pada angka saja, fungsi juga dapat mener-
ima dan mengeluarkan jenis data yang lain sesuai tipe data yang sudah disediakan.
Ketika fungsi dipanggil pada program utama, maka alur program utama akan ter-
henti sementara untuk menjalankan perintah pada fungsi yang bersangkutan. Alur
program pada sebuah fungsi kurang lebih sama seperti program utama. Karena in-
ilah fungsi juga disebut sebagai sub program.
Fungsi termasuk bagian dari program yang dapat digunakan ulang. Hal
ini bisa dicapai dengan memberi nama pada blok statemen, kemudian nama ini da-
pat dipanggil di manapun dalam program. Kita telah menggunakan beberapa
fungsi builtin seperti range. Fungsi dalam Python didefinisikan menggunakan kata
kunci def. Setelah def ada nama pengenal fungsi diikut dengan parameter yang di-
apit oleh tanda kurung dan diakhir dingan tanda titik dua (:). Baris berikutnya
berupa blok fungsi yang akan dijalankan jika fungsi dipanggil.
# lat15.py def halo_dunia():
print 'Halo Dunia!'
halo_dunia()
# memanggil fungsi halo_dunia
halo_dunia()
# fungsi halo_dunia dipanggil
lagi outputnya :
Halo Dunia!
Halo Dunia!
Gambar 2. Contoh Penggunaan Function Pada Python
Jika kita ingin menghitung jumlah item suatu objek, kita bisa menggu-
nakan fungsi ‘len’. Tetapi bagaimana jika kita lupa kegunaan fungsi tersebut?
Maka kita bisa gunakan fungsi help. Fungsi help () merupakan salah satu fungsi
yang sangat penting untuk kita pelajari. Jika kita dapat mengingat cara menggu-
nakan help(), kita memegang kunci untuk memahami sebagian besar fungsi lain-
nya. Karena fungsi help() adalah suatu fungsi untuk memahami fungsi semua
fungsi. Berikut ini sebuah contoh:
>>>print (help(len))
Help on built-in function len in module builtins:
Len (obj, /)
Return the number of items in a container.
Gambar 2.1 Contoh Function Help

Fungsi help () di atas menampilkan dua hal:


1. header : header adalah bagian pertama dari output help, dari contoh di-
atas yaitu bagian len(obj, /). Baris ini memberitahu kita bahwa fungsi
len ini menerima argument sebuah object.
2. Deskripsi singkat tentang apa fungsinya.

Python memiliki banyak sekali fungsi bawaan yang sangat membantu


kita. Namun kita juga bisa membuat fungsi kita sendiri untuk melangkah lebih
jauh dalam membuat suatu aplikasi. Berikut adalah contoh membuat fungsi di
Python :
Def least difference (a, b, c):
Diff1 = abs (a – b)
Diff2 = abs (b – c)
Diff3 = abs (a – c)
Return min (diff1, diff2, diff3
Gambar 2. Contoh Penggunaan Function
Dari contoh di atas, kita membuat fungsi yang bernama least_difference, dimana
fungsi ini memiliki tiga argument, yaitu a, b, c Fungsi dimulai dengan kata kunci
‘def’. Blok kode yang menjorok setelah tanda ‘:’ dijalankan ketika fungsi dipang-
gil. ‘return’ adalah kata kunci lain juga yang berkaitan dengan fungsi. Kata kunci
‘return’ adalah untuk menentukan apa yang akan di hasilkan dari fungsi tersebut.
Function ini jelas beda dengan built-in function yang ada di python.
Built-in function sendiri adalah function yang telah dibuatkan oleh pengembang
bahasa pemrograman python. Sedangkan function dibuat oleh programmer yang
menggunakan bahasa pemrograman python, atau istilah lainnya userdefined func-
tion. Sebagai sub program yang self-contained, semua kode di dalam fungsi tidak
akan bisa dipengaruhi atau mempengaruhi kode diluar scope-nya. Hal ini dapat
mempermudah proses debugging karena pengecekan tidak perlu dilakukan hingga
melebar ke program utama, cukup fokus pada fungsi terkait saja. Yang tidak kalah
penting adalah, fungsi dapat membuat kode kita lebih manusiawi dan mudah
dibaca dengan memisah struktur program. Karena kode yang baik adalah yang
bisa dibaca dan dimengerti oleh manusia.
Di python untuk membuat function digunakan keyword def. Kemudian di-
ikuti nama function yang diinginkan lalu parameter yang dibutuhkan dengan di-
awali tanda “(“ dan “)”.Untuk membuka function dimulai dengan tanda “:”. Tidak
seperti di C, Java, atau PHP yang diawali dengan tanda “{“ dan diakhiri “}” untuk
membuka sebuah function. Lalu tutupnya ? Seperti dijelaskan diawal di python
sendiri digunakan indentasi untuk menentukan apakah baris kode tersebut milik
sebuah function, if, atau pengulangan. Jadi jika Anda ingin menuliskan kode un-
tuk function yang Anda buat. Harus ada jarak satu indentasi agar kode tersebut di-
anggap sebagai kode dari function yang Anda tulis. Kemudian Anda dapat
menambahkan keyword return jika function yang Anda tulis ingin mengemba-
likan nilai keluaran. Berikut ada contoh tentang pembuatan function yang memi-
liki parameter dan tidak memiliki parameter. Penggunaan return digunakan pada
contoh berikutnya :
def fungsi_tanpa_parameter():
for i in range(1, 5):
print "looping ke - ", i
def fungsi_berparameter(batas_akhir):
for i in range(1, batas_akhir):
print "looping ke - ", i 53

print " contoh penggunaan fungsi tanpa parameter : "


print "hasil : ", fungsi_tanpa_parameter()

print "\n\n"
print " contoh penggunaan fungsi berparameter : "
print "hasil : ", fungsi_berparameter(10)
Gambar 2. Contoh Pembuatan Function

Sebuah function jika dipanggil langsung nilai keluarannya tidak akan dicetak.
Tetapi jika dipanggil melalui sebuah function seperti print nilai keluarannya akan dita-
mpilkan. Nilainya “None” ? Karena di function yang tadi ditulis tidak disertakan keyword
return. Jika sebuah function tidak diberikan return maka dapat dibilang function terse-
but dianggap procedure. Sebuah function yang tidak memiliki nilai keluaran.

Cara pembuatan fungsi dapat berbeda pada berbagai macam bahasa


pemrograman, namun hal yang pasti adalah fungsi memiliki beberapa bagian
sebagai berikut. Fungsi (Function) adalah suatu program terpisah dalam blok
sendiri yang berfungsi sebagai sub-program (modul program) yang merupakan se-
buah program kecil untuk memproses sebagian dari pekerjaan program utama.
Fungsi dapat digunakan untuk mengumpulkan beberapa perintah yang sering di-
pakai dalam sebuah program. Penggunaan fungsi membuat program yang dibuat
menjadi lebih terstruktur, mudah diikuti, serta mempersingkat waktu pengemban-
gan Hal ini karena dapat dibuat dengan memberi nama pada block statement, ke-
mudian nama yang ditentukan dapat dipanggil di manapun dalam program. Fungsi
pada pemrograman Phyton akandapat dikategorikan ke dalam 2 kelompok, yaitu:
1. Standard Library Function Fungsi-fungsi yang telah disediakan oleh Interpreter
Python dalam file-file atau librarynya. 2. User Defined Function Fungsi yang
dibuat sendiri. Function ini memiliki nama tertentu yang unik dalam program,
letaknya terpisah dari program utama, dan bisa dijadikan satu ke dalam suatu li-
brary Fungsi pada Python didefinisikan menggunakan kata kunci def, dimana uru-
tannya setelah def dilanjutkan nama pengenal fungsi diikut dengan parameter
yang diapit oleh tanda kurung dan diakhir dingan tanda titik dua (:). Selanjutnya
berupa blok fungsi yang akan dijalankan jika fungsi dipanggil.
Membuat Fungsi dengan Lebih dari 1 Parameter / Argumen
Kita bisa menginput lebih dari satu argumen ke dalam fungsi selama pendefin-
isian fungsi tersebut juga ditulis dengan lebih dari satu parameter. Dalam contoh berikut
saya memodifikasi fungsi sapa_teman() agar bisa menerima 3 argumen:
1def sapa_teman(nama1, nama2, nama3):
2  print("Hai", nama1, nama2, nama3);

4sapa_teman("Lisa", "Nova", "Putri")
Gambar 2. Modifikasi Function Sapa Teman
Hasil kode program:
Hai Lisa Nova Putri
Gambar 2. Hasil Modifikasi Function Sapa Teman
Di baris 1, pendefinisian fungsi sapa_teman() sekarang punya 3 parameter,
yakni nama1, nama2 dan nama3. Maka untuk menjalankan fungsi ini, juga harus diinput
dengan 3 argumen bertipe string seperti di baris 4.
Membuat Function hitung_luas_segitiga()
Sebagai contoh terakhir, berikut modifikasi fungsi hitung_luas_segitiga() yang
bisa menerima 2 argumen angka:
Def_hitung_luas_segitiga(a
las, tinggi):
  luas = (alas * tinggi) /
2
  print("Luas segitiga
1adalah: ",luas)
2    
3hitung_luas_segitiga(5, 7)
4hitung_luas_segitiga(2,
510)
6hitung_luas_segitiga(191,
7357)
Gambar 2. Modifikasi Program Hitung Luas Lingkaran
Hasil kode program:
Luas segitiga adalah: 17.5
Luas segitiga adalah: 10.0
Luas segitiga adalah:
34093.5
Gambar 2. Hasil Modifikasi Program Hitung Luas Lingkaran
Di baris 1, fungsi hitung_luas_segitiga() saya definisikan dengan 2 buah parameter,
yakni alas dan tinggi.
Penamaan parameter boleh bebas selama mengikuti aturan penamaan vari-
abel / identifier, misalnya tidak boleh ada spasi dan tidak boleh diawali angka.
Antara baris 5 – 7 saya menjalankan fungsi hitung_luas_segitiga() sebanyak 3 kali
dengan nilai argumen yang berbeda-beda. Sebagai contoh, ketika compiler Python
memproses perintah hitung_luas_segitiga(5, 7), angka 5 ini akan mengisi parame-
ter alas, dan angka 7 akan mengisi parameter tinggi. Selanjutnya kedua parameter
masuk ke perhitungan luas di baris 2. Hasilnya kemudian di tampilkan dari perin-
tah print(“Luas segitiga adalah: “,luas).
Tabel 2.1 Bagian Fungsi.
Bagian fungsi Pengertian
Nama fungsi Sebagai identifier yang digunakan ketika
memanggil fungsi terkait
Parameter Sebagai sarana input, merupakan variabel yang
hanya dapat diakses dari badan fungsi
Badan fungsi Logika dan alur program dari fungsi terkait
Nilai Kembalian Output yang akan dikeluarkan setelah proses
dalam badan fungsi selesai dilakukan
Sumber : Dunia Ilmu Komputer

Berikut merupakan penampakan fungsi di beberapa bahasa pemograman dalam


bahasa pyhon:
# fungsi untuk menghitung luas segitiga
def luas_segitiga(a, t):
return a*t/2 # mengembalikan luas segitiga

# memanggil fungsi 'luas_segitiga' dengan alas 10 dan


tinggi 5
print(luas_segitiga(10, 5))
Gambar Fungsi Pada Pemograman Python.
Untuk membedakan bebrapa jenis fungsi dalam beberapa Bahasa pe-
mograman, berikut merupakan penampakan atau contoh fungsi atau function
dalam beberapa Bahasa pemograman selain python. Walaupun hanya sekedar
blok program, membuat fungsi tidak boleh asal-asalan. Ada beberapa peraturan
tidak tertulis yang sebisa mungkin harus dipenuhi.
1. Tidak Mengakses Variable di Luar Scope Fungsi
Fungsi sudah memiliki variabel parameter untuk mendapatkan inputan
dari pemanggil. Sebisa mungkin gunakan nilai itu saja, jangan sampai
melebar hingga menggunakan variabel global. Karena jika sampai ada
variabel global yang diakses, kemungkinan bentrok ketika mengakses
akan terjadi. Hal ini akan mempersulit ketika proses debugging.
Fungsi yang baik adalah fungsi yang menghasilkan
output hanya berdasarkan inputan yang masuk.

2. Menyelesaikan Masalah Yang Spesifik


Masih berkaitan dengan penamaan fungsi yang sebelumnya. Masalah
yang diselesaikan oleh sebuah fungsi haruslah sesuai dengan deskripsi
pada namanya. Hal ini bertujuan untuk mempermudah ketika
penyusunan program. Contohnya ketika ada fungsi yang bertugas
melakukan 2 hal yaitu untuk menggabungkan nama depan dan nama
belakang, serta membuat hurufnya menjadi kapital semua.
Lebih baik fungsi tersebut dipecah lagi menjadi 2 dengan pekerjaan
pekerjaan yang lebih spesifik. Contohnya:
1. fungsi gabung_nama: untuk menggabungkan nama depan dan nama
belakang.
2. fungsi buat_kapital: untuk mengubah huruf menjadi kapital semua.
Dengan begitu pemanggilan fungsi dapat lebih manusiawi dan masuk akal.
Dalam pemrograman python, fungsi merupakan kunci dari terbentuknya
program yang besar. Bahkan hampir mustahil rasanya membuat program kom-
pleks tanpa menggunakan fungsi ini. Oleh karena itulah sangat penting untuk
memahami konsep fungsi, bukan hanya pada Python saja namun juga bahasa lain-
nya. Satu blok fungsi pada Python ditandai dengan keyword def yang menandakan
definisi fungsi. Dilanjutkan dengan identifier atau nama fungsi dan bagian op-
sional yaitu parameter.

Tabel 2.2 Format Pembuatan Blok Fungsi Pada Python.


Format fungsi Penjelasan
nama_fungsi identifier yang digunakan untuk memanggil fungsi yang
telah dibuat
param_1, param_2, parameter atau masukan yang diberikan pada fungsi
(opsional)
tubuh_fungsi barisan kode yang akan dijalankan ketika fungsi dipanggil
Sumber:Dunia Ilmu Komputer

Fungsi pada python tentu tidak dapat berdiri sendiri. Untuk


menggunkannya tidak cukup hanya deklarasi saja, tetapi juga harus dilkaukan
pemanggilan. Untuk memanggil sebuah fungsi, kita dapat menuliskan identifier
dari fungsi tersebut diikuti dengan tanda kurung buka dan tutup. Jika fungsi
tersebut menerima parameter maka kita juga harus mengisikannya.

2.2. Struktur Fungsi def


Dalam python terdapat dua perintah yang dapat digunakan untuk membuat sebuah
fungsi, yaitu def dan lambda. def adalah perintah standar dalam python untuk
mendefinisikan sebuah fungsi. Tidak seperti function dalam bahasa pemrograman
compiler seperti C/C++, def dalam python merupakan perintah yang executable,
artinya function tidak akan aktif sampai python me-running perintah def tersebut.
Sedangkan lambda, dalam python lebih dikenal dengan nama Anonymous
Function (Fungsi yang tidak disebutkan namanya). Lambda bukanlah sebuah
perintah (statemen) namun lebih kepada ekspresi (expression).
Satemen def digunakan untuk mendeklarasikan fungsi. Sedangkan
statemen returndigunakan untuk mengembalikan suatu nilai kepada bagian
program yang memanggil fungsi. Bentuk umum untuk mendeklarasikan fungsi
adalah sebagai berikut:

def <nama_fungsi>(arg1, arg2, arg3, ...,argN) :


<statemen-statemen

Gambar Format Fungsi Def…


Sebuah fungsi diawali dengan statemen def kemudian diikuti oleh sebuah
nama_fungsi nya. Sebuah fungsi dapat memiliki daftar argumen (parameter)
ataupun tidak. Tanda titik dua ( : ) menandakan awal pendefinisian tubuh dari
fungsi yang terdiri dari statemen-statemen. Statemen return dapat diletakkan di
bagian mana saja dalam tubuh fungsi. Statemen return menandakan akhir dar
pemanggilan fungsi dan akan mengirimkan suatu nilai balik kepada program yang
memanggil fungsi tersebut. Statemen return bersifat opsional, artinya jika sebuah
fungsi tidak memiliki statemen return, maka sebuah fungsi tidak akan
mengembalikan suatu nilai apapun.
Contoh penggunaan fungsi :

>>> def lakukan():


... print "Anda sedang menggunakan fungsi"
...
>>> lakukan()
Anda sedang menggunakan fungsi

Gambar Statement Return.


Pernyataan def mendefinisikan sebuah fungsi dengan nama ucapan.
Fungsi ucapan tidak memiliki daftar argumen dan tidak meminta nilai kembalian.
Pendefinisian fungsi ucapan diakhiri dengan tanda ( : ), kemudian diikuti oleh
statemen print yang menjadi isi dari tubuh fungsi. Lalu untuk memanggil fungsi
ucapan() kita gunakan perintah seperti dibawah ini:
Nama_fungsi<()
Contohnya, katakan
Gambar Memanggil Fungsi Ucapan.
Pada contoh diatas, sebuah fungsi dengan nama perkalian(), memiliki dua
buah argumen yaitu a dan b. Isi dari fungsi tersebut adalah melakukan
perhitungan perkalian yang diambil dari nilai a dan b, yang di simpan ke dalam
variabel c. Nilai dari c lah yang akan dikembalikan oleh fungsi dari hasil
pemanggilan fungsi melalui statemen perkalian(5, 10). Dimana nilai 5 akan di
simpan dalam variabel a dan nilai 10 akan disimpan dalam variabel b.
2.2.1. Scope Variabel
Scope variabel atau cakupan variabel merupakan suatu keadaan dimana
pendeklarasian sebuah variabel di tentukan. Dalam scope variabel dikenal dua
istilah yaitu local dan global . Variabel disebut local ketika variabel tersebut
didefinisikan didalam sebuah fungsi (def). Artinya, variabel tersebut hanya dapat
di gunakan dalam cakupan fungsi tersebut saja. Dan jika sebuah variabel
didefinisikan diluar fungsi maka variabel tersebut bersifat global. Artinya,
variabel tersebut dapat digunakan oleh fungsi lain atau pun program utamanya.
Pernyataan def mendefinisikan sebuah fungsi dengan nama ucapan. Fungsi
ucapan tidak memiliki daftar argumen dan tidak meminta nilai kembalian.
Pendefinisian fungsi ucapan diakhiri dengan tanda ( : ), kemudian diikuti oleh
statemen print yang menjadi isi dari tubuh fungsi.
Contoh penggunaan scope variabel :
def contohScope(A):
A = 10
print "Nilai A di dalam fungsi, A = ", A
# program utama
A = 30
print "Nilai A di luar fungsi, A = ", A
contohScope(A)
Output :
Nilai A di luar fungsi, A = 30
Nilai A di dalam fungsi, A = 10

Gambar Contoh Penggunaan Scope Variabel.


Pada contoh diatas, variabel A didefinisikan di dua tempat yaitu di dalam
fungsi contohScope() dan di dalam program utama. Ketika nilai A awal di beri
nilai 30, kemudian di cetak, nilai A masih bernilai 30. Namun ketika kita
memanggil fungsi contohScope() dengan mengirim parameter A yang bernilai 30,
terlihat bahwa nilai A yang berlaku adalah nilai A yang didefinisikan didalam
fungsi tersebut. Atau nilai A yang bernilai 10. ini terbukti bahwa variabel X yang
di cetak dalam fungsi contoh Scope() merupakan variabel local yang didefinisikan
didalam fungsi, bukan variabel X global yang dicetak di luar fungsi.
Contoh lain penggunaan scope variabel :
Dalam lingkungan program utama variabel x dan y diisi dengan nilai 12
dan 3, secara berurutan. Ketika program utama memanggil fungsi swap nilai
variabel ini disalin kedalam variabel x dan y dalam lingkungan fungsi, yang
kebetulan sama namanya dengan nama variabel dalam progam utama. Python
akan membuat alokasi memori tersendiri untuk fungsi. Karena alokasi memorinya
berbeda, maka perubahan yang terjadi pada variabel dalam fungsi, katakanlah x,
tidak akan mengubah variabel x yang terdapat dalam program utama. Jadi bisa
dikatakan variabel x dalam fungsi swap hanya mempunyai scope dalam fungsi itu
sendiri. Variabel program utama tetap nilainya, meskipun variabel dalam fungsi
swap berubah nilainya.
2.2.2. Statement Lambda
.Seperti def, ekspresi ini menciptakan sebuah fungsi yang akan dipanggil
nanti, tapi mengembalikan fungsi dan bukan untuk menetapkan nama. Inilah
sebabnya mengapa kadang-kadang lambda dikenal sebagai anonim (yakni, tidak
disebutkan namanya) fungsi. Dalam prakteknya, mereka sering digunakan sebagai
cara untuk inline definisi fungsi, atau untuk menunda pelaksanaan sepotong kode.
Bentuk umum lambda adalah kata kunci lambda, diikuti oleh satu atau lebih
argumen (persis seperti daftar argumen dalam tanda kurung di def header), diikuti
oleh ekspresi setelah tanda titik dua
Berikut adalah contohnya:
lambda argument1, argument2,... argumentN :expression
using arguments

Gambar 4.23 Kata Kunci Lamda.


Lambda memiliki perbedaan dengan def antara lain:
Tabel 2.3 Perbedaan Lambda dan Penjelasannya.
Lambda Penjelasan
Lambda adalah sebuah ekspresi, Karena ini, sebuah lambda dapat muncul di tempat-tempat
bukan pernyataan def tidak diperbolehkan oleh sintaks Python-di dalam
daftar harfiah atau pemanggilan fungsi argumen, misalnya.
Sebagai ekspresi, lambda mengembalikan nilai (fungsi
baru) yang opsional dapat diberi nama. Sebaliknya,
pernyataan def selalu memberikan fungsi baru ke nama di
header, bukannya kembali sebagai hasilnya.
Tubuh lambda adalah ekspresi Tubuh lambda sama dengan apa yang akan dimasukkan ke
tunggal, bukan satu blok dalam statemen return dalam tubuh def.
statemen.
Sumber:
Contoh penggunaan lambda :
>>> f = lambda x, y, z: x + y + z
>>> f(10,20,30)
60
Contoh 2 :
>>> def nama():
... gelar = 'Sir'
... aksi = (lambda x: gelar + ' ' + x)
... return aksi
...
>>> act = nama()
>>> act('Robin')
'Sir Robin'
Gambar Contoh Penggunaan Lambda.
2.2.3. Fungsi Rekrusif
Fungsi Rekursif merupakan suatu fungsi yang memanggil dirinya sendiri.
Artinya, fungsi tersebut dipanggil di dalam tubuh fungsi itu sendiri. Tujuan di
lakukan rekursif adalah untuk menyederhanakan penulisan program dan
menggantikan bentuk iterasi. Dengan rekursi, program akan lebih mudah dilihat.
Mencari nilai faktorial dari suatu bilangan bulat positif adalah salah satu pokok
bahasan yang memudahkan pemahaman mengenai fungsi rekursif.
2.2.4. Melewatkan Argumen dengan Kata Kunci
Kalau kita perhatikan kembali fungsi perkalian sebelumnya, proses
penyalinan ke variabel lokal sesuai dengan urutan deklarasi fungsi yang kita
panggil. Jika fungsi perkalian kita panggil dengan memberi pernyataan
perkalian(10,8), maka nilai 10 akan disalin ke variabel x dan nilai 8 ke variabel y.
Kadang-kadang ini agak menyulitkan jika kita membuat fungsi dengan jumlah
variabel yang cukup banyak, sementara urutannya harus tepat. Solusinya adalah
dengan menyebutkan kata-kunci (keyword) yang kita pakai pada saat
mendefinisikan fungsi.
2.2.5. Nilai Awal Argumen
Dalam proses interaksi dengan pengguna program kadangkala program
memberikan pilihan tertentu, yang sering disebut dengan nilai bawaan (default).
Nilai awal argumen ini bisa kita berikan saat kita membuat definisi fungsi. Lihat
cara mendeklarasikan nilai awal argumen ini:
Gambar 4.25 Nilai Awal Argumen.
def login(username="admin", password="aa"):
print "Your username ",username
print "Your password ",password

2.2.6. Jumlah Argumen yang Berubah


Terdapat dua lambang khusus dalam Python untuk menerima argumen
dengan jumlah yang berubah-ubah. Lambang pertama adalah *nama_argumen.
Dengan memakai lambang ini pada deklarasi fungsi, Python akan mengenali
argumen selain argumen formal sebagai tuple. Untuk memanggil fungsi yang
mempunyai deklarasi seperti ini, kita cukup memberikan daftar argumen seperti
argumen biasa. Lambang kedua adalah **nama_argumen. Dengan lambang ini
argumen yang diterima oleh fungsi akan dikenali sebagai dictionary.
2.3. Statement Lambada
Dalam Python, terdapat fungsi anonim yang berarti bahwa suatu fungsi
tidak memiliki nama. Seperti yang sudah kita ketahui bahwa kata kunci def digu-
nakan untuk mendefinisikan fungsi normal di Python. Lain halnya dengan kata
kunci def yang mendefinisikan fungsi normal di Python, kata kunci lambda digu-
nakan untuk mendefinisikan fungsi anonim di Python.
2.3.1. Fungsi Lambada Pyhton
Dalam Python, ekspresi lambda (atau bentuk lambda) digunakan untuk
membangun fungsi anonim. Untuk melakukannya, Kamu akan menggunakan kata
kunci lambda (sama seperti Kamu menggunakan def untuk mendefinisikan fungsi
normal). Setiap fungsi anonim yang Kamu definisikan dengan Python akan memi-
liki 3 bagian penting:
1.Kata kunci lambda
2.Parameter
3.Badan Fungsi
Fungsi lambda dapat memiliki sejumlah parameter, tetapi badan fungsi
hanya dapat berisi satu ekspresi. Selain itu, lambda ditulis dalam satu baris kode
dan juga dapat segera dipanggil. Berikut ini adalah contoh syntax lambda Python:
Syntax: lambda arguments: expression
Berikut ini adalah contoh syntax di mana kamu harus mencoba untuk mema-
hami perbedaan fungsi definisi def normal dan fungsi lambda.

# perbedaan antara def() dengan lambda().


def kubus(i):
return i*i*i
lambda_kubus = lambda i: i*i*i
# pemanggilan def() dan lambda()
# mencetak hasil pada def()
print(kubus(10))
# mencetak hasil pada lambda()
print(lambda_kubus(10))
Output:
1000
1000

2.3.2. Penerapan Lambada Pada Bahasa Pemograman Phyton


Buka IDLE Kamu, dan ketikkan sintaks seperti di bawah ini:

hitung = lambda i, j: i + j
print (hitung (49, 51))

Berikut adalah outputnya:


100
Penjelasan kode di atas:
Pada kode di atas kami mendefinisikan variabel yang akan menampung hasil yang
dikembalikan oleh fungsi lambda.
 Kata kunci lambda yang digunakan untuk mendefinisikan fungsi anonim.
 i dan j adalah parameter yang kita lewati ke fungsi lambda.
 Kode di atas adalah isi dari fungsi, yang menambahkan 2 parameter yang
kita lewati. Perhatikan bahwa ia merupakan ekspresi tunggal. Kamu tidak
dapat menulis banyak pernyataan di badan fungsi lambda.
 Kami memanggil fungsi dan mencetak nilai yang dikembalikan.
2.3.3. Menggunakan Fungsi Lambda ( ) Dengan Filter ( )
Fungsi filter() dalam Python mengambil fungsi dan daftar sebagai argu-
men. Hal ini pun menawarkan cara yang elegan untuk menyaring semua elemen
dari urutan “order”, yang mengembalikan fungsi True. Berikut adalah program
kecil yang mengembalikan angka genap dari daftar input:

nilai = [54, 71, 43, 90, 61, 55, 38, 36, 20, 2]
genap_list = list(filter(lambda i: (i%2 != 1) , nilai))
print(genap_list)
Output yang dihasilkan:
[54, 90, 38, 36, 20, 2]
Gambar
2.3.4. Menggunakan Fungsi Lambda () Dengan map ()
Fungsi map() dalam Python mengambil fungsi dan daftar sebagai argu-
men. Fungsi dipanggil dengan fungsi lambda dan daftar dan daftar baru dikemba-
likan yang berisi semua item modifikasi lambda yang dikembalikan oleh fungsi
itu untuk setiap item. Contoh:

nilai_list = [1, 2, 3, 4, 5]
hasil_list = list(map(lambda i: i*12, nilai_list))
print(hasil_list)
Menghasilkan output:
[12, 24, 36, 48, 60]
2.3.5. Menggunakan Fungsi Lambda () Dengan Reduce ()
Fungsi reduce() dalam Python mengambil fungsi dan daftar sebagai argu-
men. Fungsi dipanggil dengan fungsi lambda dan iterable dan hasil pengurangan
baru dikembalikan. Hal ini pun akan melakukan operasi berulang pada pasangan
iterable. Fungsi reduce() milik modul functools.

from functools import reduce


nilai = [89, 54, 39, 21, 60, 76, 10]
hasil_sum = reduce((lambda i, j: i + j), nilai)
print (hasil_sum)
Output:
349
Membuat fungsi dengan lambda expression, berbeda dengan def. Bahkan,
lambda expression memiliki kelebihan yang tidak demiliki def. Lambda expres-
sion di python adalah sebuah ekspresi untuk membuat fungsi. Lambda sendiri be-
rasal dari teori kalkulus, yakni Lambda Calculus yang dikenalkan oleh Alonzo
Chruch di tahun 1930. Lamda bisa membuat fungsi tanpa nama atau dikenal juga
dengan anonymous function.
2.4. Pengiriman Parameter
Biasanya sebuah fungsi bisa menerima nilai masukan atau nilai input. Ni-
lai masukan inilah yang dimaksud dengan parameter atau argumen. Parame-
ter adalah sebutan untuk nilai inputan fungsi pada saat fungsi itu di definisikan,
sedangkan argumen adalah sebutan untuk nilai inputan fungsi pada saat fungsi itu
dipanggil. Tergantung kebutuhan, sebuah fungsi bisa menerima 1, 2, atau lebih
dari 5 parameter atau argumen, namun bisa juga tidak memerlukan sama sekali.
Sebenarnya parameter dan argumen sangat mirip dan sering di per-
tukarkan. Perbedaan dari keduanya hanya di posisi pembuatan saja. Parame-
ter merujuk kepada inputan fungsi pada saat pendefinisian, sedangkan argu-
men merujuk ke nilai input fungsi pada saat pemanggilan.
Berikut format dasar fungsi Python dengan parameter dan argumen:

def nama_function(param1,
param2):
  # Isi function disini...
  # Isi function disini...
  return nilai
   
nama_function(arg1, arg2)

Gambar 2. Format dasar fungsi python dengan parameter

Di akhir baris 1, yakni dalam tanda kurung setelah nama_function, adalah


tempat untuk penulisan parameter. Dalam contoh diatas, terdapat 2 buah parame-
ter bernama param1 dan param2. Sepanjang isi function, param1 dan param2 bisa
diakses sebagaimana variabel biasa. Ketika memanggil fungsi, kita harus isi kedua
nilai seperti di baris 6, yakni dari perin-
tah nama_function(arg1,arg2).Disini, arg1 dan arg2 adalah argumen. Nilai argu-
men ini nantinya akan mengisi nilai parameter. Agar lebih mudah dipahami, lang-
sung saja kita lihat contoh prakteknya.
Contoh Kode Program Parameter dan Argumen Fungsi

Di tutorial sebelumnya kita sudah membuat fungsi sapa_lisa() yang ketika


dipanggil akan menampilkan teks “Hai Lisa”. Berikut saya tampilkan kembali
kode yang dimaksud:
def sapa_lisa():
  print("Hai Lisa");
 
sapa_lisa()
Hasil kode pro-
gram:

Hai Lisa
Gambar 2. Contoh Kode Program Parameter dan Argumen Fungsi
Akan lebih fleksibel, saya akan modifikasi fungsi sapa_lisa() agar bisa
menampung sebuah parameter dan argumen:
def sapa_teman(nama):
  print("Hai",nama);
 
sapa_teman("Lisa")
Hasil kode program:

Hai Lisa
Gambar 2. Modifikasi Fungsi Parameter
Pada saat pendefinisian fungsi sapa_teman() di baris 1, saya
menulis sapa_teman(nama). Disini, nama adalah sebuah parameter. Di dalam
function, parameter bisa diakses sebagai mana layaknya variabel. Parame-
ter nama kemudian saya tampikan memakai perintah print seperti di baris 2.
Karena fungsi sapa_teman() memiliki 1 parameter, maka pada saat memanggil
fungsi ini di baris 4, kita harus mengisi sebuah argumen yang dalam contoh ini
adalah string “Lisa“. Ketika dijalankan, argumen “Lisa” di baris 4 akan mengisi
parameter nama di baris 1. Sehingga ketika perintah print(“Hai”,nama) yang ada
di dalam fungsi sapa_teman() di proses, hasilnya adalah “Hai Lisa“. Kita bisa
menjalankan fungsi sapa_teman() dengan argumen yang berbeda-beda:
def sapa_teman(nama):
  print("Hai",nama);
 
sapa_teman("Lisa")
sapa_teman("Sari")
sapa_teman("Putri")

Gambar 2. Contoh Function Dengan Argumen Yang Berbeda.


Hasil Kode Program:
Hai Lisa
Hai Sari
Hai Putri
Gambar 2. Hasil Program function Dengan Argumen Yang Berbeda.
Pendefinisian fungsi sapa_teman() masih sama seperti sebelumnya, hanya
saja kali ini fungsi tersebut saya jalankan dengan 3 argumen berbeda antara baris
4 – 6. Hasilnya, akan tampil teks yang berbeda pula. Kuncinya adalah, argu-
men yang diisi pada saat pemanggilan function, akan di input ke dalam parame-
ter function tersebut. Jumlah dan tipe data argumen juga harus cocok dengan jum-
lah dan tipe data parameter. Kedua pemanggilan fungsi sapa_teman() berikut akan
menghasilkan error:
sapa_teman();               // tanpa argument
sapa_teman("Putri","Lisa"); // jumlah argumen lebih dari 1
Gambar 2. Contoh Program Fungsi Sapa Teman.

Contoh pertama akan error karena fungsi sapa_teman() harus menerima satu argu-


men. Contoh kedua juga error karena fungsi sapa_teman() hanya bisa menerima
satu argumen saja.
Untuk beberapa fungsi yang ingin menyediakan paramater opsional dan
menggunakan nilai default jika pengguna tidak menyediakan argumen saat fungsi
dipanggil. Anda bisa menspesifikasikan nilai default dengan tanda sama dengan
( = ) setelah nama parameter. Jika anda membuat fungsi dengan banyak parameter
dan anda hanya ingin menspesifikasikan sebagian, anda dapat menggunakan key-
word argumen. Kita menggunakan nama (keyword) melainkan posisi (argumen
posisi, normal pemanggilan). Terkadang anda ingin membuat fungsi yang dapat
menerima jumlah argumen yang tida tentu, hal ini dapat dilakukan menggunakan
tanda bintang ( * ).
Statemen return digunakan untuk keluar dari fungsi. Kita juga dapat men-
spesifikasikan nilai kembalian. Seperti pada latihan 20 melainkan mencetak hasil
jumlah dalam blok fungsi, fungsi total mengembalikan nilai jumlah ke pemanggil.
Doc String Python memiliki fitur documentation string, seringnya disebut dengan
nama docstring. Docstring berguna untuk mendokumentasikan program agar mu-
dah untuk dipahami dan digunakan. Statemen return digunakan untuk keluar dari
fungsi. Kita juga dapat menspesifikasikan nilai kembalian. Seperti pada latihan 20
melainkan mencetak hasil jumlah dalam blok fungsi, fungsi total mengembalikan
nilai jumlah ke pemanggil.Doc String Python memiliki fitur documentation string,
seringnya disebut dengan nama docstring. Docstring berguna untuk mendokumen-
tasikan program agar mudah untuk dipahami dan digunakan. Secara interaktif
anda dapat mengakses docstring dengan fungsi help.

2.4.1. Pass By Object Reference


Berikutnya terdapat masalah pass by value atau pass by reference. Di
Python semua nilai akan dilewatkan secara by reference. Artinya jika kita men-
gubah argumen di dalam fungsi maka nilai argumen yang direferensi tersebut
akan ikut berubah juga. Misalkan dibawah contoh berikut terdapat sebuah list
yang akan diganti dengan nilai baru, dan ada juga yang ditambahkan nilai baru.
listing : fungsi_7.py

Gambar 2. Penggunaan Pass Bye Diference


Pada kode diatas, Anda akan melihat sebuah perbedaan yang cukup penting.
Ketika sebuah list diganti nilainya maka list yang ada di luar function tidak akan
terpengaruh. Tapi ketika kita menambahkan data baru dengan menggunakan
method pada list tersebut. Nilai diluar ikut berubah,. Hal ini terjadi karena pada
function sebuah_fungsi_lainnya(), list sebuah_list masih menunjuk atau merujuk
ke sebuah_list yang berada diluar. Atau dalam kata lain masih menunjuk ke “ad-
dress” yang sama di memori utama.
Gambar 2. Hasil Eksekusi Fungsi_7.Py
Variable scope adalah sebuah kondisi dimana variabel diakses secara lokal
pada blok kode tertentu atau bersifat universal yang menyebabkan variabel terse-
but dapat diakses dari blok kode manapun. Misal ada sebuah variabel di dalam
function. Variabel tersebut bersifat lokal dan hanya dapat diakses didalam func-
tion tersebut. Lalu bagaimanakah kita menjadikan sebuah variabel agar bersifat
global ?. Di Python terdapat sebuah keyword yang bernama global. Keyword ini
digunakan untuk merujuk sebuah variabel di luar blok kode, misalnya sebuah
variabel di dalam function, dengan nama yang sama.

Gambar Penggunaan Scope Pada Pass Bye Reference Python


Pada kode diatas variabel yang bernama angka dibubuhi keyword global
pada function sebuah_fungsi_lainnya(). Hasilnya saat angka diubah nilainya.
Maka nilai di variabel angka yang berada di luar blok function
sebuah_fungsi_lainnya() ikut berubah.

Gambar 2. Hasil Eksekusi Fungsi_8.Py


Pada tipe data yang imuntable dikarenakan letak alamat memori dari nilai
yang dirujuk parameter formal dan parameter aktual mempengaruhi kedua
nilainya. Akan tetapi, pada tipe data yang mutable, dikarenakan letak alamat
memori dari nilai yang di rujuk parameter formal dan parameter aktual itu
beralamat di memori yang sama, maka perubahan pada nilai di sisi pemanggil
akan menyebabkan perubahan pada nilai di dalamfungsi.
2.4.2. Pass By Reference

Kebanyakan script yang kita buat tidak berjalan seperti yang kita inginkan
karena kita gagal memahami passing jenis ini. Pass by reference adalah passing
dimana nilai dari variabel kedua kita yang ingin ditetapkan nilainya merefer dari
alamat memori variabel pertama. Ini membuat alamat memori variabel pertama
kita, literally punya 2 label (2 nama variabel merujuk ke alamat memori yang
sama). Efeknya, ketika kita mengubah nilai pada variabel pertama, variabel kedua
akan berubah juga nilainya menyamai dengan variabel pertama. Begitu juga seba-
liknya jika mengubah nilai variabel kedua, variabel pertama secara otomatis akan
berubah juga nilainya.
Gambar 2lustrasi Perbedaan Pass By Value Dan Pass By Reference

Walaupun terkadang counter intuitive, pass by reference tetap punya


ketungan dibanding saudaranya. Passing jenis ini lebih cepat prosesnya karena
hanya merefer alamat memori, tidak perlu meminta ruang memori RAM
tambahan. Keuntungan ini akan lebih terasa ketika objek yang di create butuh
memori lebih besar (objek-objek advance berdasarkan library tambahan dan
bukan bawaan Python seperti integer, string dll). Selain lebih cepat, pass by
reference sudah jelas akan lebih ringan saat di running programnya karena tidak
meminta ruang RAM tambahan. Pada python, list atau array berpotensi terjadi
pass by reference sedangkan string, integer, float tidak.
Pass Bye Reference adalah passing dimana nilai dari variabel kedua kita
yang ingin ditetapkan nilai merefer dari alamat memori variabel pertaman. Ini
membuat alamat memori variabel pertama kita, literally punya 2 label (2 nama
variabel merujuk ke alamat memori yang sama). Efeknya, ketika kita mengubah
nilai pada variabel pertama, variabel kedua akan berubah juga nilainya menyamai
dengan variabel pertama. Begitu juga sebaliknya jika mengubah nilai variabel
kedua, variabel pertama secara otomatis akan berubah juga nilainya.
Pelewatanargumentasi fungsi serta pass by reference. Dimana perubahan
yang terjadi di dalam fungsi berdampak kepada nilai diluar fungsi. Hal ini
dikarenakan objek yang di rujuk adalah objek yang sama, yang ditandai kesamaan
alamat memorinya. Hal iji menyebabkan nilai sebelum fungsi dipanggil berubah
setelah fungsi di panggil. Perubahan terjadi saat nilai baru dilewatkan ke dalam
fungsi.

Gambar 2. Penggunaan Pass Bye Reference


Pada kebanyakan kasus kita memang tidak perlu memusingkan ini tapi pada be-
berapa kasus ini perlu diperhatikan dan akan sangat sulit debugging scriptnya jika
kita tidak tahu mengenai ini.   Berbeda dengna pass-by-value, pass-by-reference
adalah metode untuk melewatkan parameter ke seubuah fungsi berdasarkan ala-
matnya. Kita tahu bahwa jika kita membuat alias (referensi) dari sebuah variabel
maka alamat dari variabel dan alias tersebut adalah sama. Hal inilah yang menjadi
konsep dasar pengiriman parameter berdasarkan alamat.

Melewatkan parameter dengna cara seperti ini akan menyebabkan nilai yang ter-
dapat di dalam fungsi akan sama persis dengan nilai yang terdapat pada program
(di luar fungsi). Hal ini tentunya disebabkan karena alamat dari variabel yang
berperan sebagai parameter formal sama dengan alamat dari variabel yang
berperan sebagai parameter aktual.

2.4.3. Pass By Value


Pass by value adalah jenis passing yang pada sebagian besar kasus
kebanyakan kita "harapkan" terjadi. Pass By Value adalah passing dimana kita
mengambil replika nilai dari variabel lain untuk menjadi nilai dari variabel yang
kita inginkan. Sehingga pada kasus pass by value, program akan meminta ruang
RAM sebanyak 2x (pertama untuk variabel awal dan yang kedua untuk variabel
yang ingin kita tetapkan nilainya melalui passing ini). Pada kasus pass by value,
anggap variabel awal bernama objek1 dan variabel yang kedua objek2, jika kita
mengubah nilai dari objek1 maka nilai objek2 tidak akan berubah. Dengan kata
lain kedua variabel ini saling independen.
Sesuai dengan namanya, fungsi ini akan melewatkan nilai parameter  ke
dalam sebuah fungsi untuk digunakan sesuai proses yang terdapat di dalam fugnsi
tersebut. Jika kita melewatkan parameter dengna cara ini maka nilai yang di-
hasilkan oleh fungsi tidak akan mempengaruhi nilai yang terdapat pada program
(di luar fungsi tersebut). Hal ini  disebabkan karena pada saat pemanggilan fungsi,
compiler hanya akan membuat salinan (copy) dari nilai yang terdapat pada
paremeter aktual ke parameter formal.

2.5. Fungsi Bersarang (Nested Function)


Fungsi bersarang adalah fungsi yang didefinisikan di dalam fungsi lain. Fungsi
bersarang ini dapat mengakses variabel dari scope (lingkup) fungsi pembungkusnya. Di
Python, variabel non-lokal defaultnya adalah bersifat read only. Untuk dapat
memodifikasinya, kita harus mendeklarasikannya sebagai variabel non-lokal
(menggunakan keyword nonlocal).

def print_msg(msg):
# Ini adalah fungsi pembungkus luar

def printer():
# Ini adalah fungsi bersarang
print(msg)
printer()

# Eksekusi fungsi
# Output: Hello
print_msg("Hello")
Gambar 2. Coding Fungsi Bersarang Pada Python

Anda mungkin juga menyukai