4 Contoh Coding Sederhana untuk Pemula (Paling Mudah + Penjelasan)
4 contoh coding sederhana yang gampang banget buat pemula: ganjil-genap, hitung total belanja (diskon + ongkir), validasi nomor WhatsApp/HP Indonesia, dan game tebak angka — lengkap dengan penjelasan dan tantangan kecil.

Table of Contents
Kamu baru mulai belajar ngoding dan sering kepikiran, “Aku harus bikin apa dulu biar paham beneran?”
Aku dulu juga gitu. Dan jujur aja, yang bikin capek itu bukan “ngodingnya”, tapi milih latihan yang pas.
Aku masih inget momen “ketampar”-nya: aku ngikutin tutorial yang keliatannya gampang, tapi pas disuruh modif dikit (ganti input, tambah kondisi, ubah output), aku langsung mentok. Dari situ aku sadar, yang bikin paham itu bukan nonton tutorial panjang—tapi ngerjain contoh kecil yang bisa kamu utak-atik seenaknya.
Contoh di internet sering kebagi dua:
- yang terlalu receh (“print hello world doang”) sampai kamu merasa, lah terus?
- yang langsung brutal (udah pakai framework, database, auth, deploy) sampai kamu cuma ngikutin tutorial tanpa ngerti kenapa
Makanya di artikel ini aku pilih jalur tengah: 4 contoh coding sederhana untuk pemula yang beneran melatih logika dan masih terasa fun. Bukan cuma “baca”, tapi kamu diajak nyoba.
Setiap contoh punya:
- penjelasan singkat (nggak sok akademis)
- kode yang bisa kamu copy-run
- tantangan kecil (biar kamu ikut mikir, bukan cuma scroll)
Soal bahasa: aku pakai JavaScript (Node.js) karena gampang dicoba di laptop biasa. Tapi tenang, logikanya tetep kepake kalau kamu lagi belajar Python / Java / Go.
Quick cek: kamu sudah punya Node? Coba
node -v. Kalau muncul versi (misalv20.x), aman.
1) Cek angka ganjil atau genap
Ini latihan klasik, tapi berguna banget buat ngenalin:
- input
- kondisi
if - operator modulo (
%)
Tujuan: kamu masukin angka, program ngasih tahu itu ganjil atau genap.
1// ganjil-genap.js23const angka = 17;45if (angka % 2 === 0) {6 console.log(`${angka} itu GENAP`);7} else {8 console.log(`${angka} itu GANJIL`);9}
Kalau kamu jalanin, harusnya keluar salah satu dari dua output itu.
Kenapa pakai %?
Karena angka % 2 ngasih sisa pembagian 2.
- sisa 0 → genap
- sisa 1 → ganjil
Mini challenge (biar interaktif):
- Ubah
angkajadi0,1,2,99,100. Output-nya sesuai nggak? - Bonus: coba masukin angka negatif (misal
-7). Menurut kamu hasilnya gimana?
2) Hitung total belanja (diskon + ongkir)
Ini contoh yang lebih “Indonesia banget” karena mirip kejadian sehari-hari: kamu belanja, ada diskon, ada ongkir.
Aku pernah bantuin temen bikin total belanja buat project kecil-kecilan, dan yang bikin ribet bukan rumusnya—tapi detailnya: diskon dihitung dari subtotal atau setelah ongkir? ongkir kena diskon nggak? terus pembulatan gimana? Nah latihan ini sengaja kubikin sederhana dulu biar fokusnya ke logika dasarnya.
Latihan ini bakal kepake buat:
- bikin fungsi
- operasi aritmatika yang bener
- bikin output yang gampang dibaca
1// total-belanja.js23function hitungTotalBelanja({ hargaBarang, qty, diskonPersen, ongkir }) {4 const subtotal = hargaBarang * qty;5 const diskon = (diskonPersen / 100) * subtotal;6 const total = subtotal - diskon + ongkir;78 return {9 subtotal,10 diskon,11 ongkir,12 total,13 };14}1516const hasil = hitungTotalBelanja({17 hargaBarang: 35000,18 qty: 3,19 diskonPersen: 10,20 ongkir: 12000,21});2223console.log(hasil);
Output-nya memang bentuk objek, tapi justru enak buat latihan karena kamu bisa lihat komponen hitungannya satu-satu.
Mini challenge:
- Bikin fungsi
formatRupiah()sederhana, terus tampilkan totalnya jadiRp35.000(nggak harus super sempurna dulu). - Kalau
diskonPersenlebih dari 100 atau kurang dari 0, kamu mau ngapain? (kembalikan error? atau clamp jadi 0–100?) - Tambahin aturan: kalau
subtotaldi atas 200.000, ongkir jadi 0 (gratis ongkir).
3) Validasi nomor WhatsApp/HP Indonesia (versi pemula)
Validasi itu bakal sering kamu temuin di dunia nyata: form daftar, checkout, kirim OTP, dan sebagainya.
Dan lucunya, masalahnya sering bukan “nomornya salah”—tapi formatnya beda-beda. Ada yang nulis 0812..., ada yang +62..., ada yang pakai spasi, ada yang pakai strip -. Jadi kalau kamu bikin form, kamu bakal ketemu data kayak gitu cepat atau lambat.
Biar lebih “relate”, kita bikin validasi nomor HP/WhatsApp Indonesia yang umum.
Aturan versi pemula (biar nggak ribet dulu):
- input boleh mengandung spasi atau tanda
-(nanti kita bersihin) - boleh mulai dengan
08...atau+62...atau62... - setelah dibersihin, isinya harus angka dan panjangnya masuk akal
1// validasi-whatsapp.js23function normalisasiNomorID(input) {4 // buang spasi dan tanda '-' biar input kayak "0812-3456-789" tetap aman5 let nomor = input.replace(/\s|-/g, "");67 if (nomor.startsWith("+62")) nomor = "0" + nomor.slice(3);8 if (nomor.startsWith("62")) nomor = "0" + nomor.slice(2);910 return nomor;11}1213function nomorValidUntukWA(input) {14 const nomor = normalisasiNomorID(input);15 if (!nomor.startsWith("08")) return false;16 if (!/^\d+$/.test(nomor)) return false;17 if (nomor.length < 10 || nomor.length > 13) return false;1819 return true;20}2122const contoh = [23 "08123456789",24 "+628123456789",25 "62 812-3456-789",26 "0812 34AB 789",27 "07123456789",28];2930for (const item of contoh) {31 console.log(item, "=>", nomorValidUntukWA(item));32}
Ini bukan validasi nomor paling “saklek” sedunia (aturan nomor bisa beda-beda), tapi untuk latihan pemula ini bagus karena kamu belajar:
- normalisasi input (bersihin spasi/tanda)
- cek pola string
- mikirin edge case yang umum banget di form
Mini challenge:
- Bikin supaya nomor
"0812 3456 789"dinormalisasi jadi"08123456789"dan ditampilkan juga hasil normalisasinya. - Kalau input kosong atau cuma spasi, output-nya kamu mau
falseatau tampilkan pesan error? - Bonus: buang tanda
(dan)juga (misal input:(0812) 3456-789).
4) Game tebak angka (yang bikin kamu pengen coba terus)
Kalau kamu pengen latihan yang terasa kayak “game kecil”, ini favorit.
Konsepnya:
- komputer memilih angka rahasia
- kamu menebak
- program kasih petunjuk: terlalu besar atau terlalu kecil
Versi ini pakai input dari terminal (Node.js).
1// tebak-angka.js23const readline = require("node:readline");45const rl = readline.createInterface({6 input: process.stdin,7 output: process.stdout,8});910const jawaban = Math.floor(Math.random() * 10) + 1; // 1 - 1011let percobaan = 0;1213console.log("Aku sudah pilih angka 1 sampai 10. Tebak ya!");1415function tanya() {16 rl.question("Tebakan kamu: ", (input) => {17 const tebak = Number(input);18 percobaan++;1920 if (Number.isNaN(tebak)) {21 console.log("Itu bukan angka. Coba lagi.");22 return tanya();23 }2425 if (tebak === jawaban) {26 console.log(`Benar! Jawabannya ${jawaban}. Kamu butuh ${percobaan} percobaan.`);27 rl.close();28 return;29 }3031 if (tebak < jawaban) {32 console.log("Kekecilan.");33 } else {34 console.log("Kebesaran.");35 }3637 tanya();38 });39}4041tanya();
Yang bikin latihan ini “hidup” adalah loop + feedback.
Mini challenge:
- Ubah range jadi 1–100.
- Kasih batas maksimal 7 percobaan. Kalau lewat, game over.
- Tambahin fitur “main lagi?” setelah menang/kalah.
Cara jalanin semua contoh (biar kamu benar-benar nyoba)
- Buat file sesuai nama di atas (misal
ganjil-genap.js) - Jalankan:
1node ganjil-genap.js2node total-belanja.js3node validasi-whatsapp.js4node tebak-angka.js
Kalau ada yang error, itu bagus (serius). Error itu bahan belajar.
Kalau kamu pemula, mulai dari mana dulu?
Saran paling realistis:
- Kalau kamu masih bingung
if/else→ mulai dari ganjil-genap - Kalau kamu pengen latihan fungsi + hitung-hitungan yang relate → total belanja
- Kalau kamu pengen paham string + validasi input → validasi nomor WA/HP
- Kalau kamu pengen latihan program “interaktif” → tebak angka
Btw, kamu belajar ngoding buat apa? (biar aku bisa arahin latihan berikutnya)
- mau jadi frontend?
- backend?
- data?
- atau sekadar pengen bisa bikin project sendiri?
Kalau kamu jawab, aku bisa bikinin “next step” yang levelnya pas (nggak terlalu gampang, nggak bikin nyerah).
Biar aku bisa ngarahin lebih tepat, jawab singkat aja salah satu ini:
- kamu lagi belajar bahasa apa? (JS / Python / Go / lainnya)
- target kamu mau bikin apa? (website, API, bot, automation, dll)
- kamu paling nyangkut di bagian mana? (logika, loop, function, atau malah setup?)