Memeriksa Bilangan Palindrom
Palindrom adalah kata, rangkaian kata, atau bilangan yang terbaca sama, baik dari depan maupun dari belakang. Beberapa contoh palindrom adalah radar, kasur rusak, 1001.
Pada bahasa pemrograman Java kita dapat dengan mudah memastikan bahwa suatu string adalah palindrom atau bukan.
boolean isPalindrom (String str) { return str.equals(new StringBuffer().append(str).reverse().toString()); }
Kode di atas mengembalikan nilai true jika argumennya adalah palindrom. Namun untuk memeriksa palindrom dari argumen berupa bilangan, kita membutuhkan type casting. Type casting berguna untuk mengkonversi suatu tipe data ke tipe data yang lain. Dalam kasus ini kita membutuhkan konversi dari tipe data int
ke String
. Caranya mudah saja, tinggal tambahkan saja bilangan tersebut dengan sebuah string kosong.
boolean isPalindrom (int bilangan) { String str = "" + bilangan; return str.equals(new StringBuffer().append(str).reverse().toString()); }
Dengan kode di atas kita bisa memeriksa apakah sebuah bilangan termasuk palindrom atau bukan.
Untuk Anda yang malas menghafal kode yang panjang di atas, kita bisa menggunakan pemeriksaan palindrom secara manual. Pada dasarnya algoritma palindrom yaitu membandingkan karakter pertama dengan karakter terakhir, lalu karakter kedua dengan karakter kedua dari belakang, dan seterusnya. Jika jumlah karakternya ganjil, misalnya “radar” (5 karakter), karakter yang berada tepat di tengah-tengah, yaitu karakter ketiga (“d”) tidak perlu diperiksa.
boolean isPalindrom (int bilangan) { String str = "" + bilangan; // konversi dari int ke Str char [] c = str.toCharArray(); // konversi dari String ke array char int i1 = 0, // indeks pertama i2 = c.length - 1; // indeks terakhir while (i2 > i1) { if (c[i1 ++] != c[i2 --]) return false; } return true; }
Pada baris keempat kita konversikan tipe data String
ke bentuk dasarnya yaitu sekumpulan karakter dengan method toCharArray()
. Pada baris kesepuluh, kita akan membandingkan sekaligus menambah indeks i1
dan mengurangi indeks i2
. Perhatikan bahwa operator unary ditulis setelah variable berarti bahwa pembadingan dilakukan terlebih dahulu kemudian baru menambah/mengurangi indeksnya.
mantep..
thx gan
Joos kang cakep 👍
← Previous Post
Next Post →