Soalan:
Kenal pasti sama ada sesebuah input yang di masukkan merupakan palindrome ataupun tidak.
Penerangan:Soalan macam ni memang selalu di soal. Baru-baru ni, aku antara volunteer yang menguruskan MultiProg '10 dekat Universiti Tenaga Nasional, Putrajaya. Macam-macam algorithm yang di gunakan para peserta. Ada yang pecahkan sesebuah perkataan tu kepada 2 dan bandingkan... ada pula yang membuat algorithm lain yang boleh di katakan agak kompleks. Jadi, dalam tutorial ni, aku nak tunjukkan cara sebenarnya untuk selesaikan soalan palindrome dengan menggunakan Java. Masalah ini sepatutnya boleh di selesaikan dengan menggunakan logik sahaja.
Analisis:Palindrome merupakan satu keadaan di mana apabila sesebuah perkataan itu diterbalikkan, korang akan tetap mendapat perkataan yang sama. Sebagai contoh:
TOYOT = TOYOT (palindrome)
TENET = TENET (palindrome)
MOM = MOM (palindrome)
MAMA != AMAM (bukan palindrome)
JAVA != AVAJ (bukan palindrome)
Untuk maklumat lanjut mengenai palindrome, korang boleh rujuk
http://en.wikipedia.org/wiki/Palindrome.
Persoalannya, bagaimanakah caranya untuk kita mengetahui sama ada sesebuah perkataan itu palindrome ataupun tidak.

Pada asasnya, sebarang perkataan yang di terbalikkan menjadi perkataan yang sama, di gelar sebagai Palindrome. Jadi, mengapa tidak jika kita terbalikkan sahaja perkataan tersebut dan simpan ke dalam variable string yang lain? Kemudian, bandingkan sahaja kedua-dua perkataan tersebut. Jika sama, bermaksud perkataan tersebut merupakan Palindrome dan jika tidak, bermaksud perkataan tersebut bukan Palindrome.
Kod Sumber/Algorithm:class palindrome{
public static void main(String[] args){
String x = "TOYOT"; //perkataan yang ingin di periksa
String y = "";
for(int i = (x.length() - 1); i >= 0; i--){
y += x.charAt(i);
}
if(x.equals(y))
System.out.println("PALINDROME!");
else
System.out.println("NOT PALINDROME!");
}
}
Untuk lebih mudah dan lebih efisien, korang boleh menggunakan kod sumber berikut:
class palindrome{
public static void main(String[] args){
String x = "TOYOT"; //perkataan yang ingin di periksa
String y = new StringBuffer(x).reverse().toString();
if(x.equals(y))
System.out.println("PALINDROME!");
else
System.out.println("NOT PALINDROME!");
}
}
Dalam sesetengah kes, ada juga soalan yang suruh korang kenal pasti sama ada sesuatu input integer merupakan Palindrome ataupun tidak. Dalam matematik, keadaan tersebut di gelar sebagai Palindromic Number. Konsepnya sama sahaja... selepas korang terbalikkan nombor tersebut, korang akan tetap dapat nombor yang sama. Bezanya, dalam contoh atas; masalah di selesaikan dengan menggunakan datatype string. Walaupun korang berurusan dengan input integer, tukarkan sahaja datatype tersebut kepada datatype string. Kemudian, aplikasikan kod di atas.
ps: Sebagai tambahan, gunakan kod ini bagi menukarkan int kepada string.
String y = Integer.toString(x);
Rujukan penuh bagi penukaran sebarang datatype kepada datatype yang lain boleh anda dapatkan di artikel Cheat Sheet: Penukaran Datatype (
http://secure.javamalaysia.com/tutorial-asas-java/cheat-sheet-penukaran-datatype).