Fungsi length() Pada Java
Selamat datang di artikel ini! Kali ini kita akan membahas secara menyeluruh tentang
length()
di bahasa pemrograman Java. Barangkali kamu sudah sering
melihat atau mendengar tentang length()
saat menulis kode,
terutama ketika bekerja dengan string atau array.
Namun, tahukah kamu bahwa ada beberapa detail menarik serta beragam
kasus penggunaan yang bisa memaksimalkan pemahaman kita tentang
fungsi ini? Yuk, kita kupas tuntas!
Pengenalan Singkat tentang length()
di Java
Dalam bahasa Java, length
atau length()
merujuk pada dua hal utama:
-
length
(tanpa kurung) pada array: Ini bukan sebuah metode, melainkan sebuah atribut (field) milik objek array. Jadi, penulisannya cukuparray.length
, tanpa tanda kurung. Fungsinya adalah memberi tahu kita berapa jumlah elemen di dalam array tersebut. -
length()
(dengan kurung) pada String: Ini adalah sebuah metode yang mengembalikan jumlah karakter dalam objekString
. Jadi kalau kita punyaString teks = "Halo";
, makateks.length()
akan menghasilkan nilai4
.
Meskipun sama-sama bernama "length", keduanya punya perbedaan
penggunaan yang jelas. Perlu diingat, String
di Java
merupakan objek yang memiliki metode length()
, sedangkan
array di Java adalah objek khusus yang tidak memiliki metode,
melainkan field dengan nama length
.
Pengetahuan ini terlihat sederhana, namun sangat penting karena
kesalahan penggunaan seperti array.length()
akan memunculkan
error kompilasi, sebab length()
itu bukan metode
milik array, melainkan length
(tanpa kurung) adalah sebuah
field bawaan.
length()
pada String
Mari kita mulai dengan length()
pada String
.
String adalah salah satu tipe data paling sering dipakai di Java,
karena hampir setiap aplikasi pasti melibatkan teks, entah itu pesan kesalahan,
input pengguna, atau bahkan nama-nama variabel.
Metode length()
pada String
mengembalikan jumlah
char (karakter) yang terdapat dalam string tersebut. Misalnya,
jika kita punya:
String kata = "Hello";
System.out.println(kata.length()); // output: 5
Hasilnya adalah 5
, karena terdapat lima karakter:
H
, e
, l
, l
, dan
o
. Bahkan, jika kamu punya spasi, tanda baca, atau karakter
khusus, semuanya tetap terhitung sebagai karakter.
Menghitung Jumlah Karakter dalam Input Pengguna
Salah satu skenario nyata String.length()
adalah ketika
kita ingin membatasi jumlah karakter yang boleh diinput oleh pengguna.
Misalnya, saat pembuatan akun, kita hanya mengizinkan panjang
username minimal 3 karakter dan maksimal 15 karakter.
Kodenya bisa seperti ini:
Scanner scanner = new Scanner(System.in);
System.out.print("Masukkan username: ");
String username = scanner.nextLine();
int panjangUsername = username.length();
if (panjangUsername < 3) {
System.out.println("Username terlalu pendek. Minimal 3 karakter.");
} else if (panjangUsername > 15) {
System.out.println("Username terlalu panjang. Maksimal 15 karakter.");
} else {
System.out.println("Username valid!");
}
Dengan menggunakan length()
, kita bisa membuat validasi
sederhana terhadap input yang masuk. Logika ini sering ditemukan di
bagian frontend maupun backend untuk menjaga agar
data yang diterima server sesuai dengan aturan tertentu.
Menghitung Spasi dan Karakter Khusus
Perlu diingat bahwa length()
menghitung semua karakter,
termasuk spasi dan karakter khusus. Jadi, jika ada
String teks = "Hello World";
,
teks.length()
akan menghasilkan 11
(karena ada spasi di antara Hello
dan World
).
String kalimat = "Hello World";
System.out.println(kalimat.length()); // 11 (termasuk spasi)
Hal ini penting karena mungkin saja kita tidak sadar ada karakter tak terlihat (misalnya spasi tambahan atau karakter non-printable) yang menyelinap di string kita.
Perbedaan dengan isEmpty()
dan trim()
Terkadang, untuk mengecek apakah sebuah string kosong, kita sering
menggunakan isEmpty()
. Contohnya,
teks.isEmpty()
akan menghasilkan true
jika panjang stringnya 0
. Sebenarnya kita juga bisa
pakai length()
untuk hal yang sama, misalnya
teks.length() == 0
.
Selain itu, kalau kita ingin menghilangkan spasi di awal dan akhir
string, kita biasa menggunakan trim()
.
Metode ini tidak mengubah length()
secara langsung,
melainkan mengembalikan String baru dengan spasi yang
sudah dihilangkan. Jika kita sering melakukan validasi input user,
paham akan length()
, isEmpty()
,
serta trim()
akan banyak membantu menjaga data tetap bersih.
length
pada Array
Selanjutnya, kita beralih ke array. Di Java, array
adalah struktur data yang menyimpan sekumpulan nilai dengan tipe yang sama.
Berbeda dengan String yang punya metode length()
,
array memiliki length
sebagai field.
Artinya, kita mengaksesnya dengan menuliskan array.length
tanpa kurung.
Jadi, kalau kita punya:
int[] angka = {10, 20, 30, 40};
System.out.println(angka.length); // output: 4
Maka yang dicetak adalah 4
, karena ada empat elemen:
10, 20, 30, dan 40.
Mengapa length
pada Array Bukan Metode?
Dalam bahasa Java, array memiliki karakteristik khusus.
Ia bukan sekadar objek seperti pada String
(sebenarnya
array tetap dianggap objek di Java, tapi dengan sifat tertentu).
Kelas Array tidak memerlukan fungsi khusus untuk
menghitung jumlah elemen, karena info tentang panjang array
sudah tersimpan di dalam “metadata†array tersebut.
Makanya, field length
bisa dipanggil dengan
cepat tanpa memanggil metode apa pun.
Looping dengan length
Salah satu contoh penggunaan paling umum adalah di
looping for
atau while
.
Misalnya, untuk menampilkan seluruh elemen dalam array,
kita bisa menulis:
String[] buah = {"Apel", "Jeruk", "Mangga"};
for (int i = 0; i < buah.length; i++) {
System.out.println("Buah ke-" + i + ": " + buah[i]);
}
Di sini, buah.length
akan mengembalikan 3
,
sehingga indeks i
berjalan dari 0 sampai 2.
Contoh penggunaan ini sudah sangat umum di Java.
Mengetahui Panjang Array Multidimensi
Bagaimana kalau array kita multidimensi? Misal kita punya:
int[][] matrix = {
{1, 2, 3},
{4, 5},
{6, 7, 8, 9}
};
System.out.println("Jumlah baris = " + matrix.length);
System.out.println("Jumlah kolom baris ke-0 = " + matrix[0].length);
System.out.println("Jumlah kolom baris ke-1 = " + matrix[1].length);
System.out.println("Jumlah kolom baris ke-2 = " + matrix[2].length);
Di sini, matrix.length
akan menghasilkan 3
,
karena ada tiga baris. Namun, tiap baris memiliki
panjang yang berbeda:
matrix[0].length
= 3matrix[1].length
= 2matrix[2].length
= 4
Ini menunjukkan bahwa array 2D di Java sebenarnya adalah
“array of arrayâ€, sehingga panjang setiap baris bisa berbeda.
length
selalu memberikan informasi tentang
panjang dimensi terluar (untuk baris) atau panjang
dimensi yang diacu (untuk kolom).
Apa Saja Kasus Penggunaan length()
?
1. Validasi Panjang Data Teks
Kita sudah menyinggung soal username. Namun, tak hanya username, kita bisa melakukan validasi panjang data lain seperti password, email, atau bahkan isi komentar. Contoh lain, saat kita membuat sistem posting blog, kita bisa memberi batasan minimal title harus 10 karakter, agar tidak kosong atau terlalu pendek.
String title = "Judul";
if (title.length() < 10) {
System.out.println("Judul terlalu singkat.");
} else {
System.out.println("Judul valid!");
}
2. Memproses String dengan Looping
Selain memanfaatkan length()
untuk validasi,
kita juga bisa memakainya dalam looping untuk
memproses setiap karakter. Misalnya, ketika kita ingin
menelusuri karakter satu per satu:
String kalimat = "Halo Dunia";
for (int i = 0; i < kalimat.length(); i++) {
char c = kalimat.charAt(i);
System.out.println("Karakter ke-" + i + " adalah: " + c);
}
Di sini, kalimat.length()
menentukan batas
looping, sedangkan charAt(i)
mengambil karakter berdasarkan indeksnya.
3. Menggabungkan length
dan Array untuk Pengolahan Data
Kalau kita punya array berisi data numerik,
katakanlah nilai-nilai ujian siswa, kita bisa
memanfaatkan length
untuk menghitung
rata-rata:
int[] nilai = {80, 90, 75, 88, 95};
int total = 0;
for (int i = 0; i < nilai.length; i++) {
total += nilai[i];
}
double rataRata = (double) total / nilai.length;
System.out.println("Rata-rata: " + rataRata);
Di sini, nilai.length
membantu kita
membagi total nilai dengan jumlah elemen array.
Tanpa length
, kita harus mengingat
sendiri panjang array-nya, yang tentu saja
tidak praktis dan rawan error.
4. Mengelola Daftar Dinamis dengan ArrayList
(Bonus Sedikit)
Meskipun ini sedikit melenceng, tetapi berguna untuk
membandingkan bahwa ketika kita pakai struktur data
seperti ArrayList
, kita memanggil
list.size()
alih-alih list.length
.
length
hanya berlaku untuk array biasa.
Konsep length itu pun tetap relevan,
sebab ArrayList
di balik layar juga
memakai array, tetapi disertai logika
penyesuaian ukuran.
Jika kita sering mengelola data yang butuh penambahan
dan penghapusan elemen secara fleksibel,
ArrayList
mungkin lebih cocok.
Namun, untuk kasus tertentu yang butuh performa
super cepat dan ukuran data tetap,
penggunaan array plus length
-nya
bisa jadi lebih efisien.
Perbedaan Penulisan dan Kesalahan Umum
Seperti yang sudah disebutkan, kesalahan paling umum
adalah menuliskan array.length()
pada
array, padahal seharusnya array.length
tanpa tanda kurung. Hal itu akan menimbulkan
compile-time error
.
Sementara untuk String
, kita memang
harus memanggil metode length()
dengan tanda kurung.
// Salah:
int[] nums = {1, 2, 3};
System.out.println(nums.length()); // Error, 'length()' is not a method
// Benar:
System.out.println(nums.length); // Output: 3
Lalu untuk String
:
// Salah:
String text = "Hello";
System.out.println(text.length); // Error, 'length' is not a field of String
// Benar:
System.out.println(text.length()); // Output: 5
Jangan tertukar, ya!
Tips dan Trik Terkait Penggunaan length()
-
Hati-hati dengan Karakter Khusus
Di era Unicode, beberapa karakter mungkin terhitung lebih dari 1 char (misalnya, emoji tertentu atau aksara non-Latin). Sehingga,length()
padaString
mungkin tidak selalu sesuai dengan jumlah glyph yang tampak. Untuk kasus pemrosesan Unicode yang rumit, bisa jadi kamu perlucodePointCount()
. Tapi untuk hal-hal sederhana,length()
sudah memadai. -
Optimalkan Penggunaan pada Loop
Pada loop yang besar, kadang kita menyimpan nilaiarray.length
ataustring.length()
ke variabel lokal agar tidak berulang kali memanggil metode (walaupun ini micro-optimization yang di Java modern jarang sekali dibutuhkan). Contoh:
Ini menjaga agar kita tidak memanggilfor (int i = 0, len = nums.length; i < len; i++) { // ... }
nums.length
terus-menerus di setiap iterasi, walau pada praktik modern,array.length
cukup cepat diakses sehingga jarang jadi masalah. Tetapi ini bisa berguna untukstring.length()
, karenalength()
adalah metode. Tetap saja, hal ini biasanya dilakukan hanya dalam situasi loop sangat besar. -
Gunakan
.length
Saat Bekerja dengan Arrays Native
Java punya beberapa kelas utilitas sepertiArrays
atauCollections
yang dapat membantu mengelola array. Namun, jika kamu tetap memakai array biasa dan perlu tahu jumlah elemennya,.length
adalah caranya. -
Periksa Null
Sebelum mengaksesarray.length
atau memanggilstring.length()
, sebaiknya pastikan dulu bahwa variabelmu tidaknull
. Memanggil metode atau field pada objeknull
akan menyebabkanNullPointerException
(NPE). Jadi, selalu sisipkan pengecekan:
Ini adalah kebiasaan baik untuk menghindari crash.if (str != null && str.length() > 0) { // ... }
Mengukur Efisiensi dan Kinerja
String.length():
Panggilan ke length()
pada String
di Java umumnya beroperasi dalam O(1),
karena Java sudah menyimpan panjang string
sebagai bagian dari objek String
.
Makanya, kita tidak perlu khawatir overhead
yang besar saat sering memanggil length()
.
Hanya saja, seperti disinggung di atas,
jika kita berada di dalam loop yang
jumlah iterasinya jutaaan, menempatkan
int len = str.length();
di luar
loop bisa sedikit membantu efisiensi.
Meskipun di banyak kasus, Java compiler
sudah cukup pintar untuk melakukan optimasi.
Array.length:
Mengakses array.length
juga
tergolong O(1), karena itu hanyalah
mengakses nilai field bawaan di
objek array. Jadi, ini pun
tidak perlu dikhawatirkan mengurangi
kinerja secara signifikan.
Contoh Lebih Lanjut: Pemisahan Kata dan Penghitungan Panjang
Satu contoh menarik lain, kita bisa memakai
String.length()
bersamaan dengan
split()
untuk memisah kalimat
menjadi kata-kata, lalu kita cek panjang
masing-masing kata. Misalnya:
String kalimat = "Java sangat menyenangkan untuk dipelajari";
String[] kataKata = kalimat.split(" ");
for (int i = 0; i < kataKata.length; i++) {
System.out.println("Kata ke-" + (i+1) + ": " + kataKata[i]
+ " (panjang = " + kataKata[i].length() + ")");
}
Dari sini, kita bisa melihat berapa karakter yang terkandung di setiap kata. Skenario seperti ini berguna misalnya saat kita ingin menganalisis teks, memeriksa batasan panjang kata, atau menghitung total kata panjang vs. kata pendek.
Beberapa Perbandingan Terkait length()
-
length
vssize()
Ketika kita beralih ke koleksi lain (misalnyaArrayList<String>
), kita menggunakanlist.size()
dan bukanlist.length
. Ingat bahwasize()
adalah metode milikCollection
, sedangkanlength
murni field milik array. -
length()
vsisEmpty()
UntukString
,isEmpty()
adalah cara cepat mengecek apakahlength()
-nya 0. Return type dan fungsinya berbeda, tapi hasil logikanya sama saja.teks.length() == 0
sama denganteks.isEmpty()
.
Studi Kasus: Penggunaan length()
dalam Aplikasi Sederhana
Mari kita coba gabungkan beberapa hal yang sudah kita bahas dalam sebuah contoh yang sedikit lebih panjang. Misalnya, bayangkan kita membuat aplikasi untuk menganalisis data string dan array sekaligus.
import java.util.Scanner;
public class LengthExample {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
// 1. Minta user memasukkan sebuah kalimat
System.out.print("Masukkan sebuah kalimat: ");
String kalimat = sc.nextLine();
// 2. Tampilkan panjang kalimat
System.out.println("Panjang kalimat (length): " + kalimat.length());
// 3. Pisahkan kalimat menjadi kata-kata
String[] kataKata = kalimat.split(" ");
System.out.println("Jumlah kata: " + kataKata.length);
// 4. Tampilkan tiap kata dan panjangnya
for (int i = 0; i < kataKata.length; i++) {
System.out.println("Kata ke-" + (i+1) + ": " + kataKata[i]
+ " (panjang = " + kataKata[i].length() + ")");
}
// 5. Contoh array integer, minta user input ukuran array
System.out.print("Berapa banyak data integer yang ingin dimasukkan? ");
int n = sc.nextInt();
int[] data = new int[n];
// 6. Minta user mengisi nilai array
for (int i = 0; i < data.length; i++) {
System.out.print("Masukkan angka ke-" + (i+1) + ": ");
data[i] = sc.nextInt();
}
// 7. Hitung total dan rata-rata
int total = 0;
for (int val : data) {
total += val;
}
double avg = (double) total / data.length;
System.out.println("Total: " + total);
System.out.println("Rata-rata: " + avg);
// 8. Tampilkan panjang array (jumlah elemen)
System.out.println("Panjang array data (length): " + data.length);
sc.close();
}
}
Pada contoh di atas, kita menggunakan length()
untuk String
(kalimat.length()
)
dan length
(tanpa kurung) untuk array
(kataKata.length
dan data.length
).
Dalam satu program sederhana ini, kita jadi melihat secara langsung
perbedaan penggunaan length()
di String
dan length
di array.
Kesimpulan
length()
adalah salah satu fitur dasar namun
sangat penting di Java yang memungkinkan kita untuk
mengetahui ukuran String (jumlah karakter)
serta ukuran array (jumlah elemen).
Meskipun namanya sama, cara pemanggilannya berbeda:
-
Pada String:
string.length()
, karenalength()
adalah metode. -
Pada array:
array.length
(tanpa tanda kurung), karena length adalah field.
Pengetahuan ini berguna dalam berbagai skenario, mulai dari validasi panjang input pengguna, memproses karakter dalam string, melakukan looping pada array, hingga menangani array multidimensi serta string yang mengandung spasi atau karakter khusus.
Di sisi lain, kita juga perlu waspada terhadap
potensi kesalahan seperti memanggil
.length()
pada array,
atau .length
pada String.
Selain itu, jangan lupa prinsip-prinsip
pengecekan null untuk menghindari
NullPointerException
.
Selebihnya, length()
di Java
berjalan O(1), sehingga sangat efisien
dan bisa diandalkan di berbagai kasus.
Semoga artikel panjang ini bisa memberi kamu
pemahaman yang lebih dalam tentang fungsi
length()
dan cara menggunakannya
secara optimal. Jika kamu baru belajar Java,
penting untuk menguasai konsep dasar ini
sebelum melangkah ke topik yang lebih canggih,
seperti ArrayList
, HashMap
,
dan struktur data lain.
Selamat belajar dan selamat bereksperimen
dengan length()
di proyek Java kamu!
Baca Juga :