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

OperatorMaknaContohHasil
+Penjumlahan7 + 310
-Pengurangan7 - 34
*Perkalian7 * 321
/Pembagian7 / 32
%Sisa bagi (modulo)7 % 31

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 ganjil

Prioritas 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
OperatorMakna
==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

OperatorMaknaContoh
&&DANx > 0 && x < 10
||ATAUhari == 6 || hari == 0
!NOT (balikkan)!benarfalse

&& 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); // 1

Operator Awalan (Prefix)

Ada juga operator yang berdiri di depan nilai:

OperatorMakna
-xMembalik tanda bilangan
!xMembalik nilai kebenaran
print(-5);  // -5
print(-(3 + 4)); // -7

Bantuan 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 terbesar

Merangkai 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); // 18000

Komputer menghitung dari kiri ke kanan sesuai aturan prioritas: harga * diskon / 100200000 / 1002000, lalu dipotong dari harga.

Latihan

  1. Cetak hasil dari 25 % 7 dan jelaskan artinya.
  2. Cek apakah 100 habis dibagi 4 (petunjuk: 100 % 4).
  3. Buat variabel tahun berisi tahun kelahiranmu, lalu hitung dan cetak perkiraan umurmu sekarang.
  4. Eksperimen: berapa hasil (1 == 1) * 5 + (2 > 5)? Cocokkan dengan penjelasan di atas.

Lanjut ke Bekerja dengan String