Membalik Kata di JavaScript dengan Satu Baris Kode

Membalik Kata di JavaScript dengan Satu Baris Kode
Photo by Nubelson Fernandes / Unsplash

Pengenalan

Pernahkah kamu berpikir bagaimana cara membalik sebuah kata atau kalimat dalam JavaScript dengan cara yang paling efisien? Dalam dunia pemrograman, manipulasi string adalah salah satu tugas yang sering dilakukan. Membalik kata atau kalimat bisa berguna dalam berbagai skenario, mulai dari algoritma dasar, tantangan coding, hingga validasi palindrome.

Dalam artikel ini, kita akan membahas berbagai cara membalik kata di JavaScript, termasuk metode satu baris kode yang sangat simpel dan efisien.

Cara Termudah Membalik Kata dalam Satu Baris Kode

JavaScript menyediakan metode bawaan yang memungkinkan kita untuk memanipulasi string dengan mudah. Berikut adalah satu baris kode sederhana untuk membalik kata:

const balikKata = str => str.split('').reverse().join('');

console.log(balikKata("JavaScript")); // Output: "tpircSavaJ"

Penjelasan:

  • split('') → Mengubah string menjadi array karakter.
  • reverse() → Membalik urutan elemen dalam array.
  • join('') → Menggabungkan kembali array menjadi string.

Dengan satu baris kode ini, kita bisa membalik kata dengan mudah dan efisien.

Membalik Kalimat secara Keseluruhan

Bagaimana jika kita ingin membalik seluruh kalimat tetapi tetap mempertahankan urutan kata? Misalnya:

const balikKalimat = str => str.split(' ').reverse().join(' ');

console.log(balikKalimat("Saya belajar JavaScript"));
// Output: "JavaScript belajar Saya"

Penjelasan:

  • split(' ') → Memisahkan string berdasarkan spasi sehingga setiap kata menjadi elemen array.
  • reverse() → Membalik urutan elemen dalam array.
  • join(' ') → Menggabungkan kembali array menjadi string dengan spasi di antara kata-kata.

Hasilnya, urutan kata berubah tetapi masing-masing kata tetap dalam bentuk aslinya.

Membalik Setiap Kata dalam Kalimat

Jika kita ingin membalik setiap kata dalam kalimat tetapi tetap mempertahankan urutan kata, kita bisa menggunakan map().

const balikSetiapKata = str => str.split(' ').map(word => word.split('').reverse().join('')).join(' ');

console.log(balikSetiapKata("Saya belajar JavaScript"));
// Output: "ayaS rajaleb tpircSavaJ"

Penjelasan:

  • split(' ') → Memisahkan string menjadi array kata-kata.
  • map(word => word.split('').reverse().join('')) → Membalik setiap kata dalam array.
  • join(' ') → Menggabungkan array kembali menjadi string dengan spasi di antara kata-kata.

Metode ini berguna jika kita ingin mempertahankan struktur kalimat tetapi membalik setiap kata.

Alternatif dengan Loop for

Jika tidak ingin menggunakan metode bawaan seperti map(), kita bisa menggunakan for loop untuk membalik kata dalam string secara manual:

function balikManual(str) {
  let hasil = '';
  for (let i = str.length - 1; i >= 0; i--) {
    hasil += str[i];
  }
  return hasil;
}

console.log(balikManual("JavaScript"));
// Output: "tpircSavaJ"

Penjelasan:

  • Loop berjalan dari karakter terakhir (str.length - 1) ke awal (i >= 0).
  • Setiap karakter ditambahkan ke variabel hasil.

Metode ini memberikan fleksibilitas lebih, terutama jika kita ingin memodifikasi proses pembalikan kata.

Membalik Kata Menggunakan reduce()

Cara lain yang cukup menarik adalah menggunakan reduce() untuk membalik string:

const balikDenganReduce = str => [...str].reduce((acc, char) => char + acc, '');

console.log(balikDenganReduce("JavaScript"));
// Output: "tpircSavaJ"

Penjelasan:

  • spread operator ([...str]) digunakan untuk mengubah string menjadi array karakter.
  • reduce() digunakan untuk menambahkan setiap karakter ke awal akumulator, sehingga hasilnya menjadi terbalik.

Metode ini memberikan fleksibilitas lebih karena reduce() bisa digunakan untuk operasi lebih kompleks.

Menggunakan Rekursi untuk Membalik Kata

Rekursi adalah metode lain yang bisa digunakan untuk membalik kata dalam JavaScript:

function balikRekursif(str) {
  return str.length === 0 ? '' : balikRekursif(str.slice(1)) + str[0];
}

console.log(balikRekursif("JavaScript"));
// Output: "tpircSavaJ"

Penjelasan:

  • Basis rekursi terjadi ketika str.length === 0.
  • Pada setiap langkah rekursi, kita mengambil substring mulai dari indeks 1 (str.slice(1)) dan menambahkan karakter pertama (str[0]) di akhir hasil rekursi.

Meskipun rekursi bisa terlihat keren, penggunaannya bisa lebih berat dibanding metode lain jika string terlalu panjang.

Kesimpulan

  • Metode satu baris (split('').reverse().join('')) adalah cara tercepat untuk membalik kata di JavaScript.
  • Jika ingin membalik urutan kata dalam kalimat, gunakan split(' ').reverse().join(' ').
  • Untuk membalik setiap kata tanpa mengubah urutan kalimat, gunakan map().
  • Menggunakan for loop memberikan kontrol lebih dibanding metode bawaan.
  • Metode reduce() bisa digunakan untuk solusi lebih kreatif.
  • Rekursi adalah alternatif menarik, tetapi kurang efisien untuk string panjang.

Sekarang, setelah memahami berbagai metode membalik kata di JavaScript, kamu bisa memilih metode yang paling cocok sesuai kebutuhan. Coba langsung di kode kamu dan eksplor lebih lanjut!