Operator dan Ekspresi
Aritmetika, perbandingan, dan logika di AHA! Lang — plus keistimewaan boolean yang bisa langsung diaritmetikakan.
Operator dan Ekspresi
Ekspresi adalah potongan kode yang menghasilkan sebuah nilai. 2 + 3 adalah ekspresi — hasilnya 5. Di pelajaran ini kamu akan mengenal operator-operator yang membangun ekspresi di AHA! Lang.
Operator Aritmetika
| Operator | Makna | Contoh | Hasil |
|---|---|---|---|
+ | Penjumlahan | 7 + 3 | 10 |
- | Pengurangan | 7 - 3 | 4 |
* | Perkalian | 7 * 3 | 21 |
/ | Pembagian | 7 / 3 | 2 |
% | Sisa bagi (modulo) | 7 % 3 | 1 |
Perhatikan: pembagian 7 / 3 menghasilkan 2, bukan 2.33 — karena Int hanya menyimpan bilangan bulat. Sisa yang terbuang bisa kamu ambil dengan %.
print(10 / 4); // 2
print(10 % 4); // 2
print(9 % 2); // 1 — 9 ganjilPrioritas Operator (Presedensi)
Seperti matematika, perkalian didahulukan daripada penjumlahan:
print(2 + 3 * 4); // 14 — bukan 20
let a = (2 + 3) * 4; // 20 — kurung mengubah urutan
print(a);Gunakan tanda kurung (...) setiap kali urutan perhitungan perlu diperjelas.
Operator Perbandingan
Perbandingan membandingkan dua nilai:
print(5 == 5); // 1 (benar)
print(5 != 5); // 0 (salah)
print(5 < 3); // 0
print(5 >= 5); // 1| Operator | Makna |
|---|---|
== | Sama dengan |
!= | Tidak sama dengan |
< > | Lebih kecil / lebih besar |
<= >= | Lebih kecil / besar atau sama |
Keistimewaan AHA! Lang: Hasilnya Int
Di sinilah AHA! Lang berbeda dari Python. Hasil perbandingan di AHA! Lang bukan tipe boolean — melainkan Int 1 (benar) atau 0 (salah).
Akibatnya, hasil logika bisa langsung dipakai dalam hitungan:
let umur = 20;
let dewasa = umur >= 18; // 1
print(dewasa); // 1
print(dewasa * 100); // 100 — logika mengalir ke aritmetika!Operator Logika
| Operator | Makna | Contoh |
|---|---|---|
&& | DAN | x > 0 && x < 10 |
|| | ATAU | hari == 6 || hari == 0 |
! | NOT (balikkan) | !benar → false |
&& menghasilkan 1 jika kedua sisi benar, selain itu 0. || menghasilkan 1 jika salah satu sisi benar, selain itu 0.
let nilai = 80;
let hadir = 1;
// lulus jika nilai >= 70 DAN hadir
let lulus = nilai >= 70 && hadir == 1;
print(lulus); // 1Operator Awalan (Prefix)
Ada juga operator yang berdiri di depan nilai:
| Operator | Makna |
|---|---|
-x | Membalik tanda bilangan |
!x | Membalik nilai kebenaran |
print(-5); // -5
print(-(3 + 4)); // -7Bantuan Angka: abs, min, max
AHA! Lang menyediakan tiga builtin angka yang sering berguna:
print(abs(-7)); // 7 — nilai mutlak
print(min(3, 9)); // 3 — yang terkecil
print(max(3, 9)); // 9 — yang terbesarMerangkai Ekspresi
Ekspresi bisa dirangkai bebas — selama tipenya cocok:
let harga = 20000;
let diskon = 10;
// harga diskon: 20000 - 10% = 18000
let bayar = harga - (harga * diskon / 100);
print(bayar); // 18000Komputer menghitung dari kiri ke kanan sesuai aturan prioritas: harga * diskon / 100 → 200000 / 100 → 2000, lalu dipotong dari harga.
Latihan
- Cetak hasil dari
25 % 7dan jelaskan artinya. - Cek apakah
100habis dibagi4(petunjuk:100 % 4). - Buat variabel
tahunberisi tahun kelahiranmu, lalu hitung dan cetak perkiraan umurmu sekarang. - Eksperimen: berapa hasil
(1 == 1) * 5 + (2 > 5)? Cocokkan dengan penjelasan di atas.
Lanjut ke Bekerja dengan String