PROGRAM PALINDROME DENGAN STACK
PROGRAM PALINDROME DENGAN MENGGUNAKAN STACK
SOAL
Buatlah program menggunakan stack untuk mengecek apakah
sebuah input kata (String) termasuk palindrom ataukah bukan. Palindrom adalah
kata yang jika dibaca dari depan maupun dari belakang menghasilkan ucapan yang
sama.
Contoh:
Input: KATAK. Output: Palindrom
Input:
TOMAT. Output: Bukan Palindrom
Tips:
Input String dibaca per karakter untuk di-push ke stack
sampai selesai semuanya (gunakan loop). Kemudian di-pop satu per satu sampai
habis (empty) untuk dibandingkan dengan karakter penyusun kata yang dimasukkan
(mulai dari depan). Jika ada karakter yang tidak sama, maka variabel palindrom
diberi nilai False.
CLASS – CLASS
Class cElemen
package palindrom; public class cElemen { String
name; char
huruf; //Pointer cElemen
next;
//Constructor
cElemen(String nm){
name=nm;
System.out.println(">> Item "+nm+" created...
<<\n"); }
cElemen(char h){
huruf=h; } //Method
Getter public
String getName(){ return
name; } public
char getHuruf(){ return
huruf; } } |
Class cStack
package palindrom; public class cStack { cElemen
head, tail; String
kata; int
jumlah;
//Constructor cStack(){
head=tail=null;
jumlah=0;
System.out.println(">> Object Stack Created...
<<"); } //Method
Operasi PUSH public
void push(cElemen neww){
if(head==null){
//Stack masih kosong
head=tail=neww; }else{
//Stack sudah terisi
neww.next=head;
head=neww; }
System.out.println(" PUSH Success... "); } //Method
Operasi POP public
cElemen pop(){
cElemen a=head;
if(head==null){
//Stack kosong
System.out.println(">> Oops...Stack Is Empty
<<");
return null; }else
if(head.next==null){
//Isi stack sisa 1
head=tail=null;
System.out.println(" POP Success... ");
return a; }else{
//Isi stack >1
head=head.next;
a.next=null;
System.out.println(" POP Success... ");
return a; } } //Method
Operasi Cek Palindrome public
void cekPalindrome(cElemen b){
boolean sama = false; kata =
b.getName(); int kl
= kata.length();
for(int i=0; i<kl; i++){
cElemen aa = new cElemen(kata.charAt(i));
push(aa); }
for(int i=0; i<kl; i++){
if(pop().getHuruf()==kata.charAt(i)){
System.out.println("Kedua Huruf Sama ");
sama=true;
}else{
System.out.println("Oops... Kedua Huruf Tidak Sama");
sama=false;
break; } }
if(sama==true){
System.out.println("\n>> "+kata+" TERMASUK
POLINDROM <<"); }else{ System.out.println("\n>> "+kata+"
TIDAK TERMASUK PALINDROM <<"); } } } |
Class apkStackPalindrome
package palindrom; import java.util.Scanner; public class apkPalindrome { public
static void main(String[] args) { Scanner
s = new Scanner(System.in); cStack
stc = new cStack(); String
word = null; int
pilih=0; do{
System.out.println("\n================");
System.out.println(" MENU
STACK ");
System.out.println("================"); System.out.println("1. Input Kata\n2. Cek Palindrom\n3. Exit");
System.out.print("Input Pilihan Anda : ");
pilih = s.nextInt();
switch(pilih){
case 1 :
System.out.print("Input Kata : ");
word = s.next();
break;
case 2 :
cElemen cek = new cElemen(word);
stc.cekPalindrome(cek); break;
case 3:
System.out.println(" >>> THANK YOU <<<"); }
}while(pilih!=3); } } |
SCREENSHOT RUNNING
PROGRAM
*Klik gambar untuk
gambar yang lebih jelas
**Saran dan kritik
anda sangat berguna untuk blog ini kedepannya
***Terima Kasiih 😊😊😊
Komentar
Posting Komentar