Gabungkan Rumus AND, OR, NOT Dengan Mudah
Kalau kamu mau bikin spreadsheet yang pintar, nggak cukup cuma tahu `SUM` atau `AVERAGE`.
Kamu juga harus bisa bikin aturan: kalau A dan B terpenuhi, lakukan X; kalau C atau D terpenuhi, lakukan Y; kalau bukan itu, lakukan Z.
Di Excel dan Google Sheets, aturan-aturan itu dibuat pakai fungsi logika: AND, OR, dan NOT — biasanya digabungin sama IF, IFS, SWITCH, atau fungsi bantu lain.
Artikel ini bakal jelasin cara gabungin `AND`, `OR`, dan `NOT` secara lengkap, praktis, dan mudah dipahami.
Gaya santai, paragraf pendek, banyak contoh nyata, tabel, rumus siap-copas, dan latihan supaya kamu langsung paham.
Cocok buat pelajar, mahasiswa, atau siapa saja yang pengin kerjaan spreadsheetnya lebih cerdas.
Ringkasan singkat (apa yang bakal kamu dapat)
- Penjelasan fungsi `AND`, `OR`, `NOT` dan tabel kebenaran.
- Cara pakai bersama `IF` — pola-pola umum.
- Contoh lengkap: penilaian sekolah, diskon toko online, penentuan bonus HR, validasi data, scoring kredit.
- Trik lanjutan: `IFS`, `SWITCH(TRUE,...)`, `LET`, `ARRAYFORMULA`, `REGEX`.
- Best practice: helper columns, sanitasi data, debugging.
- Latihan + jawaban untuk cek kemampuanmu.
1. Apa itu AND, OR, NOT? (konsep dasar)
- AND: `=AND(kondisi1, kondisi2, ...)` → `TRUE` hanya jika semua kondisi bernilai `TRUE`.
- OR: `=OR(kondisi1, kondisi2, ...)` → `TRUE` jika salah satu (atau lebih) kondisi bernilai `TRUE`.
- NOT: `=NOT(kondisi)` → Mengembalikan kebalikan kondisi (`TRUE` → `FALSE`, `FALSE` → `TRUE`).
Ketiga fungsi ini mengembalikan nilai boolean (`TRUE`/`FALSE`) dan umumnya dipakai di dalam `IF` untuk membuat keputusan yang lebih kompleks.
2. Tabel kebenaran (truth table) — gampang dipahami
A | B | AND(A,B) | OR(A,B) | NOT(A) |
---|---|---|---|---|
TRUE | TRUE | TRUE | TRUE | FALSE |
TRUE | FALSE | FALSE | TRUE | FALSE |
FALSE | TRUE | FALSE | TRUE | TRUE |
FALSE | FALSE | FALSE | FALSE | TRUE |
Analogi cepat:
- `AND` = semua harus ikut pesta supaya pesta jalan.
- `OR` = asal satu teman datang, pesta tetap jalan.
- `NOT` = kebalikan.
3. Pola dasar gabungan dengan IF (paling sering dipakai)
Berikut pola-pola praktis yang sering muncul:
3.1 IF + AND (semua syarat harus terpenuhi)
Contoh: "Lulus kalau nilai ≥ 75 dan kehadiran ≥ 80%"
=IF(AND(B2>=75, C2>=0.8), "Lulus", "Tidak Lulus")
3.2 IF + OR (cukup salah satu syarat)
Contoh: "Dapat diskon kalau VIP atau total > 1.000.000"=IF(OR(B2="VIP", C2>1000000), "Diskon", "No Diskon")
3.3 IF + NOT (pengecualian)
Contoh: "Proses kalau status bukan 'Cancel'"=IF(NOT(A2="Cancel"), "Proses", "Batal")
3.4 Gabungan AND dan OR
Contoh: "Bonus kalau (VIP dan total ≥ 5 juta) atau (non-VIP tapi total ≥ 10 juta)"
=IF(OR(AND(B2="VIP", C2>=5000000), AND(B2<>"VIP", C2>=10000000)), "Bonus", "No Bonus")
Kunci: pikirkan dulu aturan dalam kata, lalu ubah jadi logika.
4. Contoh nyata lengkap — tabel + rumus (siap pakai)
4.1 Studi kasus — Kelulusan Sekolah (lengkap)
Aturan:- Lulus Istimewa: nilai ≥ 90 dan kehadiran = 100%
- Lulus: nilai ≥ 75 dan kehadiran ≥ 80%
- Remedial: nilai ≥ 60 dan kehadiran ≥ 70%
- Tidak Lulus: lainnya
Nama | Nilai | Kehadiran |
---|---|---|
Andi | 92 | 100% |
Budi | 78 | 85% |
Citra | 65 | 70% |
Dedi | 58 | 75% |
Evi | 70 | 65% |
=IFS( AND(B2>=90, C2=1), "Lulus Istimewa", AND(B2>=75, C2>=0.8), "Lulus", AND(B2>=60, C2>=0.7), "Remedial", TRUE, "Tidak Lulus" )
4.2 Studi kasus — Diskon di Toko Online
Aturan:- VIP + belanja ≥ 5.000.000 → diskon 20%
- Non-VIP + belanja ≥ 10.000.000 → diskon 15%
- Member loyalty (points ≥ 1000) → diskon 10%
- Promo item → tambahan 5% (stackable)
- Maks diskon cap = 30%
Nama | Total | Status | Points | PromoItem |
---|---|---|---|---|
Ani | 6,000,000 | VIP | 200 | No |
Bayu | 12,000,000 | NonVIP | 4,000 | Yes |
Cinta | 1,500,000 | Member | 1,200 | No |
- Diskon dasar:
- Tambahan promo:
- Total diskon dengan cap:
- Harga akhir:
F2 = IF(AND(C2="VIP", B2>=5000000), 0.20, IF(AND(C2<>"VIP", B2>=10000000), 0.15, IF(D2>=1000, 0.10, 0)))
G2 = IF(E2="Yes", 0.05, 0)
H2 = MIN(F2 + G2, 0.30)i
I2 = B2 * (1 - H2)
4.3 Studi kasus — Bonus Karyawan (HR)
Aturan:- Bonus 10 juta jika penjualan > 100 juta dan masa kerja ≥ 3 tahun dan rating ≥ 4.5
- Bonus 5 juta jika penjualan > 50 juta atau masa kerja ≥ 5 tahun
- Tambahan 1 juta jika tidak pernah cuti (cuti=0)
Nama | Sales | Years | Rating | Cuti |
---|---|---|---|---|
Andy | 120,000,000 | 4 | 4.7 | 0 |
Bella | 60,000,000 | 6 | 4.2 | 1 |
Caca | 30,000,000 | 2 | 4.8 | 0 |
=IF(AND(B2>100000000, C2>=3, D2>=4.5), 10000000, IF(OR(B2>50000000, C2>=5), 5000000, 0)) + IF(E2=0, 1000000, 0)
4.4 Studi kasus — Kelayakan Kredit (scoring berdasarkan poin)
Aturan:- Income ≥ 10 juta → +30 poin
- Age 21–60 → +20 poin
- Good history → +30 poin
- Dependents < 3 → +20 poin
Total ≥ 70 → Layak
Nama | Income | Age | History | Dependents |
---|---|---|---|---|
Andi | 12,000,000 | 32 | Baik | 1 |
Budi | 6,000,000 | 45 | Buruk | 4 |
Citra | 10,000,000 | 21 | Baik | 2 |
- `IncomeScore`: `=IF(B2>=10000000, 30, 0)`
- `AgeScore`: `=IF(AND(C2>=21,C2<=60), 20, 0)`
- `HistoryScore`: `=IF(D2="Baik", 30, 0)`
- `DependScore`: `=IF(E2<3 0="" 20="" li=""> 3>
Total dan keputusan:
=IF(SUM(F2:I2)>=70, "Layak", "Tidak Layak")
5. Trik lanjutan dan pola yang sering dipakai
5.1 Pakai `IFS` atau `SWITCH(TRUE, ...)` untuk readability
Jika banyak kondisi bertingkat, `IFS` atau `SWITCH(TRUE, ...)` sering lebih bersih daripada nested `IF`.
IFS contoh:=IFS(AND(B2>=90,C2=1),"Istimewa", AND(B2>=75,C2>=0.8),"Lulus", AND(B2>=60,C2>=0.7),"Remedial", TRUE,"Tidak Lulus")
=SWITCH(TRUE, B2>=90,"A", B2>=80,"B", B2>=70,"C", TRUE,"D")
5.2 Sanitasi input dulu: TRIM, VALUE, UPPER
Selalu normalisasi input. Contoh:
=IF(AND(VALUE(TRIM(B2))>=75, VALUE(TRIM(C2))>=0.8),"Lulus","Periksa Input")
Untuk teks status:
=IF(UPPER(TRIM(A2))="VIP", "VIP", "LAIN")
5.3 Gunakan helper columns untuk kompleksitas
Buat kolom terpisah untuk: validasi, scoring, flags. Ini membantu debugging dan performa.
5.4 ARRAY/Vectorization (Google Sheets & Excel dynamic arrays)
Google Sheets `ARRAYFORMULA`:
=ARRAYFORMULA(IF((B2:B>=75)*(C2:C>=0.8), "Lulus","Tidak Lulus"))
Catatan: `(cond1)*(cond2)` mensimulasikan `AND` secara vektor.
Excel 365 dynamic array:
=IF((B2:B100>=75)*(C2:C100>=0.8), "Lulus", "Tidak Lulus")
5.5 Gabung dengan REGEX (Google Sheets) untuk validasi teks
Validasi email:
=REGEXMATCH(A2, "^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$")
6. Best practice — biar formula stabil & gampang dimodifikasi
- Tulis aturan dulu di kertas (flowchart atau if-then-else).
- Normalisasi data: TRIM, SUBSTITUTE(CHAR(160)," ") untuk spasi aneh.
- Gunakan helper columns untuk setiap langkah penting (score, valid, flag).
- Tambahkan default di `IFS`/`SWITCH` (`TRUE,"Default"`).
- Jangan buat 20 nested IF — kalau banyak rules, buat table lookup.
- Dokumentasikan logika di sheet README supaya tim ngerti.
- Uji dengan edge cases: kosong, tipe salah, batas nilai.
7. Debugging: masalah umum & solusi cepat
- Rumus selalu FALSE → cek tipe data (text vs number). Pakai `ISNUMBER`, `VALUE`.
- Spasi tersembunyi → `TRIM(SUBSTITUTE(A2,CHAR(160)," "))`.
- Case-sensitive mismatch → `UPPER()`/`LOWER()` sebelum compare.
- IFS tanpa default → tambahkan `TRUE,"..."`.
- Performa lambat → pindah ke helper columns atau Power Query untuk data besar.
8. Latihan (soal + jawaban) — latihan supaya nempel
Soal 1
Buat rumus yang menampilkan “Eligible” jika `Role="Student"` dan (`Score>=80` atau `Attendance>=90%`).
Jawaban:=IF(AND(A2="Student", OR(B2>=80, C2>=0.9)), "Eligible", "Not Eligible")
Soal 2
Badge program:
- Gold: points ≥1000 dan purchases ≥20
- Silver: points ≥500 atau purchases ≥10
- Bronze: lainnya
=IF(AND(B2>=1000, C2>=20), "Gold", IF(OR(B2>=500, C2>=10), "Silver", "Bronze"))
Soal 3
Validasi email (Google Sheets): tampilkan “Cek” kalau panjang <5 atau="" b="" else="" mengandung="" tidak=""> Jawaban:=IF(OR(LEN(TRIM(A2))<5 ek="" not="" pre=""> 5>
9. Mini project: buat sistem penilaian otomatis (step-by-step)
Tujuan: Dari data mentah, bikin kolom: `score_total`, `grade`, `status`, `flag`. Data mentah:NIS | Nama | Teori | Praktik | Tugas | Kehadiran |
---|
- `score_total`:
- `grade`:
- `status` (lulus):
- `flag` alasan tidak lulus:
- Conditional formatting: warna merah untuk `Tidak Lulus` atau `Nilai < 60`.
=0.5*C2 + 0.3*D2 + 0.2*E2
=IFS(G2>=90,"A", G2>=80,"B", G2>=70,"C", G2>=60,"D", TRUE,"E")
=IF(AND(G2>=75, F2>=0.8), "Lulus", "Tidak Lulus")
=IF(NOT(I2="Lulus"), IF(G2<75 bsensi="" eriksa="" if="" ilai="" kurang="" pre=""> 75>
10. Ringkasan cepat & langkah mulai praktik
Langkah praktis:
- Tuliskan aturan dalam bahasa biasa.
- Normalisasi data (TRIM, VALUE, UPPER).
- Bikin helper columns.
- Tulis rumus utama gabungan `IF + AND/OR/NOT`.
- Uji edge-case.
- Dokumentasikan.
Praktekkan contoh-contoh di atas di file kamu. Mulai dari yang sederhana lalu naik ke kasus kompleks. Kalau sudah paham pola `AND` = semua, `OR` = salah satu, `NOT` = kebalikan, kamu bisa bikin logika apa pun di spreadsheet.
Selamat ngoprek — semoga semua rumus ini langsung ngebantu kerjaan sekolah atau proyekmu!
5>
Gabung dalam percakapan