Python Programming:
Function
Trainer Bio
Sistem Informasi
(2014-2018)
Data Scientist
(Sept 2018- August 2020)
Business Intelligence
(Sept 2020- Present)
Muhammad
Ammar Fauzan
[Link]
[Link]@[Link]
Topik Sebelumnya : Conditional Statement
and Iteration
Topik Sebelumnya : Conditional Statement
and Iteration
Bagaimana jika persyaratannya diubah menjadi
kelipatan 6 dan 3? atau kelipatan 5 dan 7?
Topik Sebelumnya : Conditional Statement
and Iteration
Apakah kita harus mengubah syntax
setiap kali syaratnya berubah?
Today Menus:
1. Pengenalan Function
2. Parameter Input
3. Return Statement
4. Memproses Dataframe dengan Function
Hands-On Required :
Hands - On : Python Programming III - Rakamin
[Link]
Dataset :
1. rakamin_store_monthly
2. rakamin_store_city_monthly
Klik disini untuk mengakses
folder Hands-On dan
Dataset
Pengenalan
Function
Function adalah kumpulan statement(s) yang hanya berjalan
jika dipanggil atau diminta. Permintaan untuk menjalankan
suatu function dikenal dengan istilah function call
Function sangat berguna ketika kita ingin melakukan suatu
kumpulan statement(s) yang repetitif (berulang)
Bar Chart - Total Profit per Segment
Untuk membuat 1 Bar Chart
membutuh ~25 baris kode.
Apakah untuk membuat 10 Bar Chart - Total Profit per Category
barchart dengan metric yang
berbeda kita harus membuat
25 x 10 = 250 baris kode?
Click here
Analogi Function - Memasak
Bahan Masakan
(Input) Delicious Beef :)
(Output)
Chef Memasak
(Proses)
Implementasi Function Sederhana
Contoh Code:
Implementasi source code Function
- Header line pada function diawali dengan syntax def diikuti dengan
function name kemudian kurung oval (. . .) dan titik dua :
Implementasi Function Sederhana
Contoh Code:
Implementasi source code Function
- Header line pada function diawali dengan syntax def diikuti dengan
function name kemudian kurung oval (. . .) dan titik dua :
- Di dalam kurung oval setelah nama function dapat diisi (optional)
dengan suatu atau banyak parameter / argumen (input)
Implementasi Function Sederhana
Contoh Code:
Implementasi source code Function
- Header line pada function diawali dengan syntax def diikuti dengan
function name kemudian kurung oval (. . .) dan titik dua :
- Di dalam kurung oval setelah nama function dapat diisi (optional)
dengan suatu atau banyak parameter / argumen (input)
- Dalam function body bisa berisikan 1 atau lebih statement
Implementasi Function Sederhana
Contoh Code:
Pada contoh function di atas:
1. Kita membuat function dengan nama “penjumlahan”
Implementasi Function Sederhana
Contoh Code:
Pada contoh function di atas:
1. Kita membuat function dengan nama “penjumlahan”
2. Function memiliki 2 parameter a dan b
Implementasi Function Sederhana
Contoh Code:
Pada contoh function di atas:
1. Kita membuat function dengan nama “penjumlahan”
2. Function memiliki 2 parameter a dan b
3. Function memiliki 2 statement
a. Statement 1 → membuat variabel hasil_ jumlah yang melakukan operasi a +
b
b. Statement 2 → melakukan operasi print dari variabel hasil_ jumlah
Memanggil Function
Saat di execute cell 2 tidak memunculkan output apapun. Untuk
membuat function berjalan kita perlu memanggilnya (function call)
Memanggil Function
Saat di execute cell 2 tidak memunculkan output apapun. Untuk
membuat function berjalan kita perlu memanggilnya (function call)
Kita melakukan function call pada cell 3 dengan menuliskan nama
function dan 2 parameter / inputan (a dan b) yang dibutuhkan pada
function penjumlahan
Implementasi Function Sederhana
dengan Return statement
Contoh Code:
Pada baris kode ke 3, kita mendefinisikan return statement. Artinya saat
function dijalankan dan berhasil menjalankan hingga return statement
maka function akan selesai dijalankan
Implementasi Function Sederhana
dengan Return statement
Contoh Code:
Pada cell ke 5, pada saat kita melakukan function call terdapat out [5]
ketika kita menggunakan return statement. Coba bedakan dengan case
sebelumnya!
Global vs Local Variable
Dalam pemrograman python, terdapat istilah global variable
dan local variable
● Global Variable - variabel yang dibuat diluar sebuah function,
sehingga variabel tersebut dapat digunakan/diolah
dimanapun
● Local Variable - variabel yang dibuat didalam sebuah function,
sehingga hanya bisa diakses di dalam function tersebut
Global vs Local Variable - Contoh 1
Meskipun variabel x diubah nilainya didalam function, namun nilainya
tetap tidak berubah saat di jalankan di luar function (line 8)
Global vs Local Variable - Contoh 2
Meskipun variabel a diubah nilainya didalam function, namun nilainya
tetap tidak berubah saat di jalankan di luar function (line 8)
Global vs Local Variable - Advance
Variabel local bisa di definisikan sebagai variabel global dengan
menggunakan function global
Parameter
Input
Parameter (input) pada function bersifat optional dan menjadi
prasyarat jika didefinisikan saat membuat sebuah function.
Parameter pada function disebut juga argument
Tanpa Parameter
1 atau lebih Parameter
4 macam
parameter / input
pada Function Optional Parameter
Default Parameter
Tanpa Parameter
1 atau lebih Parameter
4 macam
parameter / input
pada Function Optional Parameter
Default Parameter
Function Tanpa Parameter
Saat membuat function tidak definisikan parameter. Sehingga saat
melakukan function call cukup menggunakan nama functionnya saja
dan kurung oval (..) tanpa inputan parameter
Function Tanpa Parameter
Saat membuat function tidak definisikan parameter. Sehingga saat
melakukan function call cukup menggunakan nama functionnya saja
dan kurung oval (..) tanpa inputan parameter
Tanpa Parameter
1 atau lebih Parameter
4 macam
parameter / input
pada Function Optional Parameter
Default Parameter
Function dengan 1 atau Lebih
Parameter
Contoh di atas, membuat function penjumlahan dengan 2 parameter
input a dan b. Sehingga saat melakukan function call wajib
menginputkan parameter a dan b sebagai prasyarat! Jika tidak akan error.
Function dengan 1 atau Lebih
Parameter
Contoh di atas, membuat function penjumlahan dengan 2 parameter
input a dan b. Sehingga saat melakukan function call wajib
menginputkan parameter a dan b sebagai prasyarat! Jika tidak akan error.
Tanpa Parameter
1 atau lebih Parameter
4 macam
parameter / input
pada Function Optional Parameter
Default Parameter
Function dengan Optional Parameter
Study Case : Objective function city_order adalah untuk mendapatkan
total order pada suatu bulan tertentu dari 1-3 kota sekaligus.
Function dengan Optional Parameter
Pada function city_order didefinisikan dengan 2 parameter wajib (month
dan city1) dan 2 parameter optional (city2 dan city3), artinya tidak wajib
diinputkan saat melakukan function call.
Function dengan Optional Parameter
Pada function city_order didefinisikan dengan 2 parameter wajib (month
dan city1) dan 2 parameter optional (city2 dan city3), artinya tidak wajib
diinputkan saat melakukan function call.
Function dengan Optional Parameter
Saat melakukan function call dalam context input parameter bisa
mendefinisikan dengan nama parameter nya atau tidak. Secara logic akan
terdefinisikan dari kiri ke kanan.
Function dengan Optional Parameter
Saat melakukan function call dalam context input parameter bisa
mendefinisikan dengan nama parameter nya atau tidak. Secara logic akan
terdefinisikan dari kiri ke kanan.
Tanpa Parameter
1 atau lebih Parameter
4 macam
parameter / input
pada Function Optional Parameter
Default Parameter
Function dengan Default Parameter
Study Case : Objective function user_order adalah untuk mendapatkan
total order pada suatu bulan tertentu dari specific user tertentu.
Function dengan Default Parameter
Pada function user_order didefinisikan dengan 1 parameter wajib
(user_id) dan 1 parameter default (month dengan value 2019-12), artinya
parameter sudah memiliki nilai default. Hal ini membuat, saat melakukan
function call tidak wajib mendefinisikan month.
Function dengan Default Parameter
Jika parameter month didefinisikan saat melakukan function call, maka
nilai default akan tergantikan / ter-replace
Function dengan Default Parameter
Jika parameter month didefinisikan saat melakukan function call, maka
nilai default akan tergantikan / ter-replace
Buatlah function cek_umur yang bisa menghitung umur dengan
menginputkan parameter tahun
Hint: Gunakan package datetime untuk mendapatkan value tahun ini!
Return
Value
Return Statement merupakan output/keluaran dari setiap
function. Function akan otomatis selesai dijalankan jika return
statement berhasil dijalankan. Penggunaan return tidak
bersifat wajib (optional).
Mengapa perlu mendefinisikan Return
Statement? #1
Kita memerlukan output dari function jika hasil dari output/balikan
tersebut digunakan lagi dalam pemrosesan selanjutnya.
Output dari fungsi cek_genap
digunakan sebagai value pada
pada operasi print()
Mengapa perlu mendefinisikan Return
Statement? #2
Kita memerlukan output dari function jika hasil dari output/balikan
tersebut digunakan lagi dalam pemrosesan selanjutnya.
Output dari fungsi luas_persegi
digunakan untuk menghitung
volume
Implementasi Function dengan Multi
Return statement
Contoh Code:
Return statement bisa kita definisikan lebih dari 1. Function akan otomatis
selesai dijalankan jika return statement berhasil dijalankan.
Implementasi Function dengan Multi
Return statement
Contoh Code:
Function otomatis selesai pada return statement pertama pada line code 5,
sehingga line code 11 tidak dijalankan
Implementasi Function dengan Multi
Return statement
Contoh Code:
Function dijalankan hingga line code terakhir (line 11)
Output pada Return Statement bisa
lebih dari 1
Sangat dimungkinkan jika value pada function bernilai lebih dari 1. Secara
otomatis hasilnya akan menjadi tuple, sehingga setiap itemnya dapat diambil
menggunakan index.
● df_info[0] = untuk mendapatkan nilai luas
● df_info[1] = untuk mendapatkan nilai volume
Output pada Return Statement bisa
lebih dari 1
Selain menggunakan index, kita juga bisa langsung memberikan nilai pada
masing-masing item nya kedalam beberapa variabel sekaligus, seperti
contoh berikut
Output pada Return Statement bisa
lebih dari 1
Selain menggunakan index, kita juga bisa langsung memberikan nilai pada
masing-masing item nya kedalam beberapa variabel sekaligus, seperti
contoh berikut
Memproses
Dataframe dengan
Function
Objective dari pemrosesan Dataframe dengan function adalah
kita mampu untuk membuat kolom baru menggunakan
fungsi apply lambda
Ada banyak cara dalam membuat kolom baru
Salah satu nya bisa menggunakan for iteration tiap baris pada
dataframe menggunakan .iterrows()
Reference
Lambda Function
Lambda function adalah fungsi anomin (tidak bernama) yang hanya memiliki
1 statement saja. Namun, lambda function mampu memiliki lebih dari satu
parameter input.
Contoh Code:
Lambda Function
Lambda function adalah fungsi anomin (tidak bernama) yang hanya memiliki
1 statement saja. Namun, lambda function mampu memiliki lebih dari satu
parameter input.
Contoh Code:
Contoh 1
Lambda Function
Lambda function adalah fungsi anomin (tidak bernama) yang hanya memiliki
1 statement saja. Namun, lambda function mampu memiliki lebih dari satu
parameter input.
Contoh Code:
Contoh 1 Contoh 2
Sekilas Penjelasan .apply()
Axis = 0 menjalankan fungsi
Axis = 1 menjalankan fungsi agregat
agregat sum pada setiap kolom
sum pada setiap baris
Alternatif yang lebih efisien untuk membuat
kolom baru Apply Lambda
Alternatif yang lebih efisien untuk membuat
kolom baru Apply Lambda
Buat Function Def dengan
output segmen terlebih dulu
Alternatif yang lebih efisien untuk membuat
kolom baru Apply Lambda
Buat Function Def dengan
output segment terlebih dulu
Kolom baru
Penjelasan Script Apply Lambda
2| .apply() pada pandas untuk
memproses suatu fungsi setiap baris
pada dataframe (axis = 1)
1| Mendefinisikan 3| Lambda digunakan untuk menjalankan
Nama Kolom Baru function segment pada setiap barisnya
Notes: x di definisikan sebagai alias dari dataframe yang jadikan sebagai
parameter / inputan function segment
Kira-kira bisa lebih
dipersingkat lagi gak ya
syntax nya?
Implementasi Apply Lambda tanpa Function def
Kita bisa menjalankan apply lambda tanpa membuat suatu function def
terlebih dulu. Namun dalam case ini parameternya wajib berupa series
bukan dataframe
Buatlah 1 kolom baru pada data dataframe rakamin_store_city_monthly,
dengan kriteria segmen berdasarkan visit sebagai berikut:
1. Total visit > 80 maka high interest
2. Total visit <= 80 dan > 35 maka mid interest
3. Total visit <= 35 maka low interest
Tentukan jumlah masing-masing segment pada tahun 2017. Gunakan
syntax apply lambda!
That’s All
Good Luck!