Bahasa Pemrograman 2 - APP Palindrom

Nama : Lina Wardani 

NPM   : 21082010116

Kelas  : Par-C


Soal 

Dengan memanfaatkan struktur data Stack yang dibuat memakai linked list, buatlah program untuk mengecek apakah sebuah kata itu termasuk PALINDROM ataukah bukan. Palindrom adalah kata yang jika dibaca dari depan dan dari belakang, hasilnya sama. Contoh:

Input kata = KATAK

Output : Palindrom

Input kata = KAMAR

Output : Bukan Palindrom


Source Code


Class Elemen

package PkgPalindrom; public class cElemen { private String nama; cElemen next,prev; cElemen(String n){ nama=n; System.out.println("Object "+n+" created..."); } public String getNama(){ return nama; } }


Class Stack

package PkgPalindrom; public class cStack { cElemen top,bottom; int jumlah; cStack(){ top=bottom=null; jumlah=0; System.out.println("Object Stack created..."); } public void push(cElemen baru){ if(top==null){ top=bottom=baru; } else{ top.prev=baru; baru.next=top; top=baru; } System.out.println("Push "+baru.getNama()+" Success"); } public String Pop(){ if(top==null){ System.out.println("Stack Kosong..."); return null; } else if(top.next==null){ cElemen t=top; top=bottom=null; System.out.println("Pop "+t.getNama()+" Success"); return t.getNama(); } else{ cElemen t=top; top=top.next; top.prev=null; t.next=null; System.out.println("Pop "+t.getNama()+" Success"); return t.getNama(); } } }


Main

package PkgPalindrom; import java.util.Scanner; public class AppPalindrom { public static void main(String[] args) { Scanner s = new Scanner(System.in); cStack Stack = new cStack(); int pilih=0; do{ System.out.println("\nMENU STACK"); System.out.println("1. Cek Palindrom"); System.out.println("2. Exit"); System.out.print("Pilih = "); pilih=s.nextInt(); switch(pilih){ case 1: System.out.print("Input Kata : "); String kata=s.next(); for (int i = 0; i < kata.length(); i++){ char k = kata.charAt(i); cElemen huruf = new cElemen(Character.toString(k)); Stack.push(huruf); } System.out.println(""); String output = ""; for (int i = 0; i < kata.length(); i++){ String hasil=Stack.Pop(); output = output+hasil; } System.out.println(""); if(output.matches(kata)){ System.out.println("\nOutput = PALINDROM"); } else{ System.out.println("\nOutput = BUKAN PALINDROM"); } break; case 2: System.out.println("Thank You !"); break; } }while(pilih!=2); } }


Output



Comments