Masukkan Password
35 3.6 Math in Dart Programming Language | dart:math in Dart | Learn Dart Language | Dart Course
Teks tersebut membahas Math di bahasa pemrograman D, khususnya cara menggunakan library std.math untuk melakukan operasi matematika dan menghasilkan angka acak.
Ada beberapa bagian transkrip yang tampaknya salah dikenali oleh sistem caption, misalnya do math sebenarnya kemungkinan besar adalah std.math, dan next integer adalah uniform!/fungsi random tertentu tergantung versi/library yang digunakan. Jadi saya akan menjelaskan konsep yang dimaksud dalam tutorialnya, sekaligus meluruskan bagian yang membingungkan.
1. Apa itu std.math?
Di bahasa D, kita bisa menggunakan library matematika melalui:
import std.math;
Library ini menyediakan berbagai fungsi untuk operasi matematika, misalnya:
- mencari akar kuadrat
- menghitung pangkat
- mencari nilai minimum
- mencari nilai maksimum
- dan berbagai operasi matematika lainnya
Selain std.math, untuk menghasilkan angka acak biasanya digunakan modul:
import std.random;
Jadi, secara konsep, matematika dan random adalah dua hal yang berbeda.
2. Menghasilkan angka random
Angka random adalah angka yang dihasilkan secara acak.
Misalnya kita ingin mendapatkan angka dari 0 sampai 9.
Secara konsep:
0, 1, 2, 3, 4, 5, 6, 7, 8, 9
Setiap kali program dijalankan, angka yang keluar bisa berbeda.
Contohnya:
7
Kemudian dijalankan lagi:
2
Dijalankan lagi:
9
Kenapa tidak sampai 10?
Ini adalah konsep penting.
Kalau kita menggunakan batas 10, biasanya batas tersebut exclusive, artinya:
0 <= angka < 10
Sehingga angka yang mungkin adalah:
0 sampai 9
Bukan:
0 sampai 10
3. Random dalam range tertentu
Misalnya kita ingin mendapatkan angka antara:
50 sampai 100
Kita harus memperhatikan apakah fungsi random yang digunakan memiliki batas akhir inclusive atau exclusive.
Secara matematis, kalau fungsi menghasilkan:
0 sampai N-1
maka untuk membuat range 50–100, kita dapat menggunakan konsep:
50 + random(51)
Kenapa 51?
Karena kita membutuhkan 51 kemungkinan angka:
50
51
52
...
99
100
Jumlahnya adalah:
100 - 50 + 1 = 51
Jadi prinsip umumnya:
minimum + random(maximum - minimum + 1)
Misalnya:
minimum = 50
maximum = 100
maka:
50 + random(100 - 50 + 1)
menjadi:
50 + random(51)
Hasilnya bisa:
50
57
73
88
100
dan sebagainya.
4. Random Boolean
Boolean hanya mempunyai dua kemungkinan:
true
false
Jadi random Boolean berarti program memilih secara acak antara:
true
atau:
false
Contohnya secara konsep:
bool hasil = randomBoolean();
Kemungkinan output:
true
atau:
false
Kalau program dijalankan berkali-kali, hasilnya dapat berubah.
Kapan berguna?
Misalnya dalam game:
Apakah musuh menyerang?
true / false
Atau:
Apakah hujan?
true / false
5. Membuat random list
Bagian selanjutnya dalam tutorial adalah membuat list/array berisi angka random.
Misalnya kita ingin membuat 10 angka random:
[7, 2, 91, 34, 18, 5, 72, 44, 10, 63]
Setiap angka dibuat secara random.
Konsepnya:
Jumlah elemen = 10
Nilai setiap elemen = angka random
Sehingga:
[angka random,
angka random,
angka random,
...
]
sebanyak 10 elemen.
Kalau kita mengubah ukurannya menjadi 20:
Jumlah elemen = 20
maka array akan mempunyai 20 angka.
Kenapa ini berguna?
Misalnya kita ingin membuat:
- data simulasi
- nilai ujian random
- angka untuk game
- data testing
- data dummy
- soal matematika random
6. Lambda / anonymous function
Dalam bagian random list, transkrip menyebut anonymous function.
Anonymous function adalah fungsi yang tidak mempunyai nama.
Misalnya secara sederhana:
(x) => x * 2
Kita tidak memberikan nama seperti:
int kaliDua(int x)
Tetapi langsung memberikan fungsi tersebut sebagai sebuah nilai.
Konsepnya bisa dibayangkan seperti:
generate(10, "buatkan angka random")
Program akan menjalankan instruksi "buatkan angka random" sebanyak 10 kali.
7. Menghitung pangkat dengan pow
Sekarang masuk ke operasi matematika.
Misalnya:
10²
Artinya:
10 × 10
hasilnya:
100
Dalam matematika:
10² = 100
Kalau:
10³
maka:
10 × 10 × 10
hasilnya:
1000
Di D, fungsi pow dapat digunakan untuk menghitung pangkat.
Konsepnya:
pow(10, 2)
artinya:
10 pangkat 2
hasil:
100
Sedangkan:
pow(10, 3)
hasil:
1000
8. Memahami angka dasar dan pangkat
Ini penting supaya tidak sekadar menghafal fungsi.
Dalam:
10²
angka 10 disebut base atau bilangan pokok.
Angka 2 disebut exponent atau pangkat.
Jadi:
pow(base, exponent)
Contoh:
pow(2, 3)
berarti:
2³
atau:
2 × 2 × 2
hasilnya:
8
Contoh lain:
pow(5, 2)
berarti:
5²
hasil:
25
9. Mencari nilai maksimum dengan max
Fungsi max digunakan untuk mencari nilai terbesar.
Misalnya:
10
20
Kita bandingkan:
10 < 20
Maka nilai terbesar adalah:
20
Secara konsep:
max(10, 20)
menghasilkan:
20
Contoh:
max(10, 100)
hasil:
100
Contoh lainnya:
max(75, 32)
hasil:
75
10. Mencari nilai minimum dengan min
Kebalikan dari max adalah min.
min digunakan untuk mendapatkan nilai terkecil.
Misalnya:
1000
500
Maka:
500
adalah nilai terkecil.
Secara konsep:
min(1000, 500)
hasil:
500
Contoh:
min(344, 500)
hasil:
344
11. Apa perbedaan min dan max?
Mudahnya:
| Fungsi | Tujuan | Contoh | Hasil |
|---|---|---|---|
min | mencari terkecil | min(10, 20) | 10 |
max | mencari terbesar | max(10, 20) | 20 |
Bayangkan kita mempunyai nilai:
70, 85, 60, 95, 72
Maka:
min = 60
max = 95
Konsep ini sangat sering digunakan dalam pemrograman.
Misalnya mencari:
- nilai ujian tertinggi
- nilai ujian terendah
- harga termurah
- harga termahal
- suhu minimum
- suhu maksimum
12. Mencari akar kuadrat dengan sqrt
Bagian terakhir adalah square root, atau dalam bahasa Indonesia disebut akar kuadrat.
Misalnya:
√25
Pertanyaannya:
Angka berapa yang jika dikalikan dengan dirinya sendiri menghasilkan 25?
Jawabannya:
5 × 5 = 25
Jadi:
√25 = 5
Di D, konsep ini dilakukan dengan fungsi:
sqrt(25)
Hasilnya kira-kira:
5.0
13. Kenapa hasilnya 5.0, bukan 5?
Ini berkaitan dengan tipe data.
Akar kuadrat tidak selalu menghasilkan bilangan bulat.
Misalnya:
√25 = 5
Tetapi:
√11
hasilnya kira-kira:
3.3166...
Karena itu, fungsi sqrt umumnya menghasilkan nilai bertipe floating-point, seperti double.
Contohnya:
√25 = 5.0
√11 ≈ 3.3166
√100 = 10.0
Jadi 5.0 tetap berarti nilai lima, hanya direpresentasikan sebagai angka pecahan/floating-point.
14. Contoh sqrt lainnya
Misalnya:
sqrt(100)
hasil:
10
Karena:
10 × 10 = 100
Kemudian:
sqrt(144)
hasil:
12
karena:
12 × 12 = 144
Sedangkan:
sqrt(288)
tidak menghasilkan bilangan bulat.
Hasilnya kira-kira:
16.9706
Jadi kita bisa melihat bahwa sqrt() sangat berguna ketika melakukan perhitungan yang melibatkan akar.
15. Ringkasan seluruh materi
Tutorial tersebut sebenarnya mengajarkan beberapa konsep berbeda:
Math / Random
│
├── Random number
│ └── menghasilkan angka acak
│
├── Random Boolean
│ └── menghasilkan true / false
│
├── Random list
│ └── membuat array berisi angka acak
│
├── Power
│ └── pow(angka, pangkat)
│
├── Maximum
│ └── max(a, b)
│
├── Minimum
│ └── min(a, b)
│
└── Square root
└── sqrt(angka)
Kalau dibuat menjadi contoh kehidupan sehari-hari:
random → melempar dadu
Boolean → koin: kepala/ekor
list → kumpulan angka acak
pow → menghitung pangkat
max → mencari yang paling besar
min → mencari yang paling kecil
sqrt → mencari akar kuadrat
16. Hal yang paling penting untuk dipahami
Jangan hanya menghafalkan:
pow()
max()
min()
sqrt()
Tetapi pahami kapan masing-masing digunakan.
pow()
Kalau ingin:
“Hitung 5 pangkat 3.”
Gunakan konsep:
pow(5, 3)
sqrt()
Kalau ingin:
“Cari akar kuadrat 144.”
Gunakan:
sqrt(144)
max()
Kalau ingin:
“Mana yang paling besar, 70 atau 90?”
Gunakan:
max(70, 90)
min()
Kalau ingin:
“Mana yang paling kecil, 70 atau 90?”
Gunakan:
min(70, 90)
Random
Kalau ingin:
“Berikan saya angka secara acak.”
Gunakan fasilitas random dari library std.random.
17. Catatan penting tentang transkrip
Ada sedikit kekacauan pada caption yang kamu berikan. Misalnya tertulis:
import do math
dan beberapa kali tertulis:
random do next integer
Itu kemungkinan besar merupakan hasil speech-to-text yang salah menangkap kode D.
Jadi jangan menghafalkan teks transkrip tersebut mentah-mentah. Yang perlu kamu pahami adalah konsepnya:
library → fungsi → parameter → hasil.
Contohnya:
sqrt(25)
│
└── parameter = 25
│
↓
hasil = 5
Dan:
pow(10, 2)
│ │
│ └── pangkat
└──────── angka dasar
│
↓
100
Dengan memahami pola tersebut, kamu akan lebih mudah belajar fungsi-fungsi lain di D tanpa harus menghafalnya satu per satu.
Kalau kamu mau, saya juga bisa membuat gambar/diagram visual yang menjelaskan alur random, pow, min, max, dan sqrt.