Masukkan Password
29 3.0 What is Function? in Dart Programming Language | Functions | Learn Dart Language | Dart Course
Di materi ini kita mulai Chapter 3: Functions (Fungsi) dalam Dart. Ini adalah materi yang sangat penting karena hampir semua program yang lebih besar akan menggunakan fungsi.
Ada beberapa salah tangkap di caption seperti βDOTβ = Dart, βwhite/VIβ = void, dan βlower caml caseβ = lower camel case.
1. Apa itu Function?
Secara sederhana:
Function adalah sekumpulan kode yang dibuat untuk melakukan tugas tertentu.
Misalnya kita sering membutuhkan operasi:
menjumlahkan dua angka
Daripada menulis kode penjumlahan berulang-ulang, kita bisa membuat fungsi:
void add() {
// kode untuk menjumlahkan
}
Kemudian kapan pun kita membutuhkan penjumlahan, kita tinggal memanggil:
add();
Jadi fungsi bisa dianggap seperti mesin kecil.
Input
β
FUNCTION
β
Output
Contohnya:
10 + 20
β
add()
β
30
2. Kenapa kita membutuhkan Function?
Ada beberapa keuntungan utama.
A. Menghindari pengulangan kode
Misalnya kita ingin menjumlahkan angka di banyak tempat.
Tanpa function:
print(10 + 20);
print(30 + 40);
print(50 + 60);
Kalau logikanya semakin kompleks, kode akan menjadi panjang dan berulang.
Dengan function, kita bisa membuat satu fungsi:
int add(int a, int b) {
return a + b;
}
Kemudian:
print(add(10, 20));
print(add(30, 40));
print(add(50, 60));
Logika penjumlahan hanya ditulis satu kali.
3. Function membuat program lebih mudah dibaca
Bayangkan kita mempunyai program besar.
Daripada main() berisi ratusan baris kode, kita bisa memecahnya:
void main() {
login();
calculateTotal();
printResult();
}
Dari namanya saja kita sudah bisa mengetahui kira-kira apa yang dilakukan program.
Ini membuat kode lebih rapi dan mudah dipahami.
4. Function juga membantu memecah program kompleks
Misalnya kita membuat aplikasi toko.
Daripada semuanya dimasukkan ke main():
login
hitung harga
hitung diskon
hitung pajak
cetak invoice
kita bisa membuat:
void login() {}
void calculatePrice() {}
void calculateDiscount() {}
void calculateTax() {}
void printInvoice() {}
Program besar menjadi kumpulan fungsi-fungsi kecil.
Konsepnya:
PROGRAM BESAR
β
βββββββββββββββ
β login β
βββββββββββββββ€
β calculate β
βββββββββββββββ€
β discount β
βββββββββββββββ€
β tax β
βββββββββββββββ€
β invoice β
βββββββββββββββ
Ini adalah salah satu prinsip penting dalam programming:
Pecah masalah besar menjadi masalah-masalah kecil.
5. Function main() juga merupakan Function
Ini bagian yang penting.
Kita sering menulis:
void main() {
print("Hello");
}
main() sebenarnya adalah sebuah function.
Dart memulai eksekusi program dari:
main()
Jadi:
void main() {
print("Hello");
}
dapat kita pahami:
void β return type
main β nama function
() β parameter
{} β body function
6. Membuat Function sendiri
Contoh dari video:
void myFunction() {
print("I am function");
}
Di sini kita membuat function bernama:
myFunction
dan isinya:
print("I am function");
Tetapi ada hal penting.
Membuat function tidak berarti function tersebut langsung dijalankan.
7. Function harus dipanggil
Misalnya:
void myFunction() {
print("I am function");
}
void main() {
}
Tidak ada output.
Kenapa?
Karena myFunction() hanya didefinisikan, tetapi belum dipanggil.
Untuk menjalankannya:
void myFunction() {
print("I am function");
}
void main() {
myFunction();
}
Sekarang output:
I am function
8. Bedakan “membuat” dan “memanggil” Function
Ini penting untuk pemula.
Membuat function
void myFunction() {
print("Hello");
}
Artinya:
Saya membuat sebuah function bernama
myFunction.
Memanggil function
myFunction();
Artinya:
Jalankan function
myFunction.
Jadi:
Definisi
β
void myFunction() {
...
}
Pemanggilan
β
myFunction();
9. Struktur Function
Secara umum:
returnType functionName(parameters) {
// body
}
Contoh:
int add(int a, int b) {
return a + b;
}
Mari kita pecah.
int
β
return type
add
β
function name
(int a, int b)
β
parameters
{
return a + b;
}
β
body
Ada 4 bagian penting yang perlu kamu pahami:
- Return type
- Function name
- Parameter
- Function body
10. Return Type
Return type menunjukkan tipe data yang dikembalikan oleh function.
Contohnya:
int
berarti function mengembalikan int.
String
berarti function mengembalikan String.
double
berarti function mengembalikan double.
Sedangkan:
void
berarti function tidak mengembalikan nilai.
11. void
Contoh:
void sayHello() {
print("Hello");
}
Function ini hanya melakukan sesuatu:
print Hello
dan tidak memberikan nilai kembali kepada pemanggil.
Kita bisa memanggil:
sayHello();
tetapi tidak mendapatkan nilai seperti String, int, atau double.
12. Function yang mengembalikan String
Misalnya:
String myFunction() {
return "I am a function";
}
Perhatikan:
String
Artinya function harus mengembalikan String.
Dan:
return "I am a function";
memberikan String tersebut kembali kepada pemanggil.
13. Apa fungsi return?
return berarti:
Kembalikan nilai dari function kepada bagian program yang memanggilnya.
Misalnya:
String getName() {
return "Budi";
}
Ketika:
getName();
dipanggil, function menghasilkan:
"Budi"
Kita bisa menyimpannya:
String name = getName();
Sekarang:
name = "Budi"
14. Contoh sesuai materi
String myFunction() {
return "I am a function";
}
void main() {
String str = myFunction();
print(str);
}
Alurnya:
main()
β
myFunction()
β
return "I am a function"
β
disimpan ke str
β
print(str)
Output:
I am a function
15. Nilai return bisa langsung digunakan
Kita tidak harus menyimpan hasilnya ke variable.
Misalnya:
print(myFunction());
Karena myFunction() menghasilkan String, hasilnya bisa langsung diberikan kepada print().
Contoh:
String myFunction() {
return "I am a function";
}
void main() {
print(myFunction());
}
Hasil:
I am a function
Jadi function bisa dianggap sebagai penghasil nilai.
16. Return type harus sesuai
Ini bagian yang sangat penting.
Misalnya kita menulis:
int myFunction() {
return "Hello";
}
Ini salah.
Kenapa?
Karena kita mengatakan:
int myFunction()
Artinya:
Function ini harus mengembalikan
int.
Tetapi kita memberikan:
"Hello"
yang merupakan String.
Dart akan menghasilkan error tipe data.
Yang benar
Kalau ingin mengembalikan String:
String myFunction() {
return "Hello";
}
Kalau ingin mengembalikan integer:
int myFunction() {
return 10;
}
Kalau ingin mengembalikan double:
double myFunction() {
return 10.5;
}
17. Contoh function dengan int
int getNumber() {
return 10;
}
Kemudian:
void main() {
print(getNumber());
}
Hasil:
10
Karena:
getNumber()
β
10
18. Function name
Bagian berikutnya adalah nama function.
Contoh:
void sayHello() {}
Nama function:
sayHello
Kita bebas menentukan nama function selama mengikuti aturan penamaan identifier Dart.
Tetapi video menyarankan menggunakan:
lower camel case
19. Apa itu lower camel case?
Contohnya:
calculateTotal
getUserName
printResult
calculateDiscount
myFunction
Huruf pertama menggunakan huruf kecil.
Kalau terdiri dari beberapa kata, kata berikutnya diawali huruf besar.
Contoh:
calculateTotal
bukan:
calculate_total
untuk gaya penamaan yang sedang dibahas di materi.
Contoh:
void calculateTotal() {
}
Nama:
calculateTotal
adalah lower camel case.
20. Parameter Function
Sekarang masuk ke konsep yang sangat penting:
Parameter adalah input yang diterima oleh function.
Misalnya kita ingin membuat function untuk menjumlahkan dua angka.
Kita ingin:
10 + 20 = 30
Function-nya:
int add(int value1, int value2) {
return value1 + value2;
}
Di sini:
value1
value2
adalah parameter.
21. Analogi parameter
Bayangkan function seperti mesin jus.
Apel + Jeruk
β
MESIN
β
Jus
Apel dan jeruk adalah input.
Dalam function:
int add(int value1, int value2) {
return value1 + value2;
}
Kita punya:
value1 + value2
β
FUNCTION
β
hasil
Jadi parameter memungkinkan function menerima data dari luar.
22. Parameter harus memiliki tipe
Dalam Dart, kita bisa menentukan tipe parameter:
int add(int value1, int value2) {
return value1 + value2;
}
Artinya:
value1 β int
value2 β int
Jadi function mengharapkan dua integer.
23. Memberikan argument kepada function
Ketika function dipanggil:
add(10, 20);
maka:
10 β value1
20 β value2
Secara konsep:
add(10, 20)
value1 = 10
value2 = 20
Kemudian:
return value1 + value2;
menjadi:
10 + 20
hasil:
30
24. Parameter vs Argument
Istilah ini sering membingungkan pemula.
Perhatikan:
int add(int value1, int value2) {
return value1 + value2;
}
value1 dan value2 disebut parameter.
Sedangkan ketika kita memanggil:
add(10, 20);
10 dan 20 disebut argument.
Sederhananya:
Saat membuat function:
parameter
Saat memanggil function:
argument
25. Contoh lengkap function add
int add(int value1, int value2) {
return value1 + value2;
}
void main() {
print(add(10, 20));
}
Alurnya:
add(10, 20)
β
value1 = 10
value2 = 20
β
10 + 20
β
30
β
print
Output:
30
26. Bisa menggunakan variable sebagai argument
Tidak harus langsung:
add(10, 20);
Kita juga bisa:
void main() {
int a = 10;
int b = 20;
print(add(a, b));
}
Sekarang:
a β 10
b β 20
Kemudian:
add(a, b)
berarti:
add(10, 20)
hasilnya tetap:
30
27. Inilah keuntungan parameter
Tanpa parameter, kita mungkin membuat:
int add() {
return 10 + 20;
}
Function tersebut hanya bisa melakukan:
10 + 20
Kalau ingin:
30 + 50
kita harus mengubah isi function.
Dengan parameter:
int add(int a, int b) {
return a + b;
}
kita bisa:
add(10, 20);
add(30, 50);
add(100, 200);
Satu function dapat digunakan berkali-kali dengan data yang berbeda.
Inilah salah satu manfaat terbesar function.
28. Membuat function subtract
Video kemudian membuat function kedua:
int subtract(int value1, int value2) {
return value1 - value2;
}
Kemudian:
void main() {
print(add(10, 30));
print(subtract(30, 5));
}
Hasil:
40
25
Karena:
add(10, 30)
β 10 + 30
β 40
dan:
subtract(30, 5)
β 30 - 5
β 25
29. Satu function = satu tugas
Perhatikan desain:
int add(int a, int b) {
return a + b;
}
dan:
int subtract(int a, int b) {
return a - b;
}
Masing-masing function memiliki tugas yang jelas.
add β penjumlahan
subtract β pengurangan
Ini jauh lebih baik daripada membuat satu function yang melakukan terlalu banyak hal.
30. Perhatikan perbedaan void dan return
Ini salah satu bagian terpenting dari materi.
void
void sayHello() {
print("Hello");
}
Function melakukan sesuatu tetapi tidak mengembalikan nilai.
int
int getNumber() {
return 10;
}
Function menghasilkan dan mengembalikan integer.
String
String getName() {
return "Budi";
}
Function menghasilkan dan mengembalikan String.
double
double getPrice() {
return 10.5;
}
Function menghasilkan dan mengembalikan double.
31. Perbedaan print() dan return
Ini juga sering membuat pemula bingung.
Misalnya:
void add(int a, int b) {
print(a + b);
}
Function ini mencetak hasil.
Tetapi hasil tersebut tidak dikembalikan sebagai nilai.
Berbeda dengan:
int add(int a, int b) {
return a + b;
}
Function ini mengembalikan hasil.
Kemudian hasilnya bisa digunakan:
int result = add(10, 20);
Sekarang:
result = 30
Kita bisa melakukan sesuatu lagi dengan result.
Misalnya:
print(result * 2);
hasil:
60
32. Analogi sederhana print vs return
Bayangkan kamu pergi ke mesin ATM.
print
Seperti ATM hanya menampilkan:
Saldo kamu: Rp100.000
Kamu melihatnya, tetapi function tidak memberikan nilai tersebut untuk digunakan oleh kode lain.
return
Seperti ATM memberikan nilai saldo kepada sistem:
saldo = 100000
Kemudian sistem bisa melakukan:
saldo - biaya
Jadi:
print()= tampilkan sesuatureturn= berikan nilai kembali kepada pemanggil
33. Struktur function yang perlu kamu kuasai
Coba lihat:
int add(int a, int b) {
return a + b;
}
Baca dari kiri ke kanan:
int
Return type.
Function menghasilkan integer.
add
Nama function.
Namanya
add.
(int a, int b)
Parameter.
Function menerima dua integer.
{ ... }
Body.
Isi pekerjaan function.
return a + b
Nilai yang dikembalikan.
34. Contoh lengkap semua konsep
int add(int a, int b) {
return a + b;
}
int subtract(int a, int b) {
return a - b;
}
String greeting() {
return "Hello";
}
void showMessage() {
print("Welcome");
}
void main() {
print(greeting());
showMessage();
print(add(10, 20));
print(subtract(30, 5));
}
Output:
Hello
Welcome
30
25
Di sini kita memiliki beberapa jenis function:
greeting()
β return String
showMessage()
β void
add()
β return int
subtract()
β return int
35. Gambaran keseluruhan Function
Setelah memahami materi ini, kamu bisa membayangkan function seperti berikut:
FUNCTION
β
βββββββββββ΄ββββββββββ
β β
INPUT OUTPUT
(parameter) (return value)
β β
βΌ βΌ
int a, int b int
β β
βββββββββ¬ββββββββββββ
βΌ
a + b
Contohnya:
int add(int a, int b) {
return a + b;
}
36. Ringkasan materi video
Chapter 3 baru dimulai, dan video ini memperkenalkan fondasi function.
1. Function
Sekumpulan kode untuk melakukan tugas tertentu.
void myFunction() {
print("Hello");
}
2. Memanggil function
myFunction();
3. Return type
Menentukan tipe nilai yang dikembalikan:
void
int
String
double
4. return
Mengembalikan nilai:
int getNumber() {
return 10;
}
5. Parameter
Input yang diterima function:
int add(int a, int b)
6. Argument
Nilai yang diberikan saat function dipanggil:
add(10, 20);
7. Lower camel case
Contoh penamaan function:
calculateTotal
getUserName
printResult
π§ Cara paling mudah mengingat
Kalau kamu melihat:
int add(int a, int b) {
return a + b;
}
bacalah seperti kalimat:
“Saya membuat function bernama
add, function ini menerima duaintyaituadanb, kemudian mengembalikan (return) hasil penjumlahannya dalam bentukint.”
Dan ketika melihat:
print(add(10, 20));
bacalah:
“Panggil function
add, masukkan 10 dan 20, ambil hasilnya, lalu tampilkan.”
Itulah pola dasar function:
BUAT FUNCTION
β
tentukan return type
β
beri nama function
β
tentukan parameter jika perlu
β
tulis pekerjaan function
β
return hasil jika diperlukan
β
PANGGIL FUNCTION
Kalau pola ini sudah benar-benar kamu pahami, materi berikutnya seperti function parameter yang lebih kompleks, anonymous function, arrow function, dan scope akan jauh lebih mudah dipelajari.
Saya juga bisa membuat gambar/diagram visual tentang alur parameter β function β return agar konsepnya lebih mudah diingat.