Masukkan Password
30 3.1 Types of Function in Dart Programming Language | Functions | Learn Dart Language | Dart Course
Pada materi ini kita masuk ke bagian jenis-jenis function di Dart. Inti pembagiannya sebenarnya sangat sederhana: kita melihat dua hal:
- Apakah function membutuhkan parameter atau tidak?
- Apakah function menghasilkan return value atau tidak?
Dari dua pertanyaan itu, muncul 4 jenis function.
1. Gambaran besar: 4 jenis function
| Jenis | Parameter | Return |
|---|---|---|
| 1. No parameter, no return | ❌ Tidak | ❌ Tidak |
| 2. Parameter, no return | ✅ Ada | ❌ Tidak |
| 3. No parameter, return | ❌ Tidak | ✅ Ada |
| 4. Parameter, return | ✅ Ada | ✅ Ada |
Supaya mudah diingat:
RETURN?
/ \
TIDAK YA
/ \
PARAMETER? PARAMETER?
/ \ / \
TIDAK YA TIDAK YA
↓ ↓ ↓ ↓
1 2 3 4
Sebenarnya materi ini hanya menggabungkan konsep parameter dan return yang sudah kita pelajari sebelumnya.
2. Sebelum masuk ke 4 jenis, pahami dulu 2 istilah ini
A. Parameter
Parameter adalah data yang diterima oleh function.
Contoh:
void greet(String name) {
print(name);
}
Di sini:
String name
adalah parameter.
Ketika function dipanggil:
greet("Budi");
"Budi" adalah nilai yang kita kirim ke parameter name.
Gambaran sederhananya:
greet("Budi")
↓
parameter
↓
name = "Budi"
↓
print(name)
↓
Budi
B. Return
Return adalah nilai yang dikembalikan oleh function kepada pemanggilnya.
Contoh:
int add(int a, int b) {
return a + b;
}
Kalau kita menjalankan:
int result = add(10, 20);
maka:
10 + 20
↓
30
↓
return 30
↓
result = 30
Jadi:
- parameter = data masuk ke function
- return = data keluar dari function
Ini penting sekali.
3. Jenis pertama: No Parameter dan No Return Type
Dalam video, caption beberapa kali menulis “white”, tetapi yang dimaksud adalah void.
Contohnya:
void myFunction() {
print("Hello");
}
Mari kita lihat:
void
berarti function tidak mengembalikan nilai.
Kemudian:
myFunction()
tidak memiliki parameter di dalam tanda kurung.
()
berarti tidak ada parameter.
Jadi:
void myFunction() {
print("Hello");
}
adalah:
Function yang tidak menerima parameter dan tidak mengembalikan nilai.
Cara memanggilnya
Misalnya:
void myFunction() {
print("Hello");
}
void main() {
myFunction();
}
Urutannya:
main()
↓
myFunction()
↓
print("Hello")
↓
Hello
Kenapa disebut “no parameter”?
Karena:
myFunction()
tidak menerima data apa pun.
Tidak seperti:
myFunction("Budi");
Kenapa disebut “no return”?
Karena function menggunakan:
void
dan tidak mengembalikan nilai menggunakan:
return
Contoh yang salah:
void myFunction() {
return "Hello"; // ❌
}
Karena function bertipe void tidak digunakan untuk mengembalikan nilai seperti String.
4. Kapan jenis function ini digunakan?
Jenis ini cocok ketika kita hanya ingin melakukan suatu tindakan.
Misalnya:
void sayHello() {
print("Hello");
}
Atau:
void showMenu() {
print("1. Start");
print("2. Exit");
}
Atau:
void printWelcome() {
print("Welcome to my application");
}
Function tersebut melakukan sesuatu, tetapi tidak memberikan nilai kembali.
5. Jenis kedua: Parameter dan No Return Type
Sekarang function memiliki parameter, tetapi tidak memiliki return value.
Contoh dari video:
void myFunction2(String name) {
print(name);
}
Perhatikan:
String name
Ada parameter.
Tetapi:
void
berarti tidak ada return value.
Jadi:
Function menerima data, tetapi tidak mengembalikan data.
Cara memanggil
void myFunction2(String name) {
print(name);
}
void main() {
myFunction2("Budi");
}
Ketika:
myFunction2("Budi");
dijalankan:
"Budi"
↓
name
↓
print(name)
↓
Budi
6. Bedakan jenis pertama dan kedua
Jenis 1
void sayHello() {
print("Hello");
}
Tidak ada parameter.
Kita cukup:
sayHello();
Jenis 2
void sayHello(String name) {
print("Hello $name");
}
Ada parameter.
Kita harus memberikan nilai:
sayHello("Budi");
Jadi perbedaannya:
Jenis 1
void sayHello()
↑
tidak ada parameter
Jenis 2
void sayHello(String name)
↑
ada parameter
7. Contoh lain jenis kedua
Misalnya kita ingin membuat function untuk mencetak nama.
void printName(String name) {
print("Nama saya adalah $name");
}
Kita bisa menggunakannya berkali-kali:
void main() {
printName("Budi");
printName("Andi");
printName("Siti");
}
Output:
Nama saya adalah Budi
Nama saya adalah Andi
Nama saya adalah Siti
Function-nya sama, tetapi inputnya berbeda.
Inilah salah satu manfaat parameter.
8. Jenis ketiga: No Parameter dan Return Type
Sekarang kebalikannya.
Function:
- tidak menerima parameter
- tetapi mengembalikan nilai
Contohnya:
String getName() {
return "Budi";
}
Perhatikan:
String
Ini adalah return type.
Artinya function harus mengembalikan sebuah String.
Kemudian:
()
berarti tidak memiliki parameter.
Dan:
return "Budi";
mengembalikan nilai "Budi".
9. Bagaimana cara menggunakan return?
Misalnya:
String getName() {
return "Budi";
}
void main() {
String name = getName();
print(name);
}
Mari kita ikuti prosesnya.
Langkah 1
Program menjalankan:
getName();
Langkah 2
Function berjalan:
String getName() {
return "Budi";
}
Langkah 3
Function mengembalikan:
"Budi"
Langkah 4
Nilai tersebut disimpan:
String name = getName();
sehingga:
name = "Budi"
Langkah 5
Kemudian:
print(name);
Output:
Budi
10. Return bisa langsung digunakan
Tidak harus selalu disimpan ke variable.
Kita juga bisa:
print(getName());
Karena:
getName()
menghasilkan sebuah String.
Alurnya:
getName()
↓
return "Budi"
↓
print("Budi")
↓
Budi
11. Analogi function seperti mesin
Bayangkan function sebagai sebuah mesin.
Untuk jenis ketiga:
FUNCTION
│
│ tidak ada input
↓
[ MESIN ]
│
│ menghasilkan output
↓
"Budi"
Jadi tidak ada parameter, tetapi ada output.
Contohnya:
String getName() {
return "Budi";
}
12. Jenis keempat: Parameter dan Return Type
Ini adalah jenis function yang paling lengkap.
Function memiliki:
- parameter ✅
- return value ✅
Contoh dari video:
int add(int a, int b) {
int result = a + b;
return result;
}
Mari kita bedah satu per satu.
int
int
adalah return type.
Artinya function harus mengembalikan nilai berupa int.
add
add
adalah nama function.
int a
int a
adalah parameter pertama.
int b
int b
adalah parameter kedua.
Jadi function:
int add(int a, int b)
berarti:
Buat function bernama
add, yang menerima dua angka integer, lalu mengembalikan sebuah integer.
13. Isi function
Di dalamnya:
int result = a + b;
Misalnya kita memanggil:
add(10, 20);
maka:
a = 10
b = 20
Sehingga:
a + b
menjadi:
10 + 20
hasilnya:
30
Kemudian:
return result;
mengembalikan:
30
14. Cara memanggil function keempat
Kita bisa menulis:
int add(int a, int b) {
int result = a + b;
return result;
}
void main() {
int res = add(10, 20);
print(res);
}
Output:
30
15. Alur eksekusinya
Ini bagian yang sangat penting untuk dipahami.
Ketika kita menulis:
int res = add(10, 20);
jangan membayangkan program langsung menyimpan sesuatu ke res.
Program akan melakukan:
Step 1 — Panggil function
add(10, 20)
Step 2 — Masukkan argument ke parameter
a = 10
b = 20
Step 3 — Jalankan isi function
int result = a + b;
menjadi:
int result = 10 + 20;
Step 4 — Hasilnya
result = 30
Step 5 — Return
return result;
menghasilkan:
30
Step 6 — Simpan ke res
int res = 30;
Step 7 — Print
print(res);
Output:
30
Gambaran lengkapnya:
add(10, 20)
↓
a = 10, b = 20
↓
a + b
↓
10 + 20
↓
30
↓
return 30
↓
res = 30
↓
print(res)
↓
30
16. Cara mengingat 4 jenis function
Saya sarankan jangan menghafal nama panjangnya. Cukup lihat input dan output.
Bayangkan function sebagai mesin:
INPUT → FUNCTION → OUTPUT
Jenis 1
Tidak ada input
↓
FUNCTION
↓
Tidak ada output
void hello() {
print("Hello");
}
Jenis 2
Ada input
↓
FUNCTION
↓
Tidak ada output
void hello(String name) {
print("Hello $name");
}
Jenis 3
Tidak ada input
↓
FUNCTION
↓
Ada output
String getName() {
return "Budi";
}
Jenis 4
Ada input
↓
FUNCTION
↓
Ada output
int add(int a, int b) {
return a + b;
}
17. Tabel dengan contoh
| Jenis | Contoh | Input | Output |
|---|---|---|---|
| 1 | void hello() | ❌ | ❌ |
| 2 | void hello(String name) | ✅ | ❌ |
| 3 | String getName() | ❌ | ✅ |
| 4 | int add(int a, int b) | ✅ | ✅ |
18. Hubungannya dengan void
Ini juga penting.
void berarti:
Function tidak mengembalikan nilai yang bisa kita gunakan sebagai hasil.
Contoh:
void printName() {
print("Budi");
}
Function ini menampilkan "Budi".
Tetapi bukan berarti function menghasilkan "Budi" sebagai return value.
Bandingkan:
Menggunakan print
void getName() {
print("Budi");
}
Dengan:
Menggunakan return
String getName() {
return "Budi";
}
Yang kedua menghasilkan nilai yang bisa digunakan:
String name = getName();
Sedangkan yang pertama hanya melakukan:
getName();
19. print() dan return jangan tertukar
Ini sering membingungkan pemula.
print()
Tugasnya:
Menampilkan sesuatu ke console.
print("Hello");
return
Tugasnya:
Mengirim nilai keluar dari function.
return "Hello";
Contoh:
String getMessage() {
return "Hello";
}
Kita bisa:
String message = getMessage();
Karena getMessage() menghasilkan nilai.
20. Contoh keempat jenis dalam satu program
Supaya benar-benar terlihat perbedaannya:
// 1. No parameter, no return
void sayHello() {
print("Hello");
}
// 2. Parameter, no return
void greet(String name) {
print("Hello $name");
}
// 3. No parameter, return
String getCountry() {
return "Indonesia";
}
// 4. Parameter, return
int add(int a, int b) {
return a + b;
}
void main() {
sayHello();
greet("Budi");
String country = getCountry();
print(country);
int result = add(10, 20);
print(result);
}
Output:
Hello
Hello Budi
Indonesia
30
21. Cara menentukan function termasuk jenis yang mana
Kalau nanti kamu melihat function orang lain, gunakan dua pertanyaan:
Pertanyaan 1:
Apakah ada parameter?
Lihat bagian dalam ().
hello()
→ tidak ada parameter.
hello(String name)
→ ada parameter.
Pertanyaan 2:
Apakah ada return value?
Lihat return type.
void hello()
→ tidak ada return value.
String hello()
→ ada return value berupa String.
int hello()
→ ada return value berupa int.
22. Rumus paling gampang
Ingat saja:
Parameter = sesuatu yang masuk. Return = sesuatu yang keluar.
Sehingga:
MASUK KELUAR
Jenis 1 ❌ ❌
Jenis 2 ✅ ❌
Jenis 3 ❌ ✅
Jenis 4 ✅ ✅
Atau dengan analogi mesin:
1. Mesin tanpa input, tanpa output
2. Mesin dengan input, tanpa output
3. Mesin tanpa input, dengan output
4. Mesin dengan input, dengan output
Jenis ke-4 biasanya sangat sering kita gunakan dalam program nyata, misalnya:
int multiply(int a, int b) {
return a * b;
}
atau:
double calculatePrice(double price, double tax) {
return price + (price * tax);
}
Karena kita memasukkan data, function memprosesnya, lalu mengembalikan hasil.
Kesimpulan
Materi video ini sebenarnya ingin mengajarkan satu hal utama:
Function dapat dikategorikan berdasarkan apakah dia menerima parameter dan apakah dia mengembalikan nilai.
1️⃣ No parameter + no return
void hello()
2️⃣ Parameter + no return
void hello(String name)
3️⃣ No parameter + return
String getName()
4️⃣ Parameter + return
int add(int a, int b)
Kalau kamu sudah benar-benar memahami parameter = input dan return = output, maka 4 jenis function ini menjadi sangat mudah.