- 1 1. Pendahuluan
- 2 2. Informasi Dasar dan Penggunaan Setiap Metode
- 3 3. Tabel Perbandingan Setiap Metode
- 4 4. Contoh Kode Praktis
- 5 5. Cara Menangani Metode yang Usang
- 6 6. Pertanyaan yang Sering Diajukan (FAQ)
- 6.1 Q1: Masih bisakah saya menggunakan substr?
- 6.2 Q2: Apa perbedaan antara slice dan substring?
- 6.3 Q3: Apa risiko terus menggunakan metode yang deprecated?
- 6.4 Q4: Metode mana yang terbaik untuk string panjang?
- 6.5 Q5: Bagaimana cara menghitung mundur menggunakan nilai negatif?
- 6.6 Q6: Apakah Ada Perbedaan Performa?
- 7 7. Ringkasan dan Praktik Terbaik yang Direkomendasikan
- 8 8. Tautan Terkait dan Referensi
1. Pendahuluan
JavaScript adalah bahasa pemrograman penting dalam pengembangan web. Khususnya, manipulasi string sering digunakan untuk memformat data, analisis, dan memperbarui UI secara dinamis.
Dalam artikel ini, kami akan menjelaskan secara detail tiga metode string JavaScript yang umum digunakan—substr, substring, dan slice. Karena metode‑metode ini memberikan fungsionalitas yang serupa, memahami perbedaannya akan membantu Anda memilih yang tepat untuk setiap situasi.
Kami juga akan membahas mengapa substr telah ditandai usang dan memberikan pendekatan alternatif, serta memberikan saran praktis untuk menulis JavaScript dengan praktik terbaik modern.
2. Informasi Dasar dan Penggunaan Setiap Metode
Bagian ini menjelaskan sintaks dasar dan penggunaan substr, substring, dan slice. Memahami metode‑metode ini akan membantu Anda memilih yang tepat serta meningkatkan keterbacaan dan pemeliharaan kode.
2.1 Metode substr
Sintaks:
string.substr(start, length)
Deskripsi:
start: Menentukan indeks awal untuk ekstraksi (berbasis 0).length: Menentukan jumlah karakter yang akan diekstrak. Jika diabaikan, ekstraksi berlanjut hingga akhir string.
Contoh Penggunaan:
let str = "JavaScript";
console.log(str.substr(0, 4)); // Output: "Java"
console.log(str.substr(4, 6)); // Output: "Script"
Catatan:
Metode substr telah usang, dan disarankan untuk tidak menggunakannya dalam kode di masa mendatang. Gunakan slice atau substring sebagai gantinya.
Contoh Alternatif (menggunakan slice):
let str = "JavaScript";
console.log(str.slice(0, 4)); // Output: "Java"
console.log(str.slice(4)); // Output: "Script"
2.2 Metode substring
Sintaks:
string.substring(start, end)
Deskripsi:
start: Indeks awal ekstraksi.end: Indeks akhir (karakter pada indeks ini tidak termasuk).
Contoh Penggunaan:
let str = "JavaScript";
console.log(str.substring(0, 4)); // Output: "Java"
console.log(str.substring(4, 10)); // Output: "Script"
Poin:
- Urutan argumen secara otomatis diperbaiki: Jika Anda memanggil
substring(10, 4), itu akan diperlakukan sebagaisubstring(4, 10). - Nilai negatif diabaikan: Setiap argumen negatif diperlakukan sebagai 0.
Contoh alternatif ketika nilai negatif diperlukan (menggunakan slice):
let str = "JavaScript";
console.log(str.slice(-6)); // Output: "Script"
2.3 Metode slice
Sintaks:
string.slice(start, end)
Deskripsi:
start: Indeks awal ekstraksi.end: Indeks akhir (karakter pada indeks ini tidak termasuk).
Contoh Penggunaan:
let str = "JavaScript";
console.log(str.slice(0, 4)); // Output: "Java"
console.log(str.slice(-6)); // Output: "Script"
Poin:
- Mendukung nilai negatif: Indeks negatif dihitung dari akhir string.
- Bekerja untuk string maupun array: Ia juga dapat mengekstrak elemen dari array, menjadikannya sangat serbaguna.

3. Tabel Perbandingan Setiap Metode
| Method | Start Position | End Position | Negative Values | Recommendation Level |
|---|---|---|---|---|
substr | Required | Length-based | × | Deprecated |
substring | Required | Required | × | High |
slice | Required | Required | ○ | Highly Recommended |
Memilih Metode yang Tepat Berdasarkan Kasus Penggunaan:
- Mengekstrak segmen pendek: →
slice - Saat nilai negatif diperlukan: →
slice - Kompatibilitas kode lama: → Hindari
substr; migrasikan bila diperlukan
4. Contoh Kode Praktis
Manipulasi String Dasar
let text = "JavaScriptProgramming";
// Extract the first 10 characters
console.log(text.slice(0, 10)); // "JavaScript"
// Extract the last 3 characters
console.log(text.slice(-3)); // "ing"
Mengekstrak Nilai Berdasarkan Pola
let url = "https://example.com/index.html";
// Get the file name
console.log(url.slice(url.lastIndexOf("/") + 1)); // "index.html"
5. Cara Menangani Metode yang Usang
Metode substr pada JavaScript telah usang. Hal ini karena substr telah diklasifikasikan sebagai metode yang tidak direkomendasikan dalam spesifikasi ECMAScript terbaru.
Bagian ini menjelaskan masalah dengan substr, metode alternatif, dan cara memigrasikan kode Anda.
5.1 Mengapa substr Didepresiasi?
- Keterbacaan yang buruk:
substrmenggunakan argumen kedua sebagai “jumlah karakter yang akan diambil,” yang berbeda dari metode lain yang menggunakan indeks akhir. Ketidakkonsistenan ini membuat kode lebih sulit dipahami.
- Kemungkinan masalah kompatibilitas di masa depan karena perubahan spesifikasi:
- Fitur lama didepresiasi selama standarisasi ECMAScript. Kode baru seharusnya tidak bergantung pada mereka.
- Tidak mendukung nilai negatif:
substrtidak mendukung indeks negatif, sementaraslicemendukungnya.
5.2 Cara Migrasi ke Metode Modern
Kasus 1: Mengambil Substring dengan Panjang Tetap
// Deprecated code
let str = "JavaScript";
console.log(str.substr(0, 4)); // "Java"
// Recommended (slice)
console.log(str.slice(0, 4)); // "Java"
Kasus 2: Mengambil Akhir String
// Deprecated code
console.log(str.substr(-6)); // Error (negative not supported)
// Recommended (slice)
console.log(str.slice(-6)); // "Script"
Kasus 3: Mengambil Bagian URL atau Nama File
let url = "https://example.com/index.html";
// Deprecated code
let filename = url.substr(url.lastIndexOf("/") + 1);
console.log(filename); // "index.html"
// Recommended (slice)
let filenameNew = url.slice(url.lastIndexOf("/") + 1);
console.log(filenameNew); // "index.html"
5.3 Poin Refaktorisasi untuk Kode Legacy
- Lakukan pemindaian kode:
- Gunakan alat seperti ESLint untuk mendeteksi di mana
substrdigunakan.
- Perkuat cakupan pengujian:
- Gunakan unit test untuk memastikan perilaku tetap benar setelah mengganti metode.
- Migrasi secara bertahap:
- Prioritaskan penggantian pada bagian yang penting atau sering dieksekusi.
5.4 Manfaat Migrasi dari substr
- Keterbacaan dan pemeliharaan yang lebih baik:
- Niat kode menjadi lebih jelas, meningkatkan pemahaman tim.
- Kompatibilitas dengan standar modern:
- Mengikuti standar ECMAScript memastikan stabilitas jangka panjang.
- Dukungan fleksibel untuk nilai negatif:
slicememungkinkan ekstraksi singkat dari posisi awal maupun akhir.

6. Pertanyaan yang Sering Diajukan (FAQ)
Bagian ini merangkum pertanyaan umum dan jawabannya tentang metode manipulasi string JavaScript.
Q1: Masih bisakah saya menggunakan substr?
A: Ya, sebagian besar browser modern masih mendukung substr.
Namun, karena ECMAScript menandainya sebagai deprecated, sebaiknya dihindari dalam proyek baru atau basis kode yang memerlukan kompatibilitas di masa depan. Alternatif yang direkomendasikan:
let str = "JavaScript";
console.log(str.slice(0, 4)); // "Java"
Q2: Apa perbedaan antara slice dan substring?
A: Tabel di bawah merangkum perbedaannya:
| Feature | slice | substring |
|---|---|---|
| End index behavior | End index is excluded | End index is excluded |
| Negative values | Supported | Treated as 0 |
| Flexibility | High | Moderate |
| Recommendation | Highly recommended | Recommended |
Contoh:
let str = "JavaScript";
// slice examples
console.log(str.slice(0, 4)); // "Java"
console.log(str.slice(-6)); // "Script"
// substring examples
console.log(str.substring(0, 4)); // "Java"
console.log(str.substring(4, 10)); // "Script"
Q3: Apa risiko terus menggunakan metode yang deprecated?
A:
- Kemungkinan penghapusan dukungan browser:
substrmungkin akhirnya tidak didukung. - Biaya pemeliharaan yang meningkat: Debugging fitur yang deprecated memakan waktu tambahan.
- Kualitas kode yang menurun: Tidak mengikuti standar modern mengurangi keterbacaan.
Q4: Metode mana yang terbaik untuk string panjang?
A: slice adalah yang terbaik karena mendukung indeks negatif dan menawarkan fleksibilitas tinggi. Contoh:
let longText = "This is a very long text string used for testing purposes.";
// First 10 characters
console.log(longText.slice(0, 10)); // "This is a "
// Last 10 characters
console.log(longText.slice(-10)); // "purposes."
Q5: Bagaimana cara menghitung mundur menggunakan nilai negatif?
A: Gunakan slice, karena substring memperlakukan nilai negatif sebagai 0. Contoh:
let str = "JavaScript";
// slice supports negative values
console.log(str.slice(-6)); // "Script"
// substring treats negative as 0
console.log(str.substring(-6)); // "JavaScript"
Q6: Apakah Ada Perbedaan Performa?
J: Browser modern tidak menunjukkan perbedaan performa utama di antara slice, substring, atau substr.
Karena semuanya adalah fungsi native, utamakan keterbacaan dan kemudahan pemeliharaan daripada mikro-optimasi.
7. Ringkasan dan Praktik Terbaik yang Direkomendasikan
Dalam artikel ini, kami mengeksplorasi metode string JavaScript substr, substring, dan slice, mencakup sintaks dasar, perbedaan, contoh kode praktis, dan strategi migrasi untuk metode yang sudah usang.
Bagian ini mengatur ulang karakteristik utama dari setiap metode dan menyajikan praktik terbaik modern yang direkomendasikan.
7.1 Ringkasan Setiap Metode
| Method Name | Main Characteristics | Recommendation Level |
|---|---|---|
substr | Specifies start index and length; does not support negative values. Deprecated. | Not Recommended |
substring | Specifies start and end indices; negative values become 0. Suitable for simple use cases. | Recommended |
slice | Specifies start and end indices; supports negative values. Very flexible and versatile. | Highly Recommended |
7.2 Kriteria Pemilihan Praktis
- Gunakan
substringuntuk ekstraksi rentang sederhana:
- Terbaik ketika nilai negatif tidak diperlukan. Contoh:
let str = "JavaScript"; console.log(str.substring(0, 4)); // Output: "Java"
- Gunakan
sliceuntuk fleksibilitas maksimal:
- Mendukung indeks negatif dan merupakan metode yang disukai untuk kode baru. Contoh:
let str = "JavaScript"; console.log(str.slice(-6)); // Output: "Script"
- Ganti
substrsecepat mungkin:
- Migrasi ke
sliceatausubstringsaat memelihara kode lama.
7.3 Praktik Terbaik Modern
- Tulis kode dengan mempertimbangkan keterbacaan:
- Kode yang jelas dan ringkas meningkatkan kemudahan pemeliharaan jangka panjang.
- Hindari metode yang sudah usang:
substrmungkin kehilangan dukungan browser di pembaruan mendatang—migrasi lebih awal.
- Gunakan
slicesaat bekerja dengan nilai negatif:
sliceadalah satu-satunya metode yang menangani indeks negatif dengan benar.
- Gunakan ESLint dan suite tes untuk menjaga kualitas kode:
- Analisis statis membantu mendeteksi metode yang sudah usang dan menerapkan gaya pengkodean modern.
7.4 Contoh Gaya Pengkodean Modern
// Example: Extract domain from an email address
let email = "user@example.com";
let domain = email.slice(email.indexOf("@") + 1);
console.log(domain); // Output: "example.com"
// Example: Get file extension from a URL
let url = "document.pdf";
let extension = url.slice(-3);
console.log(extension); // Output: "pdf"
7.5 Rencana Aksi untuk Pembaca
- Tinjau kode yang ada:
- Periksa apakah
substrdigunakan dalam proyek Anda dan ganti di mana diperlukan.
- Ikuti praktik terbaik dalam kode baru:
- Gunakan pola modern yang fleksibel dan hindari fitur yang sudah usang.
- Manfaatkan komentar dan pertanyaan komunitas:
- Bagikan pertanyaan atau kasus penggunaan untuk membantu orang lain belajar sambil memperkuat pemahaman Anda.
Kesimpulan
Artikel ini memberikan penjelasan mendalam tentang metode substr, substring, dan slice milik JavaScript, termasuk sintaks, contoh, tabel perbandingan, dan strategi migrasi.
- Hindari
substrkarena sudah usang. - Gunakan
substringuntuk skenario sederhana. - Gunakan
sliceuntuk fleksibilitas maksimal dan praktik terbaik modern.
Gunakan wawasan ini untuk menulis kode JavaScript yang efisien dan mudah dipelihara. 
8. Tautan Terkait dan Referensi
Untuk memperdalam pemahaman Anda tentang substr, substring, dan slice, berikut adalah tautan dan referensi yang bermanfaat.
Dokumentasi resmi dan sumber belajar akan membantu Anda mengikuti pembaruan dan teknik JavaScript terbaru.
8.1 Dokumentasi Resmi
- MDN Web Docs – Objek String JavaScript
- Tautan: String – MDN Web Docs
- Ikhtisar: Referensi lengkap untuk objek
StringJavaScript dengan spesifikasi rinci dan contoh.
- Spesifikasi ECMAScript (ECMA-262)
- Tautan: Spesifikasi Resmi ECMAScript
- Gambaran: Spesifikasi bahasa resmi yang mencakup fitur ECMAScript terbaru, metode yang sudah tidak dipakai, dan detail teknis.
8.2 Situs Pembelajaran dan Tutorial
- JavaScript.info – Panduan Manipulasi String
- Tautan: JavaScript.info
- Gambaran: Panduan lengkap yang mencakup operasi string dasar hingga lanjutan dengan contoh praktis.
- Progate – Kursus JavaScript untuk Pemula hingga Menengah
- Tautan: Progate
- Gambaran: Platform interaktif yang ideal untuk pemula belajar melalui latihan coding praktis.
- DotInstall – Pelajaran Pengantar JavaScript
- Tautan: DotInstall
- Gambaran: Pelajaran video singkat yang memudahkan belajar JavaScript secara visual dan cepat.
8.3 Sumber Kode Contoh Praktis
- GitHub – Proyek Contoh JavaScript
- Tautan: GitHub
- Gambaran: Pelajari praktik terbaik dan pola dunia nyata dengan menjelajahi proyek open‑source.
- CodePen – Berbagi Kode Interaktif
- Tautan: CodePen
- Gambaran: Bagikan dan uji kode Anda dengan pengembang lain atau telusuri contoh untuk inspirasi.
8.4 Buku yang Direkomendasikan
- Gambaran: Referensi komprehensif dan otoritatif yang mencakup JavaScript dari dasar hingga fitur lanjutan.
- Gambaran: Referensi praktis yang berfokus pada JavaScript modern dan standar coding terkini.
8.5 Komunitas dan Forum
- Stack Overflow (Japanese)
- Tautan: Stack Overflow
- Gambaran: Komunitas tanya‑jawab di mana Anda dapat memecahkan masalah JavaScript secara efisien.
- Qiita
- Tautan: Qiita
- Gambaran: Platform Jepang yang kaya dengan artikel praktis dan studi kasus JavaScript.
- Teratail
- Tautan: Teratail
- Gambaran: Situs tanya‑jawab Jepang yang ideal untuk mengajukan pertanyaan teknis dalam bahasa asli.
Kesimpulan
Bagian ini memperkenalkan berbagai sumber daya—dari referensi resmi hingga tutorial, repositori kode contoh, dan platform komunitas—untuk mendukung pembelajaran berkelanjutan tentang operasi string JavaScript.
Poin Penting:
- Periksa dokumentasi resmi secara berkala:
- Pastikan gaya coding Anda tetap selaras dengan standar terbaru.
- Perkuat keterampilan melalui coding langsung:
- Praktik membuat konsep lebih jelas dan meningkatkan penerapan di dunia nyata.
- Berinteraksi dengan komunitas:
- Berbagi pertanyaan dan solusi membantu memperdalam pemahaman serta memperluas jaringan Anda.



