Username:

Password:

Pages: [1]
  Print  
Author Topic: Masalah Palindrome  (Read 118 times)
j33h4d
ngah busy exam sampai 24 Mac 10 =|
Administrator
Freshie
*
Posts: 22



View Profile WWW Email
« on: March 03, 2010, 11:28:22 pm »

Quote
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. Wink

Analisis:
Palindrome merupakan satu keadaan di mana apabila sesebuah perkataan itu diterbalikkan, korang akan tetap mendapat perkataan yang sama. Sebagai contoh:
Quote
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. Huh

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:

Code:
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:

Code:
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.
Code:
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).
« Last Edit: March 04, 2010, 04:03:19 am by j33h4d » Logged

"programming is all about the arrangement of codes" ~ Fikri Fadzil
Pages: [1]
  Print  
 
Jump to:  

Powered by SMF | SMF © 2006-2009, Simple Machines LLC
Installed by Installatron

DarkBreak by DzinerStudio