Skip to content

Commit

Permalink
Merge pull request #50 from amdev142/dev
Browse files Browse the repository at this point in the history
docs: Update readme
  • Loading branch information
mergify[bot] authored Jan 6, 2022
2 parents 7508bdf ea9070d commit 7b812f7
Show file tree
Hide file tree
Showing 2 changed files with 128 additions and 2 deletions.
87 changes: 86 additions & 1 deletion basic/8_fungsi/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 55,91 @@ Haloo.. Nama saya Budi
Umur saya 21
```

### Jenis Parameter

#### Positional Parameter

Positional Parameter adalah sebuah parameter yang dimana ketika fungsi dipanggil maka argument yang diberikan harus sesuai dengan posisi dari parameter

Contoh:

```DART
void pembagian(int nilai1, int nilai2) {
print(nilai1/nilai2);
}
void main() {
pembagian(4, 2);
// 4 akan masuk ke parameter nilai1, sedangkan 2 akan masuk ke parameter nilai2
// hasil pembagian: 2.0
}
```

Bagaimana jika nilai argument kita balik?

Nilai yang dihasilkan bukanlah `2`, gimana jika argument yang ingin kita isi bisa dimasukan sesuai dengan posisi yang kita inginkan.

Dart telah menyediakan cara untuk mengatasi masalah tersebut yaitu dengan menggunakan `Named Parameter`

Catatan: Jenis parameter ini bersifat non optional / argument wajib diberikan jika parameter tersedia.

#### Named Parameter

Named Pameter adalah sebuah parameter yang membebaskan kita untuk memberikan posisi sebuah argument dimanapun kita mau, cara kerjanya yaitu menggunakan sebuah `key`.

Contoh:

```DART
void pembagian2({int? nilai1, int? nilai2}) {
print(nilai1! / nilai2!);
}
void main() {
pembagian(nilai2: 2, nilai1: 4);
// nilai akan masuk menyesuaikan key yang ada
// hasil pembagian: 2.0
}
```

Catatan: Jenis parameter ini bersifat optional

#### Optional Parameter

Optional parameter adalah sebuah argument tidak wajib diberikan jika parameter tersedia, untuk membuat parameter menjadi optional cukup memberikan sebuah tanda `[]` pada masing-masing parameter.

Contoh:

```DART
void penjumlahan(int nilai1, int nilai2, [int? nilai3]) {
if (nilai3 != null) {
print(nilai1 nilai2 nilai3);
} else {
print(nilai1 nilai2);
}
}
void main() {
penjumlahan(4, 2); // hasil penjumlahan: 6
penjumlahan(4, 2, 4); // hasil penjumlahan: 10
}
```

#### Required Parameter

Required parameter adalah sebuah argument wajib diberikan jika parameter tersedia, untuk membuat parameter menjadi optional cukup menambahkan sebuah syntax `required` pada masing-masing parameter.

Contoh:

```DART
void pembagian({ required int nilai1, required int nilai2 }) {
print(nilai1/nilai2);
}
void main() {
pembagian(nilai2: 2, nilai1: 4);
// jika sebuah parameter yang diberikan syntax required tidak diisi maka akan memberikan peringatan error
// hasil pembagian: 2.0
}
---
[<< Materi sebelumnya](https://github.com/bellshade/Dart/tree/main/basic/7_input)
[<< Materi sebelumnya](https://github.com/bellshade/Dart/tree/main/basic/7_input)
43 changes: 42 additions & 1 deletion basic/8_fungsi/fungsi.dart
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 10,34 @@ void perkenalan(String nama) {
print('Haloo.. Nama saya $nama');
}

/*
* Jenis Parameter
*/

// Positional Parameter
void pembagian1(nilai1, nilai2) {
print(nilai1 / nilai2);
}

// Named Parameter
void pembagian2({int? nilai1, int? nilai2}) {
print(nilai1! / nilai2!);
}

// Optional Parameter
void penjumlahan(int nilai1, int nilai2, [int? nilai3]) {
if (nilai3 != null) {
print(nilai1 nilai2 nilai3);
} else {
print(nilai1 nilai2);
}
}

// Required Parameter
void pembagian3({required int nilai1, required int nilai2}) {
print(nilai1 / nilai2);
}

main() {
print('Perkenalan');

Expand All @@ -32,4 60,17 @@ main() {

//mencetak nilai usia
print('Umur saya $usia');
}

// Positional Parameter
pembagian1(4, 2);

// Named Parameter
pembagian2(nilai2: 2, nilai1: 4);

// Optional Parameter
penjumlahan(4, 2);
penjumlahan(4, 2, 4);

// Required Parameter
pembagian3(nilai2: 2, nilai1: 4);
}

0 comments on commit 7b812f7

Please sign in to comment.