JavaScript ยท Latihan Dasar

Arsip Tugas Pemrograman

Latihan percabangan, perulangan, function, dan pola dengan nested loop. Setiap soal disertai kode yang bisa dibuka langsung di halaman ini, beserta hasil outputnya.

PercabanganSelesai

Sistem Penilaian Sederhana

Meminta nilai lewat prompt(), lalu mencetak Lulus jika nilai 75 atau lebih, dan Remedial jika kurang dari 75.

  • prompt()
  • if / else if
Lihat kode
let nilai = prompt("Masukkan nilai anda:");

if (nilai >= 75) {
  console.log("Lulus!")
}
else if (nilai < 75) {
  console.log("Remedial")
}

Berjalan di browser dan meminta input lewat prompt().

PercabanganSelesai

Konversi Kode Peran (Role)

Menerjemahkan kode peran: A menjadi Admin, U menjadi User, kode lain menjadi Guest.

  • switch-case
  • default
  • prompt()
Lihat kode
let role = prompt("Masukan Role Anda:")
    switch (role) {
        case "A":
        console.log("Admin");
        break;
        case "U":
        console.log("User");
        break;
        default:
            console.log("Guest")
    }

Berjalan di browser dan meminta input lewat prompt().

PerulanganSelesai

Cetak Kelipatan 10

Mencetak 10 sampai 50 dengan for, naik 10 di setiap putaran.

  • for
  • i += 10
Lihat kode dan output
for (let i = 10; i <= 50; i += 10) {
    console.log(i)
}

Output

10
20
30
40
50
PerulanganSelesai

Hitung Mundur (Countdown)

Menghitung mundur dari 3 sampai 1 dengan while, lalu mencetak Start !

  • while
  • i--
Lihat kode dan output
let hitung = 3;

while (hitung >= 1) {
  console.log(hitung);hitung--;
}

console.log("Start !")

Output

3
2
1
Start !
Function & LogikaSelesai

FizzBuzz

Mencetak FizzBuzz untuk kelipatan 15, Buzz untuk kelipatan 5, dan Fizz untuk kelipatan 3. Kelipatan 15 diperiksa lebih dulu karena juga habis dibagi 3 dan 5.

  • function
  • % (modulus)
  • else if
Lihat kode dan output
function checknumber (angka) {
    if (angka % 15 === 0) {
        console.log("FizzBuzz");
    } else if (angka % 5 === 0) {
        console.log("Buzz");
    } else if (angka % 3 === 0) {
        console.log("Fizz");
    } else {
        console.log("Angka Bukan Kelipat 3,5,15 !");
    }
}
checknumber(15);
checknumber(5);
checknumber(3);
checknumber(11);

Output

FizzBuzz
Buzz
Fizz
Angka Bukan Kelipat 3,5,15 !
Function & LogikaSelesai

Cek Genap dan Ganjil

Function yang mencetak Genap atau Ganjil berdasarkan sisa bagi 2.

  • function
  • % (modulus)
  • if / else
Lihat kode dan output
function checknumber (angka) {
    if (angka % 2 === 0) {
        console.log("Genap")
    } else {
        console.log("Ganjil")
    }
}

checknumber(67);
checknumber(10);

Output

Ganjil
Genap
Function & LogikaSelesai

Balik String

Function yang membalik urutan karakter sebuah string, misalnya Koding menjadi gnidoK.

  • function
  • split()
  • reverse()
  • join()
Lihat kode dan output
function balikString(kata) {
    return kata.split("").reverse().join("");
}

console.log(balikString("Koding"));
console.log(balikString("123"));

Output

gnidoK
321
PolaSelesai

Segitiga

Segitiga siku-siku dari bintang, 4 baris, bertambah satu bintang di setiap baris.

  • nested for
Lihat kode dan output
for (let i = 1; i <= 4; i++) {
    let baris = "";

    for (let j = 1; j <= i; j++) {
        baris += "*";
    }

    console.log(baris);
}

Output

*
**
***
****
PolaSelesai

Persegi Panjang

Persegi panjang penuh dari bintang, 4 baris dan 8 kolom.

  • nested for
Lihat kode dan output
for (let i = 1; i <= 4; i++) {
    let baris = "";

    for (let j = 1; j <= 8; j++) {
        baris += "*";
    }

    console.log(baris);
}

Output

********
********
********
********
PolaSelesai

Persegi Panjang Kosong

Persegi panjang 5 baris dan 8 kolom. Bintang hanya di tepi, bagian dalam diisi spasi.

  • nested for
  • if
  • ||
Lihat kode dan output
for (let i = 1; i <= 5; i++) {
    let baris = "";

    for (let j = 1; j <= 8; j++) {
        if (i === 1 || i === 5 || j === 1 || j === 8) {
            baris += "*";
        } else {
            baris += " ";
        }
    }

    console.log(baris);
}

Output

********
*      *
*      *
*      *
********
PolaSelesai

Segitiga Sama Sisi

Segitiga angka: tiap baris mengulang nomor barisnya, dengan spasi di depan supaya bentuknya simetris.

  • nested for
  • spasi
Lihat kode dan output
for (let i = 1; i <= 4; i++) {
    let baris = "";

    for (let j = 1; j <= 4 - i; j++) {
        baris += " ";
    }

    for (let k = 1; k <= i; k++) {
        baris += i + " ";
    }

    console.log(baris);
}

Output

   1 
  2 2 
 3 3 3 
4 4 4 4 
PolaSelesai

Segitiga Sama Sisi 2

Segitiga angka berurutan (1, lalu 2 3, lalu 4 5 6, dan seterusnya) dalam function cetakSegitigaSimetris(tinggi).

  • function
  • repeat()
  • push()
  • join()
Lihat kode dan output
function cetakSegitigaSimetris(tinggi) {
    let angka = 1;

    for (let i = 1; i <= tinggi; i++) {
        let spasi = " ".repeat(tinggi - i);
        
        let barisAngka = [];
        for (let j = 1; j <= i; j++) {
            barisAngka.push(angka);
            angka++;
        }
        
        console.log(spasi + barisAngka.join(" "));
    }
}

cetakSegitigaSimetris(4);

Output

   1
  2 3
 4 5 6
7 8 9 10
PolaSelesai

Belah Ketupat

Belah ketupat 7 baris: bintang bertambah dari 1 sampai 7, lalu berkurang lagi.

  • nested for
  • dua blok loop
Lihat kode dan output
for (let i = 1; i <= 4; i++) {
    let baris = "";

    for (let j = 1; j <= 4 - i; j++) {
        baris += " ";
    }

    for (let k = 1; k <= 2 * i - 1; k++) {
        baris += "*";
    }

    console.log(baris);
}

for (let i = 3; i >= 1; i--) {
    let baris = "";

    for (let j = 1; j <= 4 - i; j++) {
        baris += " ";
    }

    for (let k = 1; k <= 2 * i - 1; k++) {
        baris += "*";
    }

    console.log(baris);
}

Output

   *
  ***
 *****
*******
 *****
  ***
   *
PolaSelesai

Segitiga Jam Pasir

Jam pasir: bintang menyempit dari 7 ke 1, lalu melebar lagi ke 7.

  • nested for
  • dua blok loop
Lihat kode dan output
// Bagian atas sampai tengah
for (let i = 4; i >= 1; i--) {
    let baris = "";

    for (let j = 1; j <= 4 - i; j++) {
        baris += " ";
    }

    for (let k = 1; k <= 2 * i - 1; k++) {
        baris += "*";
    }

    console.log(baris);
}

// Bagian bawah
for (let i = 2; i <= 4; i++) {
    let baris = "";

    for (let j = 1; j <= 4 - i; j++) {
        baris += " ";
    }

    for (let k = 1; k <= 2 * i - 1; k++) {
        baris += "*";
    }

    console.log(baris);
}

Output

*******
 *****
  ***
   *
  ***
 *****
*******
PolaSelesai

Segitiga Kosong

Segitiga sama sisi 5 baris yang hanya berisi bintang di sisi kiri, sisi kanan, dan alasnya.

  • nested for
  • if
  • ||
Lihat kode dan output
for (let i = 1; i <= 5; i++) {
    let baris = "";

    // Spasi di depan
    for (let j = 1; j <= 5 - i; j++) {
        baris += " ";
    }

    // Bintang atau spasi bagian dalam
    for (let k = 1; k <= 2 * i - 1; k++) {
        if (i === 1 || i === 5 || k === 1 || k === 2 * i - 1) {
            baris += "*";
        } else {
            baris += " ";
        }
    }

    console.log(baris);
}

Output

    *
   * *
  *   *
 *     *
*********