Masukkan Password
67 Metode repeat() & concat()
Lecture ini membahas dua String method yang cukup sederhana, yaitu:
repeat()โ mengulang sebuah Stringconcat()โ menggabungkan beberapa String
Keduanya juga nyambung dengan method String yang sudah kamu pelajari sebelumnya seperti slice(), padStart(), padEnd(), trim(), dan lain-lain.
1. repeat() โ untuk mengulang String
Bayangkan kita punya:
let str = "ABC";
Kalau kita ingin menghasilkan:
ABCABCABC
kita bisa menggunakan:
str.repeat(3);
Jadi secara sederhana:
repeat()= “ulang String ini sebanyak N kali.”
2. Syntax repeat()
Bentuknya:
string.repeat(count);
Contoh:
let str = "ABC";
let result = str.repeat(3);
console.log(result);
Hasil:
ABCABCABC
Karena:
ABC
โ repeat 3 kali
ABC + ABC + ABC
โ
ABCABCABC
3. Parameter count
repeat() hanya membutuhkan satu parameter, yaitu:
count
count menentukan berapa kali String diulang.
Contoh:
"ABC".repeat(1);
Hasil:
ABC
Karena diulang 1 kali.
"ABC".repeat(2);
Hasil:
ABCABC
"ABC".repeat(3);
Hasil:
ABCABCABC
"ABC".repeat(5);
Hasil:
ABCABCABCABCABC
4. Bagaimana kalau repeat(0)?
Ini bagian yang penting.
"ABC".repeat(0);
Hasilnya:
""
yaitu empty string.
Kenapa?
Karena kita meminta:
“Ulangi
ABCsebanyak 0 kali.”
Jadi tidak ada ABC yang dimasukkan.
Secara visual:
ABC
โ
repeat 0
โ
""
5. Bagaimana kalau repeat(1)?
"ABC".repeat(1);
Hasil:
ABC
Karena hanya satu copy:
ABC
Jadi bisa dibuat tabel:
count | Hasil |
|---|---|
0 | "" |
1 | "ABC" |
2 | "ABCABC" |
3 | "ABCABCABC" |
4 | "ABCABCABCABC" |
6. Bagaimana dengan Infinity?
Lecture mengatakan count harus berada dari 0 sampai infinity, tetapi ada sedikit koreksi penting:
Infinitysendiri tidak valid sebagai count.
Misalnya:
"ABC".repeat(Infinity);
akan menghasilkan error RangeError.
Kenapa?
Karena kalau benar-benar mengulang:
ABC
ABC
ABC
ABC
...
sampai infinity, String tersebut tidak akan pernah selesai dibuat.
Jadi:
0 โ boleh
1 โ boleh
2 โ boleh
10 โ boleh
100 โ boleh
Infinity โ โ
Untuk pembelajaran sekarang, cukup ingat:
repeat()membutuhkan jumlah pengulangan yang valid dan terbatas.
7. repeat() tidak mengubah String asli
Ini sama seperti method String yang sudah kamu pelajari sebelumnya.
Misalnya:
let str = "ABC";
str.repeat(3);
console.log(str);
Hasil:
ABC
str tetap "ABC".
Kenapa?
Karena repeat() menghasilkan String baru.
Jadi sebaiknya:
let str = "ABC";
let result = str.repeat(3);
console.log(str);
console.log(result);
Hasil:
ABC
ABCABCABC
Mental model:
str
โ
"ABC"
โ
โ repeat(3)
โ
"ABCABCABC"
String original tidak berubah.
8. repeat() berguna untuk apa?
Mungkin kamu berpikir:
“Kalau cuma mengulang String, memangnya berguna?”
Sebenarnya cukup banyak.
Misalnya kita ingin membuat garis:
--------------------
Daripada menulis 20 -:
"--------------------"
kita bisa:
"-".repeat(20);
Hasil:
--------------------
Lebih mudah kalau jumlahnya dinamis.
Misalnya:
let line = "-".repeat(30);
console.log(line);
9. Membuat dekorasi teks
Contoh:
console.log("*".repeat(10));
console.log("Hello");
console.log("*".repeat(10));
Hasil:
**********
Hello
**********
Ini contoh sederhana penggunaan repeat() untuk formatting.
10. repeat() dengan String yang lebih panjang
Tidak harus satu karakter.
Misalnya:
"ABC".repeat(3);
hasil:
ABCABCABC
Atau:
"ha".repeat(4);
hasil:
hahahaha
Atau:
"123 ".repeat(3);
hasil:
123 123 123
Jadi:
repeat()mengulang seluruh String yang dipanggil, bukan hanya satu karakter.
11. Sekarang masuk ke concat()
Method kedua adalah:
concat()
concat berasal dari kata concatenate.
Artinya:
menggabungkan beberapa String menjadi satu String.
Misalnya kita punya:
let greet = "Hello";
let message = "JavaScript";
Kita ingin:
HelloJavaScript
Bisa menggunakan:
greet.concat(message);
Hasil:
HelloJavaScript
12. Cara kerja concat()
Syntax:
string.concat(value1, value2, ...);
Contoh:
let str1 = "Hello";
let str2 = "JavaScript";
let result = str1.concat(str2);
console.log(result);
Hasil:
HelloJavaScript
Cara membacanya:
str1
โ
"Hello"
โ
concat(str2)
โ
"JavaScript"
โ
"HelloJavaScript"
13. Bisa menggabungkan lebih dari dua String
Ini salah satu kelebihan concat().
Misalnya:
let str1 = "Hello";
let str2 = "JavaScript";
let str3 = "World";
let result = str1.concat(str2, str3);
Hasil:
HelloJavaScriptWorld
Jadi:
str1.concat(str2, str3);
secara sederhana:
"Hello"
+
"JavaScript"
+
"World"
โ
"HelloJavaScriptWorld"
14. Bisa memasukkan String literal langsung
Tidak harus semuanya menggunakan variable.
Misalnya:
let greet = "Hello";
let result = greet.concat(" ", "JavaScript");
Hasil:
Hello JavaScript
Perhatikan " ".
Itu adalah String yang berisi satu spasi.
Jadi prosesnya:
"Hello"
+
" "
+
"JavaScript"
โ
"Hello JavaScript"
15. concat() bisa menerima banyak String
Misalnya:
let result = "Hello".concat(
" ",
"my",
" ",
"name",
" ",
"is",
" ",
"John"
);
Hasil:
Hello my name is John
Jadi parameter concat() bisa lebih dari satu.
16. concat() vs operator +
Ini bagian yang sangat penting karena kamu sebenarnya sudah pernah melakukan concatenation sebelumnya.
Kita bisa menulis:
let greet = "Hello";
let message = "JavaScript";
let result = greet + message;
Hasil:
HelloJavaScript
Atau:
let result = greet.concat(message);
Hasilnya sama:
HelloJavaScript
Jadi:
concat()
dan:
+
sama-sama bisa digunakan untuk menggabungkan String.
17. Contoh dengan spasi
Menggunakan concat():
let greet = "Hello";
let message = "JavaScript";
let result = greet.concat(" ", message);
Hasil:
Hello JavaScript
Dengan +:
let result = greet + " " + message;
Hasilnya sama:
Hello JavaScript
18. Mana yang lebih mudah dibaca?
Untuk JavaScript modern, kamu akan sering menemukan:
greet + " " + message
atau bahkan:
`${greet} ${message}`
daripada:
greet.concat(" ", message)
Contohnya:
let greet = "Hello";
let message = "JavaScript";
let result = `${greet} ${message}`;
Hasil:
Hello JavaScript
Untuk kode modern, template literal sering lebih nyaman ketika String-nya sudah mulai kompleks.
Tapi bukan berarti concat() tidak penting.
Kamu tetap perlu memahami concat() karena:
- method ini bagian dari API String;
- kamu akan menemukannya dalam kode orang lain;
- konsep concatenation sangat fundamental.
19. concat() juga tidak mengubah String asli
Sama seperti repeat().
Misalnya:
let greet = "Hello";
greet.concat(" World");
console.log(greet);
Hasil:
Hello
Kenapa?
Karena concat() menghasilkan String baru.
Kalau ingin menyimpan:
let greet = "Hello";
let result = greet.concat(" World");
console.log(greet);
console.log(result);
Hasil:
Hello
Hello World
20. Ini nyambung dengan konsep String immutable
Sebelumnya kita sudah belajar:
String di JavaScript bersifat immutable.
Artinya isi String yang sudah dibuat tidak bisa diubah langsung.
Misalnya:
let name = "John";
Ketika kita melakukan:
name.toUpperCase();
String "John" tidak diubah menjadi "JOHN".
Method tersebut menghasilkan String baru.
Hal yang sama:
name.repeat(2);
menghasilkan String baru.
Dan:
name.concat(" Doe");
juga menghasilkan String baru.
21. Perbandingan repeat(), concat(), dan +
Sekarang kita punya tiga cara/konsep yang berhubungan.
repeat()
Tujuannya:
mengulang String
"ABC".repeat(3);
Hasil:
ABCABCABC
concat()
Tujuannya:
menggabungkan String
"Hello".concat(" World");
Hasil:
Hello World
+
Bisa digunakan untuk:
menggabungkan String
"Hello" + " World";
Hasil:
Hello World
22. Jangan tertukar concat() dengan repeat()
Misalnya:
"ABC".repeat(3);
Artinya:
ABC
ABC
ABC
Hasil:
ABCABCABC
Sedangkan:
"ABC".concat("DEF");
artinya:
ABC
+
DEF
Hasil:
ABCDEF
Jadi:
repeat()
โ
String yang sama diulang
concat()
โ
String yang berbeda digabung
23. concat() juga bisa digabung dengan repeat()
Ini menarik karena method-method String bisa kita chain atau kombinasikan.
Misalnya:
let result = "*".repeat(3).concat(" Hello");
Pertama:
"*".repeat(3);
menghasilkan:
***
Kemudian:
"***".concat(" Hello");
menghasilkan:
*** Hello
Flow:
"*"
โ repeat(3)
"***"
โ concat(" Hello")
"*** Hello"
Ini contoh bagus bahwa hasil dari satu method bisa menjadi input untuk method berikutnya.
24. Contoh lain
let name = "John";
let result = "*".repeat(3)
.concat(" Hello ", name, " ")
.concat("*".repeat(3));
console.log(result);
Hasil:
*** Hello John ***
Flow:
"*"
โ repeat(3)
"***"
โ concat(" Hello ", "John", " ")
"*** Hello John "
โ
"*".repeat(3)
"***"
โ concat(...)
"*** Hello John ***"
Ini memang bukan cara yang paling modern untuk menulis formatting, tetapi bagus untuk memahami bagaimana String methods dapat dirangkai.
25. Perhatikan konsep chaining
Kamu akan semakin sering melihat pola seperti:
str.method1().method2().method3();
Contoh:
let result = " hello ".trim().toUpperCase();
Flow:
" hello "
โ
trim()
โ
"hello"
โ
toUpperCase()
โ
"HELLO"
Begitu juga:
let result = "*".repeat(3).concat("Hello");
Flow:
"*"
โ
repeat(3)
โ
"***"
โ
concat("Hello")
โ
"***Hello"
Ini disebut method chaining.
26. Perbandingan dengan push() pada Array
Ini penting karena kamu juga sedang belajar Array methods.
Jangan tertukar:
array.push(...)
dengan:
string.concat(...)
push()
Untuk Array:
let fruits = ["Apple", "Banana"];
fruits.push("Orange");
Array menjadi:
["Apple", "Banana", "Orange"]
push() menambahkan element ke Array.
concat()
Untuk String:
let a = "Hello";
let b = "World";
let result = a.concat(" ", b);
Hasil:
"Hello World"
concat() menggabungkan String.
27. concat() vs Array.concat()
Ada hal menarik: Array juga mempunyai concat().
String:
"Hello".concat(" World");
Array:
[1, 2].concat([3, 4]);
Hasil:
[1, 2, 3, 4]
Jadi nama method-nya sama, tetapi digunakan pada tipe data yang berbeda.
Secara konsep:
String.concat()
โ menggabungkan String
Array.concat()
โ menggabungkan Array
28. Contoh praktis sederhana
Misalnya kita ingin membuat judul:
====================
Hello JavaScript
====================
Kita bisa menggunakan repeat():
let line = "=".repeat(20);
console.log(line);
console.log("Hello JavaScript");
console.log(line);
Hasil:
====================
Hello JavaScript
====================
Kalau kita ingin membuat String-nya menggunakan concat():
let title = "Hello".concat(" ", "JavaScript");
console.log(title);
Hasil:
Hello JavaScript
29. Bedakan repeat() dengan padStart()
Ini juga sangat penting karena lecture sebelumnya membahas padStart().
Keduanya memang bisa menghasilkan karakter berulang, tetapi tujuannya berbeda.
repeat()
"*".repeat(5);
Artinya:
Buat 5 buah
*.
Hasil:
*****
padStart()
"ABC".padStart(8, "*");
Artinya:
Tambahkan
*sampai panjang total String menjadi 8.
Hasil:
*****ABC
Perbedaannya:
repeat()
โ jumlah pengulangan
padStart()
โ panjang total hasil
30. Contoh perbandingan yang sangat jelas
Misalnya:
"*".repeat(5);
hasil:
*****
Jumlah * = 5.
Sedangkan:
"ABC".padStart(8, "*");
hasil:
*****ABC
Jumlah * memang 5, tetapi itu karena:
target = 8
original = 3
8 - 3 = 5
Jadi jangan menganggap:
padStart(8, "*")
berarti:
8 buah *
Bukan.
31. Cheat sheet repeat()
"ABC".repeat(0);
// ""
"ABC".repeat(1);
// "ABC"
"ABC".repeat(2);
// "ABCABC"
"ABC".repeat(3);
// "ABCABCABC"
"ABC".repeat(5);
// "ABCABCABCABCABC"
"*".repeat(10);
// "**********"
Mental model:
String
โ
repeat(count)
โ
String yang sama sebanyak count kali
32. Cheat sheet concat()
let a = "Hello";
let b = "JavaScript";
a.concat(b);
// "HelloJavaScript"
a.concat(" ", b);
// "Hello JavaScript"
a.concat(" ", "World");
// "Hello World"
a.concat(" ", b, " ", "World");
// "Hello JavaScript World"
Mental model:
String utama
โ
concat(value1, value2, ...)
โ
semuanya digabung
33. Ringkasan semua method String yang sudah kamu pelajari
Sekarang semakin banyak tools yang kamu punya:
| Method | Fungsi |
|---|---|
slice() | mengambil sebagian String |
substring() | mengambil sebagian String |
toUpperCase() | mengubah menjadi huruf kapital |
toLowerCase() | mengubah menjadi huruf kecil |
trim() | menghapus whitespace di kiri & kanan |
trimStart() | menghapus whitespace di kiri |
trimEnd() | menghapus whitespace di kanan |
padStart() | menambahkan padding di awal sampai panjang tertentu |
padEnd() | menambahkan padding di akhir sampai panjang tertentu |
repeat() | mengulang String beberapa kali |
concat() | menggabungkan beberapa String |
includes() | mengecek apakah String mengandung teks |
indexOf() | mencari posisi teks |
34. ๐ง Mental model besar
Coba kelompokkan method-method ini berdasarkan tugasnya.
โ๏ธ Mengambil bagian
slice()
substring()
๐ค Mengubah bentuk teks
toUpperCase()
toLowerCase()
๐งน Membersihkan teks
trim()
trimStart()
trimEnd()
๐ Mengatur panjang
padStart()
padEnd()
๐ Mengulang
repeat()
๐ Menggabungkan
concat()
Ini akan membantu kamu mengingatnya tanpa harus menghafalkan secara acak.
35. Kesimpulan lecture
Ada dua method utama.
repeat()
str.repeat(count);
Artinya:
Ulangi String ini sebanyak
countkali.
Contoh:
"ABC".repeat(3);
// "ABCABCABC"
0 menghasilkan empty String:
"ABC".repeat(0);
// ""
Dan Infinity tidak valid.
concat()
str.concat(value1, value2, ...);
Artinya:
Gabungkan String ini dengan String/String lain.
Contoh:
"Hello".concat(" ", "JavaScript");
// "Hello JavaScript"
Bisa juga banyak:
"Hello".concat(" ", "JavaScript", " ", "World");
// "Hello JavaScript World"
Yang paling penting untuk diingat
repeat()
โ
"ABC" โ "ABCABCABC"
โ
diulang
concat()
โ
"Hello" + "JavaScript"
โ
"HelloJavaScript"
โ
digabung
Dan seperti method String yang sudah kamu pelajari:
repeat()danconcat()tidak mengubah String original. Keduanya menghasilkan String baru.
Jadi pola besarnya sekarang mulai terlihat:
STRING
โ
โโโ slice() โ ambil bagian
โโโ substring() โ ambil bagian
โโโ trim() โ bersihkan ujung
โโโ toUpperCase() โ ubah kapitalisasi
โโโ padStart() โ tambah di depan
โโโ padEnd() โ tambah di belakang
โโโ repeat() โ ulangi
โโโ concat() โ gabungkan
Kalau kamu sudah memahami pola ini, kamu tidak perlu menghafal method sebagai daftar terpisah. Kamu bisa mulai berpikir: “Saya sedang ingin melakukan apa terhadap String saya?” lalu memilih method yang sesuai.