Menguasai Pola Bintang: Trik Rekursi, Manipulasi String, dan Array Javascript
Membuat pola bintang adalah salah satu latihan populer dalam pemrograman untuk mengasah keterampilan logika dan pemahaman struktur pengulangan. Dalam artikel ini, kita akan membahas tiga metode untuk menghasilkan pola bintang dengan menggunakan rekursi, string manipulation, array methods, dan generator functions.
1. Menggunakan Rekursi
Rekursi adalah metode di mana fungsi memanggil dirinya sendiri untuk menyelesaikan masalah. Dalam konteks pola bintang, kita dapat menggunakan rekursi untuk membangun baris pola bintang secara bertahap.
Contoh Pola Segitiga Bintang
*
**
***
****
*****
Kode
function printStarsRecursion(n, current = 1) {
if (current > n) return;
console.log('*'.repeat(current));
printStarsRecursion(n, current + 1);
}
printStarsRecursion(5);
Penjelasan
Fungsi printStarsRecursion menerima dua argumen, yaitu n sebagai jumlah baris dan current sebagai penanda baris saat ini. Setiap iterasi mencetak current jumlah bintang dan kemudian memanggil dirinya sendiri dengan current + 1, hingga mencapai n.
2. Menggunakan String Manipulation
Manipulasi string memungkinkan kita untuk dengan mudah menghasilkan dan menggabungkan karakter sesuai kebutuhan. Kita dapat memanfaatkan metode seperti repeat()
untuk mengulangi karakter bintang dan menggabungkannya menjadi pola yang diinginkan.
Contoh Pola Segitiga Terbalik
*****
****
***
**
*
Kode
function printStarsStringManipulation(n) {
for (let i = n; i > 0; i--) {
console.log('*'.repeat(i));
}
}
printStarsStringManipulation(5);
Penjelasan
Pada pendekatan ini, kita menggunakan manipulasi string sederhana dengan metode repeat()
untuk menghasilkan baris bintang yang berkurang pada setiap iterasi loop, mulai dari n hingga 1.
3. Menggunakan Array Methods dan Generator Functions
Generator function di JavaScript adalah fitur yang memungkinkan kita membuat fungsi yang menghasilkan serangkaian nilai secara bertahap, tanpa menghentikan eksekusi utama. Kita dapat menggunakannya bersama metode array seperti map()
, fill()
, dan join()
untuk menghasilkan pola bintang.
Contoh Pola Persegi Bintang
*****
*****
*****
*****
*****
Kode
function* generateStars(n) {
for (let i = 0; i < n; i++) {
yield Array(n).fill('*').join('');
}
}
const starGenerator = generateStars(5);
for (const line of starGenerator) {
console.log(line);
}
Penjelasan
Dalam metode ini, kita menggunakan generator function generateStars
untuk menghasilkan baris bintang secara bertahap menggunakan Array. fill()
yang mengisi array dengan bintang dan join()
untuk menggabungkan elemen menjadi string. Setiap baris dihasilkan satu per satu dengan menggunakan yield
, dan kemudian ditampilkan menggunakan loop for-of.
Kesimpulan
Membuat pola bintang dapat diselesaikan dengan berbagai pendekatan tergantung pada alat dan teknik yang digunakan. Pada artikel ini, kita telah mengeksplorasi tiga metode:
- Rekursi: Membagi masalah menjadi bagian-bagian yang lebih kecil, cocok untuk pola bertahap seperti segitiga.
- String Manipulation: Efektif untuk menghasilkan pola sederhana dengan pengulangan karakter.
- Array Methods dan Generator Functions: Ideal untuk kontrol yang lebih baik dalam memproses pola besar secara bertahap.
Dengan memahami berbagai pendekatan ini, Anda dapat lebih fleksibel dalam menyelesaikan tantangan pola di berbagai bahasa pemrograman.