DEV Community

Ramadhanty Sadewi
Ramadhanty Sadewi

Posted on

Cara Membuat Fungsi longestWord di JavaScript dengan Penjelasan Teknis

Menemukan Kata Terpanjang di JavaScript dengan longestWord

Oke, jadi kali ini aku mau sharing tentang sebuah fungsi simpel tapi cukup menarik yang aku temui waktu belajar JavaScript dan aku menemukan ini di codewars. Nama fungsinya adalah longestWord. Seperti namanya, fungsi ini bakal mencari dan mengembalikan kata terpanjang dari sebuah string.

Aku akan jelaskan kenapa fungsi ini bisa jalan, metode-metode apa aja yang dipakai, dan alasannya. Yuk, langsung aja ke penjelasan detailnya!


Tujuan Fungsi longestWord

Fungsi ini tugasnya simpel: menerima input berupa string yang berisi beberapa kata (dipisahkan spasi), lalu mengembalikan kata terpanjang. Kalau ternyata ada lebih dari satu kata dengan panjang yang sama, fungsi ini bakal ambil kata terakhir yang ditemukan.

Contohnya kayak gini:

longestWord("Aku sedang belajar JavaScript yang menyenangkan");
// Output: "menyenangkan"
Enter fullscreen mode Exit fullscreen mode
longestWord("red blue gold");
// Output: "gold"
Enter fullscreen mode Exit fullscreen mode

Kode Fungsinya

Ini kodenya, pendek banget, tapi kerennya di balik layar ada banyak hal yang terjadi:

function longestWord(stringOfWords) {
  return stringOfWords
    .split(' ') // Pecah string jadi array kata-kata
    .sort((a, b) => a.length - b.length) // Urutkan berdasarkan panjang
    .slice(-1) // Ambil elemen terakhir (kata terpanjang)
    .toString(); // Ubah jadi string lagi
}
Enter fullscreen mode Exit fullscreen mode

Penjelasan Teknis

1. Memisahkan String Jadi Array Kata: .split(' ')

Pertama, string yang dimasukkan dipecah jadi array kata-kata dengan metode split(' '). Jadi spasi di string itu kayak pemisah antar kata.

Misalnya:

"Aku sedang belajar".split(' ');
// Output: ["Aku", "sedang", "belajar"]
Enter fullscreen mode Exit fullscreen mode

Ini penting karena kita nggak bisa langsung manipulasi string kayak array. Dengan split, tiap kata jadi elemen array yang gampang banget dikelola.


2. Mengurutkan Kata Berdasarkan Panjang: .sort((a, b) => a.length - b.length)

Setelah jadi array, kita urutkan kata-kata itu dari yang terpendek sampai terpanjang pakai metode sort.

Di dalam sort, aku kasih callback (a, b) => a.length - b.length. Intinya, aku minta JavaScript ngurutkan elemen array berdasarkan panjangnya.

Hasilnya?

["Aku", "sedang", "belajar"].sort((a, b) => a.length - b.length);
// Output: ["Aku", "sedang", "belajar"]
Enter fullscreen mode Exit fullscreen mode

3. Ambil Kata Terpanjang: .slice(-1)

Karena array sudah diurutkan, kata paling panjang pasti ada di ujung array. Nah, slice(-1) fungsinya buat ambil elemen terakhir.

Contohnya kayak gini:

["Aku", "sedang", "belajar"].slice(-1);
// Output: ["belajar"]
Enter fullscreen mode Exit fullscreen mode

4. Ubah Lagi Jadi String: .toString()

Hasil dari slice(-1) itu sebenarnya masih berbentuk array, walaupun isinya cuma satu elemen. Supaya sesuai dengan output yang diminta, kita ubah lagi jadi string pakai toString().

Hasil akhirnya:

["belajar"].toString();
// Output: "belajar"
Enter fullscreen mode Exit fullscreen mode

Kenapa Pakai Metode-Metode Ini?

  1. split(' '): Karena string itu sifatnya immutable (nggak bisa diubah langsung), aku pecah dulu jadi array biar gampang diolah.
  2. sort(): Cara tercepat buat cari elemen terbesar atau terpanjang adalah dengan ngurutkan dulu datanya.
  3. slice(-1): Ini trik simple buat langsung ambil elemen terakhir dari array.
  4. toString(): Karena output akhirnya harus berbentuk string, ini step terakhirnya.

Buat aku, fungsi longestWord ini kayak latihan yang bagus buat ngingetin beberapa metode penting di JavaScript, terutama buat kerja dengan string dan array. Dari fungsi ini, aku juga jadi makin paham gimana cara kerja split, sort, slice dan toString.

Kalau kamu ada ide lain buat nyelesain masalah ini, atau mungkin mau optimasi lebih lanjut, yuk diskusi bareng di kolom komentar! ๐Ÿ˜Š

Top comments (0)