Source code Konversi Bilangan Desimal Ke Biner dengan Stack (LinkedList) Di Java

Source code Konversi Bilangan Desimal Ke Biner dengan Stack (LinkedList) Di Java - Berhubung ana mendapat tugas dari dosen Algoritma dan Struktur Data yakni membuat sebuah program konversi dari bilangan desimal ke billangan biner. Dalam pembuatan program tersebut harus menggunakan Stack dan implementasinya pada Linked List.

Setelah berusaha mengerjakan tugas tersebut dan akhirnya Alhamdulillah selesai juga, laporannya pun telah dikumpulkan dan tugasnya tinggal di demokan minggu depan kepada asisten lab atau kepada dosennya langsung.

Seperti yang kita ketahui sebelum kita membuat sebuah program baik dengan menggunakan Java, C, Pascal, maupun bahasa pemrograman lainnya langkah pertama yang sebaiknya kita ambil ialah membuat algoritma (Langkah-langkah penyelesaian masalah)dari program yang akan kita buat tersebut.

Algoritma Program

Adapun algoritma dari program Konversi bilangan desimal ke biner dengan stack adalah sebagai berikut:

  1. Ambil sisa pembagian variable bilangan dengan angka 2, kemudian simpan dalam variable sisa. Kemudian simpan isi variable sisa ke dalam stack.
  2. Bagi variable bilangan dengan angka
  3. Ulangi langkah 1 dan 2 selama bilangan tidak 0. Jika variable bilangan telah bernilai 0 maka lanjutkan ke langkah 4,
  4. Lakukan perulangan untuk langkah 5 dan 6 selama stack masih mempunyai isi (tidak kosong).
  5. Ambil (pop) nilai yang ada di stack simpan di variable data.
  6. Tulis isi variable data ke layar .
  7. Selesai.

Setelah kita mengetahui algoritma dari suatu program, barulah kita dapat memulai membuat program tersebut dengan menulis source code dengan baik dan benar pada compiler seperti Netbeens dan lain sebagainya.

Dan untuk source code membuat program program Konversi bilangan desimal ke biner dengan stack yang diimplementasikan dengan Linked List dapat anda lihat di bawah ini.

Source Code Program

package javaapplication67;

import java.util.NoSuchElementException;
import java.util.Scanner;

/**
*
* @author JUNAIDI
*/

public class StackLinkedList {

    private class Element {
        public Object data;
        public Element next;
        public Element( Object data, Element next ) {
            this.data = data;
            this.next = next;
        }
    }

    private Element top;

    public void push( Object data ) {
        if( isEmpty( ) ) {
            top = new Element( data, null );
        } else {
            top = new Element( data, top );
        }
    }

    public Object pop( ) throws NoSuchElementException {
        if( isEmpty( ) ) {
            throw new NoSuchElementException( );
        } else {
            Object data = top.data;
            top = top.next;
            return data;
        }
    }

    public Object peek( ) throws NoSuchElementException {
        if( isEmpty( ) ) {
            throw new NoSuchElementException( );
        } else {
            return top.data;
        }
    }

    public boolean isEmpty( ) {
        return top == null;
    }

    public static void main(String args[]) {
        System.out.println("Program Konversi Bilangan Desimal ke Biner");
        System.out.println("---------------------------------------------------");
        Scanner input = new Scanner(System.in);
        
        System.out.print("Masukkan Angka -> ");
        int bil = input.nextInt();
        int c = bil;

        StackLinkedList stack = new StackLinkedList();
        
        if (bil == 0) {
            System.out.println("0");
        }
        
        while (bil != 0) {
            int a = bil / 2;
            int b = bil % 2;
            stack.push(b);
            bil = a;
        }

        System.out.print("Biner dari Angka "+c+" = ");
        while (!stack.isEmpty()) {
            System.out.print(stack.pop());
        }

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

Output Program

Jika kode program di atas dijalankan maka hasilnya adalah sebagai berikut:

Silahkan anda coba source di atas dan jika ada yang ditanyakan mengenai source code maupun dengan algoritmanya Anda dapat meninggalkan komentar di bawah ini.

Jika merasa artikel ini bermanfaat jangan lupa like & share yach…. :)