SlideShare a Scribd company logo
1 of 78
“The earlier you start working
on something, the earlier you
will see results”
Speakers
Abdul Hafiz Ramadan
// (C&D)
linkedin.com/in/abdul-hafiz-ramadan
Letakkan foto
Introduction Functional
Programming in Kotlin
Study jam android batch #1
28/01/2023
Agenda Hari Ini
● Function
● Function Parameter
● Function Default Argument
● Function Named Argument
● Unit Returning Function
● Function Return Type
● Single Expression Function
● Function Varargs Parameter
● Extension Function
Agenda Hari Ini
● Function Infix Notation
● Function Scope
● Return If & When
● Recursive Function
● Tail Recursive Function
● Lambda Expression
● Higher-Order Function
● Anonymous Function
● Closure
Pengenalan Function
Study jam android batch #1
28/01/2023
Function
● Sebelumnya kita sudah mengenal sebuah function yang wajib dibuat agar
program Kotlin bisa berjalan, yaitu function main
● Function adalah sebuah blok kode yang sengaja dibuat dalam program
agar bisa digunakan berulang-ulang
● Cara membuat function di Kotlin sangat sederhana, hanya dengan
menggunakan kata kunci fun lalu diikuti dengan nama function nya dan
blok kode isi function nya
● Setelah membuat function, kita bisa mengeksekusi function tersebut
dengan memanggilnya menggunakan kata kunci nama function nya
Kode: Function
Pengenalan Function
Parameter
Study jam android batch #1
28/01/2023
Function Parameter
● Saat membuat function, kadang-kadang kita membutuhkan data dari luar,
atau kita sebut parameter.
● Di Kotlin, kita bisa menambahkan parameter di function, bisa lebih dari
satu
● Parameter tidaklah wajib, jadi kita bisa membuat function tanpa
parameter seperti sebelumnya yang sudah kita buat
● Namun jika kita menambahkan parameter di function, maka ketika
memanggil function tersebut, kita wajib memasukkan data ke
parameternya
Kode: Function Parameter
Pengenalan Function
Default Argument
Study jam android batch #1
28/01/2023
Function Default Argument
● Di Kotlin, function parameter wajib diisi ketika memanggil function
● Namun kita juga bisa memasukkan nilai default pada parameter, dengan
demikian saat memanggil function tersebut, kita tidak wajib memasukkan
nilai pada parameter nya
● Default parameter ini cocok pada jenis parameter yang sekiranya memang
tidak wajib untuk diisi
Kode: Function Default Argument
Pengenalan Function
Named Argument
Study jam android batch #1
28/01/2023
Function Named Argument
● Kadang ada function yang parameternya banyak sekali
● Hal ini sangat menyulitkan saat kita akan memanggil function tersebut,
kita harus benar-benar tahu urutan parameter di function tersebut
● Untungnya kotlin memiliki fitur yang namanya Named Argument
● Named Argument adalah fitur dimana kita bisa menyebutkan nama
parameter saat memanggil function, dengan demikian kita tidak wajib
tahu posisi tiap parameter
Kode: Function Named Argument
Pengenalan Unit
Returning Function
Study jam android batch #1
28/01/2023
Unit Returning Function
● Function ada 2 jenis, pertama tidak mengembalikan nilai, yang kedua
mengembalikan nilai
● Function-function yang sebelumnya sudah kita buat adalah function yang
tidak mengembalikan nilai
● Sebenarnya, function-function yang sudah kita buat sebelumnya, dia
mengembalikan tipe data Unit, dimana Unit adalah tanda bahwa function
tersebut tidak mengembalikan apa-apa
● Penulisan Unit adalah tidak wajib, namun jika kita menulis tipe data
pengembalian sebuah function, maka secara otomatis dia adalah Unit
Kode: Unit Returning Function
Pengenalan Function
Return Type
Study jam android batch #1
28/01/2023
Function Return Type
● Seperti yang sudah dibahas sebelumnya, bahwa function itu bisa
mengembalikan data
● Untuk memberitahu bahwa function mengembalikan data, kita harus
menuliskan tipe data kembalian dari function tersebut
● Jika function tersebut kita deklarasikan dengan tipe data pengembalian,
maka wajib di dalam function nya kita harus mengembalikan data
● Untuk mengembalikan data dari function, kita bisa menggunakan kata
kunci return, diikuti dengan datanya
Kode: Function Return Type
Pengenalan Single
Expression Function
Study jam android batch #1
28/01/2023
Single Expression Function
● Kadang kita sering membuat function yang sangat sederhana
● Misal function yang hanya berisikan kode blok sederhana, misal hanya 1
baris
● Jika kita mengalami hal seperti ini, kita bisa mengubahnya menjadi single
expression function
● Single expression function adalah deklarasi function hanya dengan 1 baris
kode
● Untuk membuat single expression function, kita hanya butuh tanda =
(sama dengan) setelah deklarasi nama function dan tipe data
pengembalian function
Kode: Single Expression Function
Pengenalan Function
Varags Parameter
Study jam android batch #1
28/01/2023
Function Varargs Parameter
● Parameter yang berada di posisi terakhir, memiliki kemampuan dijadikan
sebuah varargs
● Varargs artinya datanya bisa menerima lebih dari satu input, atau anggap
saja semacam Array.
● Apa bedanya dengan parameter biasa dengan tipe data Array?
○ Jika parameter tipe Array, kita wajib membuat array terlebih
dahulu sebelum mengirimkan ke function
○ Jika parameter menggunakan varargs, kita bisa langsung mengirim
data nya, jika lebih dari satu, cukup gunakan tanda koma
Kode: Function Varags Parameter
Kode: Function Tail Varags Parameter
Pengenalan Extension
Function
Study jam android batch #1
28/01/2023
Extension Function
● Extension function adalah kemampuan menambahkan function pada tipe
data yang sudah ada
● Extension function adalah salah satu fitur yang sangat powerfull, namun
harap bijak menggunakannya, karena jika terlalu banyak digunakan, akan
membuat program sulit dimengerti, karena terlihat seperti magic
● Untuk membuat extension function, kita cukup menambahkan tipe data
pada nama function nya, lalu diikuti dengan tanda . (titik)
● Untuk mengakses data nya di extension function, kita bisa menggunakan
kata kunci this
Kode: Extension Function
Kode: Returning Extension Function
Pengenalan Function Infix
Notation
Study jam android batch #1
28/01/2023
Function Infix Notation
● Infix Notation adalah operasi yang biasa dilakukan di operasi matematika,
dimana dia melakukan operasi terhadap dua data
● Hampir semua operasi matematika adalah infix notation
● Di kotlin, kita bisa membuat function infix notation juga
● Untuk menggunakan function infix notation, tidak wajib menggunakan
tanda . (titik
Syarat Function Infix Notation
● Harus sebagai function member (akan dibahas di OOP) atau function
extension
● Harus memiliki 1 parameter
● Parameter tidak boleh varargs dan tidak boleh memiliki nilai default
Kode: Function Infix Notation
Pengenalan Function
Scope
Study jam android batch #1
28/01/2023
Function Scope
● Function scope adalah ruang lingkup dimana sebuah function bisa diakses
● Saat kita membuat function di dalam file kotlin, maka secara otomatis
function tersebut bisa diakses dari file kotlin manapun
● Jika kita ingin membatasi misalnya sebuah function hanya bisa diakses
dalam function tertentu, maka kita bisa membuat function di dalam
function
Kode: Function Scope
Pengenalan Return If &
When
Study jam android batch #1
28/01/2023
Return If & When
● Kadang sebuah function, kita sering menggunakan If expression atau
when expression, lalu di dalam blok nya kita mengembalikan nilai untuk
sebuah function
● Kotlin mendukung return if atau when, dimana fitur ini bisa
mempermudah kita ketika ingin mengembalikan nilai dalam if atau when
Kode: Return If
Kode: Return When
Pengenalan Recursive
Function
Study jam android batch #1
28/01/2023
Recursive Function
● Recursive function adalah function yang memanggil function dirinya
sendiri
● Kadang dalam pekerjaan, kita sering menemui kasus dimana
menggunakan recursive function lebih mudah dibandingkan tidak
menggunakan recursive function
● Contoh kasus yang lebih mudah diselesaikan menggunakan recursive
adalah Factorial
Kode: Factorial For Loop
Kode: Factorial Recursive Function
Pengenalan Tail
Recursive Function
Study jam android batch #1
28/01/2023
Kelemahan Recursive Function
● Recursive function adalah salah satu kemampuan bagus di Kotlin, namun
sayangnya ada keterbatasan dalam penggunaan recursive
● Jika recursive function yang kita buat, saat dijalankan memanggil function
dirinya sendiri terlalu dalam, maka bisa dimungkinkan akan terjadi error
stack overflow
Stack Overflow Problem
factorial(5)
factorial(5) => 5 * factorial(4)
factorial(5) => 5 * factorial(4) => 4 * factorial(3)
factorial(5) => 5 * factorial(4) => 4 * factorial(3) => 3 * factorial(2)
factorial(5) => 5 * factorial(4) => 4 * factorial(3) => 3 * factorial(2) => 2 * factorial(1)
factorial(5) => 5 * factorial(4) => 4 * factorial(3) => 3 * factorial(2) => 2 * factorial(1) => 1
Tail Recursive Function
● Permasalahan ini di bahasa pemrograman Java tidak bisa ditangani
● Namun di Kotlin, masalah ini ada solusinya, yaitu dengan menggunakan
tail recursive function
● Tail recursive function adalah teknik mengubah recursive function yang
kita buat, menjadi looping biasa ketika dijalankan
● Tidak semua recursive function bisa secara otomatis dibuat menjadi tail
recursive function, ada syarat-syarat nya
Syarat Tail Recursive Function
● Tambahkan tailrec di functionnya
● Saat memanggil function dirinya sendiri, hanya boleh memanggil function
dirinya sendiri, tanpa embel-embel operasi dengan data lain
Kode: Tail Recursive Function
Kode: Tail Recursive Factorial Function
Tail Recursive Factorial
factorialTail(5, 1)
factorialTail(4, 5)
factorialTail(3, 20)
factorialTail(2, 60)
factorialTail(1, 120)
120
Pengenalan Lambda
Expression
Study jam android batch #1
28/01/2023
Lambda Expression
● Function di kotlin adalah first-class citizens, artinya dianggap seperti tipe
data yang lainnya.
● Bisa disimpan di variable, array, bahkan bisa dikirim ke parameter
function itu sendiri
● Lambda expression secara sederhana adalah function yang tidak memiliki
nama
● Biasanya saat kita membuat function, kita akan selalu membuat
menggunakan kata kunci fun dan mendeklarasikan nama function nya
● Dengan lambda expression, kita bisa membuat function tanpa harus
mendeskripsikan function nya
Kode: Lambda Expression
Kode: It Lambda Expression
Kode: Multiple Parameter Lambda
Kode: Lambda Method Reference
Pengenalan Higher-Order
Function
Study jam android batch #1
28/01/2023
Higher-Order Function
● Higher-Order Function adalah function yang menggunakan function
sebagai parameter atau mengembalikan function
● Penggunaan Higher-Order Function kadang berguna ketika kita ingin
membuat function yang general dan ingin mendapatkan input yang
flexible beruba lambda, yang bisa dideklarasikan oleh si user ketika
memanggil function tersebut
Kode: Higher-Order Function
Kode: Trailing Lambda
Pengenalan Anonymous
Function
Study jam android batch #1
28/01/2023
Anonymous Function
● Lambda akan menganggap baris terakhir di blok lambda sebagai hasil
kembalian
● Kadang kita butuh membuat lambda yang se flexible function, dimana kita
bisa mengembalikan hasil dimanapun
● Untuk hal ini, kita bisa menggunakan Anonymous Function
● Anonymous Function sebenarnya mirip dengan lambda, hanya cara
membuatnya saja yang sedikit beda, masih menggunakan kata kunci fun
Kode: Anonymous Function
Kode: Anonymous Function as Parameter
Pengenalan Closure
Study jam android batch #1
28/01/2023
Closure
● Closure adalah kemampuan sebuah function, lambda atau anonymous
function berinteraksi dengan data-data disekitarnya dalam scope yang
sama
● Harap gunakan fitur closure ini dengan bijak saat kita membuat aplikasi
Kode: Closure
Selanjut Belajar Apa?
● Kotlin Object Oriented Programming
● Kotlin Generic
● Kotlin Collection
● Kotlin Coroutine
Referensi Materi
https://docs.google.com/presentation/d/14E169Dpd1q8R7E
KxevYitZM8nBoAh5u4HfVJ8YKR1UU/edit?usp=sharing
Google Developer Student Clubs
Institut Teknologi Telkom Purwokerto
Thank you for joining!
… and see you !

More Related Content

Similar to #4 Introduction Functional Programming in Kotlin.pptx

5 adp fungsi & rekursi
5   adp fungsi & rekursi5   adp fungsi & rekursi
5 adp fungsi & rekursiFaisal Amir
 
Algoritma dan Struktur Data
Algoritma dan Struktur DataAlgoritma dan Struktur Data
Algoritma dan Struktur DataAs Faizin
 
Study Jam Android #4 Maximizing the Power of Kotlin Collection and Kotlin Co...
Study Jam Android #4  Maximizing the Power of Kotlin Collection and Kotlin Co...Study Jam Android #4  Maximizing the Power of Kotlin Collection and Kotlin Co...
Study Jam Android #4 Maximizing the Power of Kotlin Collection and Kotlin Co...gdscuniversitassafin
 
fungsi c++ dalam bahasa pemgroaman C++ .pptx
fungsi c++ dalam bahasa pemgroaman  C++ .pptxfungsi c++ dalam bahasa pemgroaman  C++ .pptx
fungsi c++ dalam bahasa pemgroaman C++ .pptxAllexa3
 
3.EK3-MembuatprogrammenggunakanprosedurdanfungsiV2.pptx
3.EK3-MembuatprogrammenggunakanprosedurdanfungsiV2.pptx3.EK3-MembuatprogrammenggunakanprosedurdanfungsiV2.pptx
3.EK3-MembuatprogrammenggunakanprosedurdanfungsiV2.pptxDenahBLKBandaAceh
 
Pemrograman Mobile Unit 2 : Dasar-dasar Flutter
Pemrograman Mobile Unit 2 : Dasar-dasar FlutterPemrograman Mobile Unit 2 : Dasar-dasar Flutter
Pemrograman Mobile Unit 2 : Dasar-dasar FlutterAkhmad Khanif Zyen
 
Asynchronous Progamming.pptx
Asynchronous Progamming.pptxAsynchronous Progamming.pptx
Asynchronous Progamming.pptxNurBudiNugroho
 
Tugas blog
Tugas blog Tugas blog
Tugas blog ryass
 
Fungsi pada java script
Fungsi pada java scriptFungsi pada java script
Fungsi pada java scriptrahmadina217
 
Mobile Application 2 Pertemuan 1 Pengantar Kotlin
Mobile Application 2 Pertemuan 1 Pengantar KotlinMobile Application 2 Pertemuan 1 Pengantar Kotlin
Mobile Application 2 Pertemuan 1 Pengantar KotlinAkhmad Khanif Zyen
 
If2281 oop_java_1
If2281  oop_java_1If2281  oop_java_1
If2281 oop_java_1Jamil Jamil
 
Penjelasan Fungsi Dalam Program Pemrograman Dasar.pptx
Penjelasan Fungsi Dalam Program Pemrograman Dasar.pptxPenjelasan Fungsi Dalam Program Pemrograman Dasar.pptx
Penjelasan Fungsi Dalam Program Pemrograman Dasar.pptxRazinAkhdhar
 
Pascal tutorialtpascal701
Pascal tutorialtpascal701Pascal tutorialtpascal701
Pascal tutorialtpascal701Alvin Setiawan
 

Similar to #4 Introduction Functional Programming in Kotlin.pptx (20)

5 adp fungsi & rekursi
5   adp fungsi & rekursi5   adp fungsi & rekursi
5 adp fungsi & rekursi
 
Ifc modul 1 (fungsi)
Ifc   modul 1 (fungsi)Ifc   modul 1 (fungsi)
Ifc modul 1 (fungsi)
 
Algoritma dan Struktur Data
Algoritma dan Struktur DataAlgoritma dan Struktur Data
Algoritma dan Struktur Data
 
Function dalam PHP
Function dalam PHPFunction dalam PHP
Function dalam PHP
 
Study Jam Android #4 Maximizing the Power of Kotlin Collection and Kotlin Co...
Study Jam Android #4  Maximizing the Power of Kotlin Collection and Kotlin Co...Study Jam Android #4  Maximizing the Power of Kotlin Collection and Kotlin Co...
Study Jam Android #4 Maximizing the Power of Kotlin Collection and Kotlin Co...
 
fungsi c++ dalam bahasa pemgroaman C++ .pptx
fungsi c++ dalam bahasa pemgroaman  C++ .pptxfungsi c++ dalam bahasa pemgroaman  C++ .pptx
fungsi c++ dalam bahasa pemgroaman C++ .pptx
 
3.EK3-MembuatprogrammenggunakanprosedurdanfungsiV2.pptx
3.EK3-MembuatprogrammenggunakanprosedurdanfungsiV2.pptx3.EK3-MembuatprogrammenggunakanprosedurdanfungsiV2.pptx
3.EK3-MembuatprogrammenggunakanprosedurdanfungsiV2.pptx
 
Pemrograman Mobile Unit 2 : Dasar-dasar Flutter
Pemrograman Mobile Unit 2 : Dasar-dasar FlutterPemrograman Mobile Unit 2 : Dasar-dasar Flutter
Pemrograman Mobile Unit 2 : Dasar-dasar Flutter
 
Pertemuan 11 Fungsi (Function)
Pertemuan 11 Fungsi (Function)Pertemuan 11 Fungsi (Function)
Pertemuan 11 Fungsi (Function)
 
Procedur
ProcedurProcedur
Procedur
 
Asynchronous Progamming.pptx
Asynchronous Progamming.pptxAsynchronous Progamming.pptx
Asynchronous Progamming.pptx
 
Tugas blog
Tugas blog Tugas blog
Tugas blog
 
Fungsi pada java script
Fungsi pada java scriptFungsi pada java script
Fungsi pada java script
 
TUGAS MANDIRI algoritma
TUGAS MANDIRI algoritmaTUGAS MANDIRI algoritma
TUGAS MANDIRI algoritma
 
Fungsi
FungsiFungsi
Fungsi
 
Function
FunctionFunction
Function
 
Mobile Application 2 Pertemuan 1 Pengantar Kotlin
Mobile Application 2 Pertemuan 1 Pengantar KotlinMobile Application 2 Pertemuan 1 Pengantar Kotlin
Mobile Application 2 Pertemuan 1 Pengantar Kotlin
 
If2281 oop_java_1
If2281  oop_java_1If2281  oop_java_1
If2281 oop_java_1
 
Penjelasan Fungsi Dalam Program Pemrograman Dasar.pptx
Penjelasan Fungsi Dalam Program Pemrograman Dasar.pptxPenjelasan Fungsi Dalam Program Pemrograman Dasar.pptx
Penjelasan Fungsi Dalam Program Pemrograman Dasar.pptx
 
Pascal tutorialtpascal701
Pascal tutorialtpascal701Pascal tutorialtpascal701
Pascal tutorialtpascal701
 

More from GDSC2

Info Session_ GDSC Lead Application 2023.pptx
Info Session_ GDSC Lead Application 2023.pptxInfo Session_ GDSC Lead Application 2023.pptx
Info Session_ GDSC Lead Application 2023.pptxGDSC2
 
#4 REST API.pptx
#4 REST API.pptx#4 REST API.pptx
#4 REST API.pptxGDSC2
 
#4 Design Thinking Prototype Usability Testing.pptx
#4 Design Thinking Prototype Usability Testing.pptx#4 Design Thinking Prototype Usability Testing.pptx
#4 Design Thinking Prototype Usability Testing.pptxGDSC2
 
#5 Introduction Fundamental Jetpack Compose.pptx
#5 Introduction Fundamental Jetpack Compose.pptx#5 Introduction Fundamental Jetpack Compose.pptx
#5 Introduction Fundamental Jetpack Compose.pptxGDSC2
 
2023 Google Solution Challenge Kickoff_ From Idea to Execution.pptx
2023 Google Solution Challenge Kickoff_ From Idea to Execution.pptx2023 Google Solution Challenge Kickoff_ From Idea to Execution.pptx
2023 Google Solution Challenge Kickoff_ From Idea to Execution.pptxGDSC2
 
#5 Design Guidline & UI Responsive.pptx
#5 Design Guidline & UI Responsive.pptx#5 Design Guidline & UI Responsive.pptx
#5 Design Guidline & UI Responsive.pptxGDSC2
 
#3 Design Thinking Ideate.pptx
#3 Design Thinking Ideate.pptx#3 Design Thinking Ideate.pptx
#3 Design Thinking Ideate.pptxGDSC2
 
#3 OOP.pptx
#3 OOP.pptx#3 OOP.pptx
#3 OOP.pptxGDSC2
 
Study Jam - Batch 1 UI/UX #2: Design Thinking - Empathize And Define
Study Jam - Batch 1 UI/UX #2: Design Thinking - Empathize And DefineStudy Jam - Batch 1 UI/UX #2: Design Thinking - Empathize And Define
Study Jam - Batch 1 UI/UX #2: Design Thinking - Empathize And DefineGDSC2
 
PPT Study Jam - Batch 1 Golang #2: Basics of Go Syntax and Semantics
PPT Study Jam - Batch 1 Golang #2: Basics of Go Syntax and SemanticsPPT Study Jam - Batch 1 Golang #2: Basics of Go Syntax and Semantics
PPT Study Jam - Batch 1 Golang #2: Basics of Go Syntax and SemanticsGDSC2
 
#1 Introduction To UIUX Design.pptx
#1 Introduction To UIUX Design.pptx#1 Introduction To UIUX Design.pptx
#1 Introduction To UIUX Design.pptxGDSC2
 
#1 Introduction Go.pptx
#1 Introduction Go.pptx#1 Introduction Go.pptx
#1 Introduction Go.pptxGDSC2
 
#1 Introduction Kotlin.pptx
#1 Introduction Kotlin.pptx#1 Introduction Kotlin.pptx
#1 Introduction Kotlin.pptxGDSC2
 
The Future of Modern Android Development.pptx
The Future of Modern Android Development.pptxThe Future of Modern Android Development.pptx
The Future of Modern Android Development.pptxGDSC2
 
Info Session #1_ Introducing GDSC ITTP & Meet our Member.pptx
Info Session #1_ Introducing GDSC ITTP & Meet our Member.pptxInfo Session #1_ Introducing GDSC ITTP & Meet our Member.pptx
Info Session #1_ Introducing GDSC ITTP & Meet our Member.pptxGDSC2
 

More from GDSC2 (15)

Info Session_ GDSC Lead Application 2023.pptx
Info Session_ GDSC Lead Application 2023.pptxInfo Session_ GDSC Lead Application 2023.pptx
Info Session_ GDSC Lead Application 2023.pptx
 
#4 REST API.pptx
#4 REST API.pptx#4 REST API.pptx
#4 REST API.pptx
 
#4 Design Thinking Prototype Usability Testing.pptx
#4 Design Thinking Prototype Usability Testing.pptx#4 Design Thinking Prototype Usability Testing.pptx
#4 Design Thinking Prototype Usability Testing.pptx
 
#5 Introduction Fundamental Jetpack Compose.pptx
#5 Introduction Fundamental Jetpack Compose.pptx#5 Introduction Fundamental Jetpack Compose.pptx
#5 Introduction Fundamental Jetpack Compose.pptx
 
2023 Google Solution Challenge Kickoff_ From Idea to Execution.pptx
2023 Google Solution Challenge Kickoff_ From Idea to Execution.pptx2023 Google Solution Challenge Kickoff_ From Idea to Execution.pptx
2023 Google Solution Challenge Kickoff_ From Idea to Execution.pptx
 
#5 Design Guidline & UI Responsive.pptx
#5 Design Guidline & UI Responsive.pptx#5 Design Guidline & UI Responsive.pptx
#5 Design Guidline & UI Responsive.pptx
 
#3 Design Thinking Ideate.pptx
#3 Design Thinking Ideate.pptx#3 Design Thinking Ideate.pptx
#3 Design Thinking Ideate.pptx
 
#3 OOP.pptx
#3 OOP.pptx#3 OOP.pptx
#3 OOP.pptx
 
Study Jam - Batch 1 UI/UX #2: Design Thinking - Empathize And Define
Study Jam - Batch 1 UI/UX #2: Design Thinking - Empathize And DefineStudy Jam - Batch 1 UI/UX #2: Design Thinking - Empathize And Define
Study Jam - Batch 1 UI/UX #2: Design Thinking - Empathize And Define
 
PPT Study Jam - Batch 1 Golang #2: Basics of Go Syntax and Semantics
PPT Study Jam - Batch 1 Golang #2: Basics of Go Syntax and SemanticsPPT Study Jam - Batch 1 Golang #2: Basics of Go Syntax and Semantics
PPT Study Jam - Batch 1 Golang #2: Basics of Go Syntax and Semantics
 
#1 Introduction To UIUX Design.pptx
#1 Introduction To UIUX Design.pptx#1 Introduction To UIUX Design.pptx
#1 Introduction To UIUX Design.pptx
 
#1 Introduction Go.pptx
#1 Introduction Go.pptx#1 Introduction Go.pptx
#1 Introduction Go.pptx
 
#1 Introduction Kotlin.pptx
#1 Introduction Kotlin.pptx#1 Introduction Kotlin.pptx
#1 Introduction Kotlin.pptx
 
The Future of Modern Android Development.pptx
The Future of Modern Android Development.pptxThe Future of Modern Android Development.pptx
The Future of Modern Android Development.pptx
 
Info Session #1_ Introducing GDSC ITTP & Meet our Member.pptx
Info Session #1_ Introducing GDSC ITTP & Meet our Member.pptxInfo Session #1_ Introducing GDSC ITTP & Meet our Member.pptx
Info Session #1_ Introducing GDSC ITTP & Meet our Member.pptx
 

Recently uploaded

contoh penulisan nomor skl pada surat kelulusan .pptx
contoh penulisan nomor skl pada surat kelulusan  .pptxcontoh penulisan nomor skl pada surat kelulusan  .pptx
contoh penulisan nomor skl pada surat kelulusan .pptxHR MUSLIM
 
Modul 1.2.a.8 Koneksi antar materi 1.2.pdf
Modul 1.2.a.8 Koneksi antar materi 1.2.pdfModul 1.2.a.8 Koneksi antar materi 1.2.pdf
Modul 1.2.a.8 Koneksi antar materi 1.2.pdfSitiJulaeha820399
 
soal AKM Mata Pelajaran PPKN kelas .pptx
soal AKM Mata Pelajaran PPKN kelas .pptxsoal AKM Mata Pelajaran PPKN kelas .pptx
soal AKM Mata Pelajaran PPKN kelas .pptxazhari524
 
PELAKSANAAN + Link2 Materi Pelatihan "Teknik Perhitungan & Verifikasi TKDN & ...
PELAKSANAAN + Link2 Materi Pelatihan "Teknik Perhitungan & Verifikasi TKDN & ...PELAKSANAAN + Link2 Materi Pelatihan "Teknik Perhitungan & Verifikasi TKDN & ...
PELAKSANAAN + Link2 Materi Pelatihan "Teknik Perhitungan & Verifikasi TKDN & ...Kanaidi ken
 
tugas 1 anak berkebutihan khusus pelajaran semester 6 jawaban tuton 1.docx
tugas 1 anak berkebutihan khusus pelajaran semester 6 jawaban tuton 1.docxtugas 1 anak berkebutihan khusus pelajaran semester 6 jawaban tuton 1.docx
tugas 1 anak berkebutihan khusus pelajaran semester 6 jawaban tuton 1.docxmawan5982
 
CAPACITY BUILDING Materi Saat di Lokakarya 7
CAPACITY BUILDING Materi Saat di Lokakarya 7CAPACITY BUILDING Materi Saat di Lokakarya 7
CAPACITY BUILDING Materi Saat di Lokakarya 7IwanSumantri7
 
Latihan Soal bahasa Indonesia untuk anak sekolah sekelas SMP atau pun sederajat
Latihan Soal bahasa Indonesia untuk anak sekolah sekelas SMP atau pun sederajatLatihan Soal bahasa Indonesia untuk anak sekolah sekelas SMP atau pun sederajat
Latihan Soal bahasa Indonesia untuk anak sekolah sekelas SMP atau pun sederajatArfiGraphy
 
Bab 6 Kreatif Mengungap Rasa dan Realitas.pdf
Bab 6 Kreatif Mengungap Rasa dan Realitas.pdfBab 6 Kreatif Mengungap Rasa dan Realitas.pdf
Bab 6 Kreatif Mengungap Rasa dan Realitas.pdfbibizaenab
 
Sesi 1_PPT Ruang Kolaborasi Modul 1.3 _ ke 1_PGP Angkatan 10.pptx
Sesi 1_PPT Ruang Kolaborasi Modul 1.3 _ ke 1_PGP Angkatan 10.pptxSesi 1_PPT Ruang Kolaborasi Modul 1.3 _ ke 1_PGP Angkatan 10.pptx
Sesi 1_PPT Ruang Kolaborasi Modul 1.3 _ ke 1_PGP Angkatan 10.pptxSovyOktavianti
 
Modul Ajar Pendidikan Pancasila Kelas 5 Fase C
Modul Ajar Pendidikan Pancasila Kelas 5 Fase CModul Ajar Pendidikan Pancasila Kelas 5 Fase C
Modul Ajar Pendidikan Pancasila Kelas 5 Fase CAbdiera
 
Tugas 1 pembaruan dlm pembelajaran jawaban tugas tuton 1.docx
Tugas 1 pembaruan dlm pembelajaran jawaban tugas tuton 1.docxTugas 1 pembaruan dlm pembelajaran jawaban tugas tuton 1.docx
Tugas 1 pembaruan dlm pembelajaran jawaban tugas tuton 1.docxmawan5982
 
Materi Pertemuan Materi Pertemuan 7.pptx
Materi Pertemuan Materi Pertemuan 7.pptxMateri Pertemuan Materi Pertemuan 7.pptx
Materi Pertemuan Materi Pertemuan 7.pptxRezaWahyuni6
 
Refleksi Mandiri Modul 1.3 - KANVAS BAGJA.pptx.pptx
Refleksi Mandiri Modul 1.3 - KANVAS BAGJA.pptx.pptxRefleksi Mandiri Modul 1.3 - KANVAS BAGJA.pptx.pptx
Refleksi Mandiri Modul 1.3 - KANVAS BAGJA.pptx.pptxIrfanAudah1
 
Dinamika Hidrosfer geografi kelas X genap
Dinamika Hidrosfer geografi kelas X genapDinamika Hidrosfer geografi kelas X genap
Dinamika Hidrosfer geografi kelas X genapsefrida3
 
tugas 1 tutorial online anak berkebutuhan khusus di SD
tugas 1 tutorial online anak berkebutuhan khusus di SDtugas 1 tutorial online anak berkebutuhan khusus di SD
tugas 1 tutorial online anak berkebutuhan khusus di SDmawan5982
 
Laporan Guru Piket untuk Pengisian RHK Guru Pengelolaan KInerja Guru di PMM
Laporan Guru Piket untuk Pengisian RHK Guru Pengelolaan KInerja Guru di PMMLaporan Guru Piket untuk Pengisian RHK Guru Pengelolaan KInerja Guru di PMM
Laporan Guru Piket untuk Pengisian RHK Guru Pengelolaan KInerja Guru di PMMmulyadia43
 
PEMANASAN GLOBAL - MATERI KELAS X MA.pptx
PEMANASAN GLOBAL - MATERI KELAS X MA.pptxPEMANASAN GLOBAL - MATERI KELAS X MA.pptx
PEMANASAN GLOBAL - MATERI KELAS X MA.pptxsukmakarim1998
 
2 KISI-KISI Ujian Sekolah Dasar mata pelajaranPPKn 2024.pdf
2 KISI-KISI Ujian Sekolah Dasar  mata pelajaranPPKn 2024.pdf2 KISI-KISI Ujian Sekolah Dasar  mata pelajaranPPKn 2024.pdf
2 KISI-KISI Ujian Sekolah Dasar mata pelajaranPPKn 2024.pdfsdn3jatiblora
 
Paparan Refleksi Lokakarya program sekolah penggerak.pptx
Paparan Refleksi Lokakarya program sekolah penggerak.pptxPaparan Refleksi Lokakarya program sekolah penggerak.pptx
Paparan Refleksi Lokakarya program sekolah penggerak.pptxIgitNuryana13
 
Perumusan Visi dan Prakarsa Perubahan.pptx
Perumusan Visi dan Prakarsa Perubahan.pptxPerumusan Visi dan Prakarsa Perubahan.pptx
Perumusan Visi dan Prakarsa Perubahan.pptxadimulianta1
 

Recently uploaded (20)

contoh penulisan nomor skl pada surat kelulusan .pptx
contoh penulisan nomor skl pada surat kelulusan  .pptxcontoh penulisan nomor skl pada surat kelulusan  .pptx
contoh penulisan nomor skl pada surat kelulusan .pptx
 
Modul 1.2.a.8 Koneksi antar materi 1.2.pdf
Modul 1.2.a.8 Koneksi antar materi 1.2.pdfModul 1.2.a.8 Koneksi antar materi 1.2.pdf
Modul 1.2.a.8 Koneksi antar materi 1.2.pdf
 
soal AKM Mata Pelajaran PPKN kelas .pptx
soal AKM Mata Pelajaran PPKN kelas .pptxsoal AKM Mata Pelajaran PPKN kelas .pptx
soal AKM Mata Pelajaran PPKN kelas .pptx
 
PELAKSANAAN + Link2 Materi Pelatihan "Teknik Perhitungan & Verifikasi TKDN & ...
PELAKSANAAN + Link2 Materi Pelatihan "Teknik Perhitungan & Verifikasi TKDN & ...PELAKSANAAN + Link2 Materi Pelatihan "Teknik Perhitungan & Verifikasi TKDN & ...
PELAKSANAAN + Link2 Materi Pelatihan "Teknik Perhitungan & Verifikasi TKDN & ...
 
tugas 1 anak berkebutihan khusus pelajaran semester 6 jawaban tuton 1.docx
tugas 1 anak berkebutihan khusus pelajaran semester 6 jawaban tuton 1.docxtugas 1 anak berkebutihan khusus pelajaran semester 6 jawaban tuton 1.docx
tugas 1 anak berkebutihan khusus pelajaran semester 6 jawaban tuton 1.docx
 
CAPACITY BUILDING Materi Saat di Lokakarya 7
CAPACITY BUILDING Materi Saat di Lokakarya 7CAPACITY BUILDING Materi Saat di Lokakarya 7
CAPACITY BUILDING Materi Saat di Lokakarya 7
 
Latihan Soal bahasa Indonesia untuk anak sekolah sekelas SMP atau pun sederajat
Latihan Soal bahasa Indonesia untuk anak sekolah sekelas SMP atau pun sederajatLatihan Soal bahasa Indonesia untuk anak sekolah sekelas SMP atau pun sederajat
Latihan Soal bahasa Indonesia untuk anak sekolah sekelas SMP atau pun sederajat
 
Bab 6 Kreatif Mengungap Rasa dan Realitas.pdf
Bab 6 Kreatif Mengungap Rasa dan Realitas.pdfBab 6 Kreatif Mengungap Rasa dan Realitas.pdf
Bab 6 Kreatif Mengungap Rasa dan Realitas.pdf
 
Sesi 1_PPT Ruang Kolaborasi Modul 1.3 _ ke 1_PGP Angkatan 10.pptx
Sesi 1_PPT Ruang Kolaborasi Modul 1.3 _ ke 1_PGP Angkatan 10.pptxSesi 1_PPT Ruang Kolaborasi Modul 1.3 _ ke 1_PGP Angkatan 10.pptx
Sesi 1_PPT Ruang Kolaborasi Modul 1.3 _ ke 1_PGP Angkatan 10.pptx
 
Modul Ajar Pendidikan Pancasila Kelas 5 Fase C
Modul Ajar Pendidikan Pancasila Kelas 5 Fase CModul Ajar Pendidikan Pancasila Kelas 5 Fase C
Modul Ajar Pendidikan Pancasila Kelas 5 Fase C
 
Tugas 1 pembaruan dlm pembelajaran jawaban tugas tuton 1.docx
Tugas 1 pembaruan dlm pembelajaran jawaban tugas tuton 1.docxTugas 1 pembaruan dlm pembelajaran jawaban tugas tuton 1.docx
Tugas 1 pembaruan dlm pembelajaran jawaban tugas tuton 1.docx
 
Materi Pertemuan Materi Pertemuan 7.pptx
Materi Pertemuan Materi Pertemuan 7.pptxMateri Pertemuan Materi Pertemuan 7.pptx
Materi Pertemuan Materi Pertemuan 7.pptx
 
Refleksi Mandiri Modul 1.3 - KANVAS BAGJA.pptx.pptx
Refleksi Mandiri Modul 1.3 - KANVAS BAGJA.pptx.pptxRefleksi Mandiri Modul 1.3 - KANVAS BAGJA.pptx.pptx
Refleksi Mandiri Modul 1.3 - KANVAS BAGJA.pptx.pptx
 
Dinamika Hidrosfer geografi kelas X genap
Dinamika Hidrosfer geografi kelas X genapDinamika Hidrosfer geografi kelas X genap
Dinamika Hidrosfer geografi kelas X genap
 
tugas 1 tutorial online anak berkebutuhan khusus di SD
tugas 1 tutorial online anak berkebutuhan khusus di SDtugas 1 tutorial online anak berkebutuhan khusus di SD
tugas 1 tutorial online anak berkebutuhan khusus di SD
 
Laporan Guru Piket untuk Pengisian RHK Guru Pengelolaan KInerja Guru di PMM
Laporan Guru Piket untuk Pengisian RHK Guru Pengelolaan KInerja Guru di PMMLaporan Guru Piket untuk Pengisian RHK Guru Pengelolaan KInerja Guru di PMM
Laporan Guru Piket untuk Pengisian RHK Guru Pengelolaan KInerja Guru di PMM
 
PEMANASAN GLOBAL - MATERI KELAS X MA.pptx
PEMANASAN GLOBAL - MATERI KELAS X MA.pptxPEMANASAN GLOBAL - MATERI KELAS X MA.pptx
PEMANASAN GLOBAL - MATERI KELAS X MA.pptx
 
2 KISI-KISI Ujian Sekolah Dasar mata pelajaranPPKn 2024.pdf
2 KISI-KISI Ujian Sekolah Dasar  mata pelajaranPPKn 2024.pdf2 KISI-KISI Ujian Sekolah Dasar  mata pelajaranPPKn 2024.pdf
2 KISI-KISI Ujian Sekolah Dasar mata pelajaranPPKn 2024.pdf
 
Paparan Refleksi Lokakarya program sekolah penggerak.pptx
Paparan Refleksi Lokakarya program sekolah penggerak.pptxPaparan Refleksi Lokakarya program sekolah penggerak.pptx
Paparan Refleksi Lokakarya program sekolah penggerak.pptx
 
Perumusan Visi dan Prakarsa Perubahan.pptx
Perumusan Visi dan Prakarsa Perubahan.pptxPerumusan Visi dan Prakarsa Perubahan.pptx
Perumusan Visi dan Prakarsa Perubahan.pptx
 

#4 Introduction Functional Programming in Kotlin.pptx

  • 1.
  • 2. “The earlier you start working on something, the earlier you will see results” Speakers Abdul Hafiz Ramadan // (C&D) linkedin.com/in/abdul-hafiz-ramadan Letakkan foto
  • 3. Introduction Functional Programming in Kotlin Study jam android batch #1 28/01/2023
  • 4. Agenda Hari Ini ● Function ● Function Parameter ● Function Default Argument ● Function Named Argument ● Unit Returning Function ● Function Return Type ● Single Expression Function ● Function Varargs Parameter ● Extension Function
  • 5. Agenda Hari Ini ● Function Infix Notation ● Function Scope ● Return If & When ● Recursive Function ● Tail Recursive Function ● Lambda Expression ● Higher-Order Function ● Anonymous Function ● Closure
  • 6. Pengenalan Function Study jam android batch #1 28/01/2023
  • 7. Function ● Sebelumnya kita sudah mengenal sebuah function yang wajib dibuat agar program Kotlin bisa berjalan, yaitu function main ● Function adalah sebuah blok kode yang sengaja dibuat dalam program agar bisa digunakan berulang-ulang ● Cara membuat function di Kotlin sangat sederhana, hanya dengan menggunakan kata kunci fun lalu diikuti dengan nama function nya dan blok kode isi function nya ● Setelah membuat function, kita bisa mengeksekusi function tersebut dengan memanggilnya menggunakan kata kunci nama function nya
  • 9. Pengenalan Function Parameter Study jam android batch #1 28/01/2023
  • 10. Function Parameter ● Saat membuat function, kadang-kadang kita membutuhkan data dari luar, atau kita sebut parameter. ● Di Kotlin, kita bisa menambahkan parameter di function, bisa lebih dari satu ● Parameter tidaklah wajib, jadi kita bisa membuat function tanpa parameter seperti sebelumnya yang sudah kita buat ● Namun jika kita menambahkan parameter di function, maka ketika memanggil function tersebut, kita wajib memasukkan data ke parameternya
  • 12. Pengenalan Function Default Argument Study jam android batch #1 28/01/2023
  • 13. Function Default Argument ● Di Kotlin, function parameter wajib diisi ketika memanggil function ● Namun kita juga bisa memasukkan nilai default pada parameter, dengan demikian saat memanggil function tersebut, kita tidak wajib memasukkan nilai pada parameter nya ● Default parameter ini cocok pada jenis parameter yang sekiranya memang tidak wajib untuk diisi
  • 15. Pengenalan Function Named Argument Study jam android batch #1 28/01/2023
  • 16. Function Named Argument ● Kadang ada function yang parameternya banyak sekali ● Hal ini sangat menyulitkan saat kita akan memanggil function tersebut, kita harus benar-benar tahu urutan parameter di function tersebut ● Untungnya kotlin memiliki fitur yang namanya Named Argument ● Named Argument adalah fitur dimana kita bisa menyebutkan nama parameter saat memanggil function, dengan demikian kita tidak wajib tahu posisi tiap parameter
  • 18. Pengenalan Unit Returning Function Study jam android batch #1 28/01/2023
  • 19. Unit Returning Function ● Function ada 2 jenis, pertama tidak mengembalikan nilai, yang kedua mengembalikan nilai ● Function-function yang sebelumnya sudah kita buat adalah function yang tidak mengembalikan nilai ● Sebenarnya, function-function yang sudah kita buat sebelumnya, dia mengembalikan tipe data Unit, dimana Unit adalah tanda bahwa function tersebut tidak mengembalikan apa-apa ● Penulisan Unit adalah tidak wajib, namun jika kita menulis tipe data pengembalian sebuah function, maka secara otomatis dia adalah Unit
  • 21. Pengenalan Function Return Type Study jam android batch #1 28/01/2023
  • 22. Function Return Type ● Seperti yang sudah dibahas sebelumnya, bahwa function itu bisa mengembalikan data ● Untuk memberitahu bahwa function mengembalikan data, kita harus menuliskan tipe data kembalian dari function tersebut ● Jika function tersebut kita deklarasikan dengan tipe data pengembalian, maka wajib di dalam function nya kita harus mengembalikan data ● Untuk mengembalikan data dari function, kita bisa menggunakan kata kunci return, diikuti dengan datanya
  • 24. Pengenalan Single Expression Function Study jam android batch #1 28/01/2023
  • 25. Single Expression Function ● Kadang kita sering membuat function yang sangat sederhana ● Misal function yang hanya berisikan kode blok sederhana, misal hanya 1 baris ● Jika kita mengalami hal seperti ini, kita bisa mengubahnya menjadi single expression function ● Single expression function adalah deklarasi function hanya dengan 1 baris kode ● Untuk membuat single expression function, kita hanya butuh tanda = (sama dengan) setelah deklarasi nama function dan tipe data pengembalian function
  • 27. Pengenalan Function Varags Parameter Study jam android batch #1 28/01/2023
  • 28. Function Varargs Parameter ● Parameter yang berada di posisi terakhir, memiliki kemampuan dijadikan sebuah varargs ● Varargs artinya datanya bisa menerima lebih dari satu input, atau anggap saja semacam Array. ● Apa bedanya dengan parameter biasa dengan tipe data Array? ○ Jika parameter tipe Array, kita wajib membuat array terlebih dahulu sebelum mengirimkan ke function ○ Jika parameter menggunakan varargs, kita bisa langsung mengirim data nya, jika lebih dari satu, cukup gunakan tanda koma
  • 30. Kode: Function Tail Varags Parameter
  • 31. Pengenalan Extension Function Study jam android batch #1 28/01/2023
  • 32. Extension Function ● Extension function adalah kemampuan menambahkan function pada tipe data yang sudah ada ● Extension function adalah salah satu fitur yang sangat powerfull, namun harap bijak menggunakannya, karena jika terlalu banyak digunakan, akan membuat program sulit dimengerti, karena terlihat seperti magic ● Untuk membuat extension function, kita cukup menambahkan tipe data pada nama function nya, lalu diikuti dengan tanda . (titik) ● Untuk mengakses data nya di extension function, kita bisa menggunakan kata kunci this
  • 35. Pengenalan Function Infix Notation Study jam android batch #1 28/01/2023
  • 36. Function Infix Notation ● Infix Notation adalah operasi yang biasa dilakukan di operasi matematika, dimana dia melakukan operasi terhadap dua data ● Hampir semua operasi matematika adalah infix notation ● Di kotlin, kita bisa membuat function infix notation juga ● Untuk menggunakan function infix notation, tidak wajib menggunakan tanda . (titik
  • 37. Syarat Function Infix Notation ● Harus sebagai function member (akan dibahas di OOP) atau function extension ● Harus memiliki 1 parameter ● Parameter tidak boleh varargs dan tidak boleh memiliki nilai default
  • 39. Pengenalan Function Scope Study jam android batch #1 28/01/2023
  • 40. Function Scope ● Function scope adalah ruang lingkup dimana sebuah function bisa diakses ● Saat kita membuat function di dalam file kotlin, maka secara otomatis function tersebut bisa diakses dari file kotlin manapun ● Jika kita ingin membatasi misalnya sebuah function hanya bisa diakses dalam function tertentu, maka kita bisa membuat function di dalam function
  • 42. Pengenalan Return If & When Study jam android batch #1 28/01/2023
  • 43. Return If & When ● Kadang sebuah function, kita sering menggunakan If expression atau when expression, lalu di dalam blok nya kita mengembalikan nilai untuk sebuah function ● Kotlin mendukung return if atau when, dimana fitur ini bisa mempermudah kita ketika ingin mengembalikan nilai dalam if atau when
  • 46. Pengenalan Recursive Function Study jam android batch #1 28/01/2023
  • 47. Recursive Function ● Recursive function adalah function yang memanggil function dirinya sendiri ● Kadang dalam pekerjaan, kita sering menemui kasus dimana menggunakan recursive function lebih mudah dibandingkan tidak menggunakan recursive function ● Contoh kasus yang lebih mudah diselesaikan menggunakan recursive adalah Factorial
  • 50. Pengenalan Tail Recursive Function Study jam android batch #1 28/01/2023
  • 51. Kelemahan Recursive Function ● Recursive function adalah salah satu kemampuan bagus di Kotlin, namun sayangnya ada keterbatasan dalam penggunaan recursive ● Jika recursive function yang kita buat, saat dijalankan memanggil function dirinya sendiri terlalu dalam, maka bisa dimungkinkan akan terjadi error stack overflow
  • 52. Stack Overflow Problem factorial(5) factorial(5) => 5 * factorial(4) factorial(5) => 5 * factorial(4) => 4 * factorial(3) factorial(5) => 5 * factorial(4) => 4 * factorial(3) => 3 * factorial(2) factorial(5) => 5 * factorial(4) => 4 * factorial(3) => 3 * factorial(2) => 2 * factorial(1) factorial(5) => 5 * factorial(4) => 4 * factorial(3) => 3 * factorial(2) => 2 * factorial(1) => 1
  • 53. Tail Recursive Function ● Permasalahan ini di bahasa pemrograman Java tidak bisa ditangani ● Namun di Kotlin, masalah ini ada solusinya, yaitu dengan menggunakan tail recursive function ● Tail recursive function adalah teknik mengubah recursive function yang kita buat, menjadi looping biasa ketika dijalankan ● Tidak semua recursive function bisa secara otomatis dibuat menjadi tail recursive function, ada syarat-syarat nya
  • 54. Syarat Tail Recursive Function ● Tambahkan tailrec di functionnya ● Saat memanggil function dirinya sendiri, hanya boleh memanggil function dirinya sendiri, tanpa embel-embel operasi dengan data lain
  • 56. Kode: Tail Recursive Factorial Function
  • 57. Tail Recursive Factorial factorialTail(5, 1) factorialTail(4, 5) factorialTail(3, 20) factorialTail(2, 60) factorialTail(1, 120) 120
  • 58. Pengenalan Lambda Expression Study jam android batch #1 28/01/2023
  • 59. Lambda Expression ● Function di kotlin adalah first-class citizens, artinya dianggap seperti tipe data yang lainnya. ● Bisa disimpan di variable, array, bahkan bisa dikirim ke parameter function itu sendiri ● Lambda expression secara sederhana adalah function yang tidak memiliki nama ● Biasanya saat kita membuat function, kita akan selalu membuat menggunakan kata kunci fun dan mendeklarasikan nama function nya ● Dengan lambda expression, kita bisa membuat function tanpa harus mendeskripsikan function nya
  • 61. Kode: It Lambda Expression
  • 63. Kode: Lambda Method Reference
  • 64. Pengenalan Higher-Order Function Study jam android batch #1 28/01/2023
  • 65. Higher-Order Function ● Higher-Order Function adalah function yang menggunakan function sebagai parameter atau mengembalikan function ● Penggunaan Higher-Order Function kadang berguna ketika kita ingin membuat function yang general dan ingin mendapatkan input yang flexible beruba lambda, yang bisa dideklarasikan oleh si user ketika memanggil function tersebut
  • 68. Pengenalan Anonymous Function Study jam android batch #1 28/01/2023
  • 69. Anonymous Function ● Lambda akan menganggap baris terakhir di blok lambda sebagai hasil kembalian ● Kadang kita butuh membuat lambda yang se flexible function, dimana kita bisa mengembalikan hasil dimanapun ● Untuk hal ini, kita bisa menggunakan Anonymous Function ● Anonymous Function sebenarnya mirip dengan lambda, hanya cara membuatnya saja yang sedikit beda, masih menggunakan kata kunci fun
  • 71. Kode: Anonymous Function as Parameter
  • 72. Pengenalan Closure Study jam android batch #1 28/01/2023
  • 73. Closure ● Closure adalah kemampuan sebuah function, lambda atau anonymous function berinteraksi dengan data-data disekitarnya dalam scope yang sama ● Harap gunakan fitur closure ini dengan bijak saat kita membuat aplikasi
  • 75. Selanjut Belajar Apa? ● Kotlin Object Oriented Programming ● Kotlin Generic ● Kotlin Collection ● Kotlin Coroutine
  • 77. Google Developer Student Clubs Institut Teknologi Telkom Purwokerto
  • 78. Thank you for joining! … and see you !