LATIHAN STACK

NAMA : ENGIE RAMADHANI

NPM     : 22082010029 

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 :

appPalindrom :

/*

 * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license

 * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template

 */

package Palindrom;


/**

 *

 * @author ENGIE RAMADHANI

 */

import java.util.Scanner;

public class appPalindrom {

    public static void main(String[]args){

        Scanner scanner = new Scanner(System.in);

        System.out.println("Masukkan kata : ");

        String kata = scanner.nextLine();

        cPalindrom palindrom = new cPalindrom(kata);

        if(palindrom.isPalindrom()){

            System.out.println("");

            System.out.println("===============================");

            System.out.println("Kata" +kata+ "merupakan palindrom");

            System.out.println("===============================");

        }

        else{

            System.out.println("");

            System.out.println("===============================");

            System.out.println("Kata"+kata+"bukan palindrom");

            System.out.println("===============================");

        }

    }

    

}


cSimpulPalindrom :

/*
 * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
 * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
 */
package Palindrom;

/**
 *
 * @author ENGIE RAMADHANI
 */
public class cSimpulPalindrom {
    char kata;
    cSimpulPalindrom next;
    
    public cSimpulPalindrom(char kata){
        this.kata = kata;
        this.next=null;
    }
}

StackPalindrom :

/*
 * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
 * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
 */
package Palindrom;

/**
 *
 * @author ENGIE RAMADHANI
 */
import java.util.Scanner;
public class StackPalindrom {
    cSimpulPalindrom top;
    public StackPalindrom(){
        this.top = null;
    }
    public void push(char kata){
        cSimpulPalindrom new_node = new cSimpulPalindrom(kata);
        new_node.next = this.top;
        this.top = new_node;
    }
    public char pop(){
        if(this.top==null){
            return'\0';
        }else{
            char popped_kata = this.top.kata;
            this.top = this.top.next;
            return popped_kata;
        }
    }
    public boolean isEmpety(){
        return this.top == null;
    }
}

cPalindrom : 

/*

 * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license

 * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template

 */

package Palindrom;


/**

 *

 * @author ENGIE RAMADHANI

 */

import java.util.Scanner;

public class cPalindrom {

    private String kata;

    public cPalindrom(String kata){

        this.kata = kata;

    }

    public boolean isPalindrom(){

        StackPalindrom stack = new StackPalindrom();

        int o = 0;

        for(int i= o;i < this.kata.length();i++){

            char c = this.kata.charAt(i);

            stack.push(c);

        }

        for(int i = o;i < this.kata.length();i++){

             char c = stack.pop();

            if(c!=this.kata.charAt(i)){

                return false;

            }

        }

        return true;

    }

}


Output : 





Komentar