Tantangan JavaScript

Uji pemahamanmu dengan soal-soal interaktif. Tulis kode, jalankan, dan cek hasilnya langsung di browser.

Progress0/135 solved
Pemula: 0/50Menengah: 0/40Lanjutan: 0/45
Menampilkan 1-20 dari 135 soal

Ganjil atau Genap

pemulaPercabangan

Buat fungsi `ganjilGenap(n)` yang menerima sebuah angka dan mengembalikan string "ganjil" jika angka tersebut ganjil, atau "genap" jika genap.

Test cases:

ganjilGenap(4)"genap"
ganjilGenap(7)"ganjil"
ganjilGenap(0)"genap"

Balik String

pemulaString

Buat fungsi `balikString(str)` yang menerima sebuah string dan mengembalikan string tersebut dalam urutan terbalik.

Test cases:

balikString("halo")"olah"
balikString("javascript")"tpircsavaj"
balikString("abc")"cba"

FizzBuzz

pemulaLoop

Buat fungsi `fizzBuzz(n)` yang mengembalikan array dari 1 sampai n. Untuk kelipatan 3, ganti dengan "Fizz". Untuk kelipatan 5, ganti dengan "Buzz". Untuk kelipatan keduanya, ganti dengan "FizzBuzz".

Test cases:

fizzBuzz(5)[1, 2, "Fizz", 4, "Buzz"]
fizzBuzz(15)[1, 2, "Fizz", 4, "Buzz", "Fizz", 7, 8, "Fizz", "Buzz", 11, "Fizz", 13, 14, "FizzBuzz"]
fizzBuzz(3)[1, 2, "Fizz"]

Cari Nilai Terbesar

pemulaArray

Buat fungsi `nilaiTerbesar(arr)` yang menerima array angka dan mengembalikan nilai terbesar tanpa menggunakan Math.max.

Test cases:

nilaiTerbesar([3, 7, 2, 9, 1])9
nilaiTerbesar([10, 5, 8])10
nilaiTerbesar([-1, -5, -2])-1

Hitung Kata

pemulaString

Buat fungsi `hitungKata(str)` yang menghitung jumlah kata dalam sebuah string. Fungsi harus menangani spasi ganda dengan benar.

Test cases:

hitungKata("saya belajar javascript")3
hitungKata("hello world")2
hitungKata("")0

Palindrome Check

pemulaString

Buat fungsi `cekPalindrome(str)` yang mengecek apakah sebuah string adalah palindrome (dibaca sama dari depan dan belakang). Pengecekan harus case-insensitive.

Test cases:

cekPalindrome("Katak")true
cekPalindrome("javascript")false
cekPalindrome("Level")true

Jumlah Array

pemulaArray

Buat fungsi `jumlahArray(arr)` yang menerima array angka dan mengembalikan total penjumlahan semua elemen.

Test cases:

jumlahArray([1, 2, 3, 4, 5])15
jumlahArray([10, -2, 3])11
jumlahArray([0, 0, 0])0

Huruf Kapital Pertama

pemulaString

Buat fungsi `kapitalPertama(str)` yang mengubah huruf pertama setiap kata menjadi huruf kapital.

Test cases:

kapitalPertama("halo dunia")"Halo Dunia"
kapitalPertama("belajar javascript itu seru")"Belajar Javascript Itu Seru"
kapitalPertama("satu")"Satu"

Hitung Vokal

pemulaString

Buat fungsi `hitungVokal(str)` yang menghitung jumlah huruf vokal (a, i, u, e, o) dalam sebuah string. Pengecekan case-insensitive.

Test cases:

hitungVokal("javascript")3
hitungVokal("AIUEO")5
hitungVokal("bcd")0

Faktorial

pemulaFungsi

Buat fungsi `faktorial(n)` yang menghitung faktorial dari bilangan n. Faktorial 0 adalah 1.

Test cases:

faktorial(5)120
faktorial(0)1
faktorial(3)6

Hapus Duplikat

pemulaArray

Buat fungsi `hapusDuplikat(arr)` yang mengembalikan array baru tanpa elemen duplikat.

Test cases:

hapusDuplikat([1, 2, 2, 3, 3, 4])[1, 2, 3, 4]
hapusDuplikat([5, 5, 5])[5]
hapusDuplikat([1, 2, 3])[1, 2, 3]

Celsius ke Fahrenheit

pemulaNumber

Buat fungsi `celsiusKeFahrenheit(celsius)` yang mengkonversi suhu dari Celsius ke Fahrenheit. Rumus: F = (C * 9/5) + 32.

Test cases:

celsiusKeFahrenheit(0)32
celsiusKeFahrenheit(100)212
celsiusKeFahrenheit(37)98.6

Cek Angka Prima

pemulaPercabangan

Buat fungsi `cekPrima(n)` yang mengembalikan true jika n adalah bilangan prima, dan false jika bukan.

Test cases:

cekPrima(7)true
cekPrima(4)false
cekPrima(1)false

Rata-rata Array

pemulaArray

Buat fungsi `rataRata(arr)` yang menghitung rata-rata dari semua elemen dalam array angka.

Test cases:

rataRata([2, 4, 6])4
rataRata([10, 20, 30, 40])25
rataRata([1, 1, 1])1

Fibonacci ke-N

pemulaLoop

Buat fungsi `fibonacci(n)` yang mengembalikan bilangan Fibonacci ke-n. Fibonacci dimulai dari 0, 1, 1, 2, 3, 5, ... (index dimulai dari 0).

Test cases:

fibonacci(6)8
fibonacci(0)0
fibonacci(10)55

Cek Anagram

pemulaString

Buat fungsi `cekAnagram(str1, str2)` yang mengecek apakah dua string adalah anagram (memiliki huruf yang sama dengan jumlah yang sama). Case-insensitive.

Test cases:

cekAnagram("listen", "silent")true
cekAnagram("hello", "world")false
cekAnagram("Tiga", "gait")true

Hitung Kemunculan

pemulaArray

Buat fungsi `hitungKemunculan(arr, target)` yang menghitung berapa kali target muncul dalam array.

Test cases:

hitungKemunculan([1, 2, 3, 2, 2, 4], 2)3
hitungKemunculan(["a", "b", "a"], "a")2
hitungKemunculan([1, 2, 3], 5)0

Truncate String

pemulaString

Buat fungsi `truncateString(str, maxLength)` yang memotong string jika lebih panjang dari maxLength dan menambahkan "..." di akhir. Jika string lebih pendek atau sama, kembalikan apa adanya.

Test cases:

truncateString("Halo dunia JavaScript", 10)"Halo dunia..."
truncateString("Hi", 5)"Hi"
truncateString("abcdef", 3)"abc..."

Array ke Object

pemulaObject

Buat fungsi `arrayKeObject(arr)` yang menerima array pasangan [key, value] dan mengembalikan object. Contoh: [["nama", "Budi"], ["umur", 20]] menjadi {nama: "Budi", umur: 20}.

Test cases:

arrayKeObject([["nama", "Budi"], ["umur", 20]]){"nama": "Budi", "umur": 20}
arrayKeObject([["a", 1], ["b", 2]]){"a": 1, "b": 2}
arrayKeObject([["x", true]]){"x": true}

Cek Tahun Kabisat

pemulaPercabangan

Buat fungsi `tahunKabisat(tahun)` yang mengembalikan true jika tahun tersebut adalah tahun kabisat. Aturan: habis dibagi 4, kecuali habis dibagi 100 (bukan kabisat), kecuali habis dibagi 400 (kabisat).

Test cases:

tahunKabisat(2000)true
tahunKabisat(1900)false
tahunKabisat(2024)true

135 tantangan dari pemula sampai lanjutan. Setiap bab juga punya challenge di akhir sub-topik — cek di halaman Belajar.