• Tidak ada hasil yang ditemukan

Laporan Bab 4 Algoritma dan Struktur Dat

N/A
N/A
Protected

Academic year: 2018

Membagikan "Laporan Bab 4 Algoritma dan Struktur Dat"

Copied!
9
0
0

Teks penuh

(1)

LABORATORIUM PEMBELAJARAN ILMU KOMPUTER

FAKULTAS ILMU KOMPUTER

UNIVERSITAS BRAWIJAYA

BAB

: STACK

NAMA

: M SATRIA PUTRA UTAMA

NIM

: 155150207111168

TANGGAL : 08/10/2016

ASISTEN

: ILHAM ROMADHONA

A.

DEFINISI MASALAH

1. Buat program untuk mengkonvesi dari bilang desimal ke representasi bilangan biner menggunakan program stack di atas.

2. Kembangkan program di atas dengan membuat stack yang berisi Object sehingga isi Stack dapat diisi sembarang object seperti object Double, objeck Buku dan lain sebaginya. Dengan potongan program driver sebagaimana gambar 5 dan class Buku sebagaimna gambar 6 akan menghasilkan keluaran sebagaimana gambar 7.

Gambar 5. Driver program ADT Stack Object public class AppStackObject {

public static void main(String[] args) { //implementasi Stack

StackObject st = new StackObject(3); st.push(new Double(5));

st.push(new Double(8)); st.push(new Double(7)); while (!st.isEmpty()){

System.out.println(st.pop()); }

StackObject stBuku = new StackObject(3); stBuku.push(new Buku("Java","Anton")); stBuku.push(new Buku("Algoritma dan STD","Achmad"));

stBuku.push(new Buku("C++","Budi")); while (!stBuku.isEmpty()){

System.out.println(stBuku.pop()); }

} }

Gambar 6. Class Buku Class Buku{

private String judul; private String pengarang;

public Buku(String jdl, String peng){ this.judul = jdl;

this.pengarang = peng; }

public String toString(){

return String.format("%s %s", this.judul, this.pengarang);

(2)

Gambar 6. Keluaran program 7.0

8.0 5.0 C++ Budi

Algoritma dan STD Achmad Java Anton

B.

SOURCE CODE

No.1

Stack.java 1

2 3

4

5 6 7

8

9 10 11 12 13

14 15 16

17 18 19 20 21

22 23 24 25 26

27 28 29 30 31 32

package asdpraktikum; import java.util.Scanner; public class Stack {

// Struktur Data

private int size; private int top; private int[] data;

// method

public Stack(int n) { top = -1;

size = n;

data = new int[size]; }

public boolean isPalindrome() { return true;

}

public boolean isFull() {

return top == (size - 1) ? true : false; //if (top == size-1)return true;

//else return false; }

public boolean isEmpty() {

return top == -1 ? true : false; //if (top == -1) return true; //else return false;

}

public void push(int dt) { if (!isFull()) {

data[++top] = dt; }

}

(3)

33 System.out.println("Konversi Desimal ke Biner "); System.out.print("Masukkan Bilangan Desimal = ");

(4)

9

package asdbab4; public class Buku {

private String judul, pengarang; private int top, size;

public Buku(String judul, String pengarang) { this.judul = judul;

this.pengarang = pengarang; }

@Override

public String toString() {

return String.format("%s %s", this.judul, this.pengarang); }

package asdpraktikum;

public class mainStackObject {

(5)

4

stBuku.push(new Buku("Algoritma dan STD", "Achmad")); stBuku.push(new Buku("C++", "Budi"));

C.

PEMBAHASAN

No.1

Package asdpraktikum. Deklarasi java util Scanner.

Deklarasi kelas dengan nama Stack. Komentar “Struktur Data”.

Deklarasi variable size dengan tipe data integer bersifat private. Deklarasi variable top dengan tipe data integer bersifat private.

Deklarasi variable data array 1 dimensi dengan tipe data integer bersifat private. Komentas “Method”.

Deklarasi konstruktor kelas Stack dengan parameter bertipe integer. Inisialisasi nilai variable top.

Inisialisasi nilai variable size.

Inisialisasi nilai panjang array data sama dengan nilai variable size. Deklarasi method.

Perintah return untuk mengembalikan nilai true. Deklarasi method.

Perintah return untuk mengembalikan nilai true atau false dengan syarat nilai variabel top sama dengan nilai variabel size dikurang 1.

Deklarasi method.

Perintah return untuk mengembalikan nilai true atau false dengan syarat nilai variabel top sama dengan nilai variabel size dikurang 1.

Deklarasi method void, akses modifier public dengan nama push dan parameter dt tipe integer.

Perintah if dengan syarat isFull bernilai false. Inisialisasi isi array data indeks ke ++ top. Deklarasi method pop.

(6)

34

Perintah if dengan syarat isEmpty bernilai false.

Inisialisasi nilai variabel hasil = isi array data indeks ke nilai variabel top kurang 1. Perintah return untuk mengembalikan nilai variable hasil.

Deklarasi main method.

Cetak “======= Create by =======”. Cetak “Nama : M SATRIA PUTRA UTAMA”. Cetak “NIM : 155150207111168”.

Cetak “Kelas : IF - A”.

Cetak “======================”. Instansiasi scanner input.

Instansiasi kelas Stack.

Objek st memanggil method push dengan parameternya 0. Objek st memanggil method push dengan parameternya 6. Objek st memanggil method push dengan parameternya 7. Perulangan while.

Mencetak isi dari method pop.

Instansiasi kelas Stack dengan nama s dan parameternya 100. Cetak “=======================”.

Cetak ”Konversi Desimal ke Biner ”. Cetak “Masukkan Bilangan Desimal = ”.

Memasukkan nilai bertipe integer yang akan di simpan pada variable nilai. Perulangan while dengan syarat nilai variable nilai tidak sama dengan 0. Inisialisasi nilai variable sisa.

Objek s memanggil objek push. Perhitungan variable nilai. Cetak “Bilangan Biner = ”. Perulangan while.

Mencetak isi dari method pop.

Cetak “=======================”.

Deklarasi kelas dengan nama StackObject.

Deklarasi variabel dengan nama size dan top tipe integer bersifat private. Deklarasi array 1 dimensi dengan nama data tipe integer bersifat private.

Deklarasi konstruktor kelas StackObject dengan parameter bernama n tipe integer. Inisialisasi nilai variabel top.

Inisialisasi nilai variabel size.

Inisialisasi nilai panjang array data sama dengan nilai variabel size. Deklarasi method.

Perintah return untuk mengembalikan nilai true atau false dengan syarat nilai variabel top sama dengan nilai variabel size dikurang 1.

Deklarasi method.

Perintah return untuk mengembalikan nilai true atau false dengan syarat nilai variabel top sama dengan nilai variabel size dikurang 1.

(7)

18

Perintah if dengan syarat isFull bernilai false. Inisialisasi isi array data indeks ke ++ top.

Deklarasi method akses modifier public dengan nama pop tipe integer tanpa parameter. Inisialisasi nilai variabel hasil tipe object.

Perintah if dengan syarat isEmpty bernilai false. Inisialisasi nilai variabel hasil.

Perintah return untuk mengembalikan nilai variabel hasil.

Buku.java

Deklarasi kelas dengan nama Buku.

Deklarasi variabel dengan nama judul, pengarang tipe string bersifat private. Deklarasi variabel dengan nama size, top tipe integer bersifat private. Deklarasi array 1 dimensi dengan nama data tipe integer bersifat private. Deklarasi konstruktor kelas Buku dengan parameter bernama n tipe integer. Inisialisasi nilai variabel top.

Inisialisasi nilai variabel size.

Inisialisasi nilai panjang array data sama dengan nilai variabel size.

Deklarasi konstruktor kelas Buku dengan parameter bernama judul, pengarang tipe string.

Inisialisasi nilai variabel judul yang ada di kelas Buku sama dengan nilai variabel judul yang ada di parameter.

Inisialisasi nilai variabel pengarang yang ada di kelas Buku sama dengan nilai variabel pengarang yang ada di parameter.

Override.

Deklarasi method toString.

Perintah return untuk mencetak isi dari variabel judul dan pengarang.

mainStackObject.java

Deklarasi kelas dengan nama AppStackObject. Deklarasi main method untuk eksekusi program.

Instansiasi kelas StackObject dengan nama st dan parameter 3. Objek st memanggil method push dengan parameternya 5 tipe double. Objek st memanggil method push dengan parameternya 8 tipe double. Objek st memanggil method push dengan parameternya 7 tipe double.

Perulangan while dengan batas method isEmpty yang dipanggil objek st bernilai false. Mencetak isi dari method pop yang dipanggil objek st.

Instansiasi kelas StackObject dengan nama stBuku dan parameter 3.

Objek stBuku memanggil method push dengan parameternya “Java”, “Anton”.

Objek stBuku memanggil method push dengan parameternya “Algoritma dan STD”, Achmad.

Objek stBuku memanggil method push dengan parameternya “C++”, “Budi”.

Perulangan while dengan batas method isEmpty yang dipanggil objek stBuku bernilai false.

(8)

D.

SCREENSHOT PROGRAM

No.1

No.2

E.

KESIMPULAN

Stack adalah tumpukan dari benda, sekumpulan data yang seolah-olah diletakkan di atas data yang lain, koleksi dari objek-objek homogen, atau suatu urutan elemen yang elemennya dapat diambil dan ditambah hanya pada posisi akhir (top) saja. Stack dapat diilustrasikan dengan dua buah kotak yang ditumpuk, kotak yang satu akan ditumpuk diatas kotak yang lainnya. Jika kemudian stack 2 kotak tadi, ditambah kotak ketiga, keempat, kelima, dan seterusnya, maka akan diperoleh sebuah stack kotak yang terdiri dari N kotak. Stack bersifat LIFO (Last In First Out), artinya benda yang terakhir masuk ke dalam stack akan menjadi yang pertama keluar dari stack.

Fungsi method yang ada dalam Stack :

1. Push digunakan untuk menambah item pada stack pada tumpukan paling atas. 2. Pop digunakan untuk mengambil item pada stack pada tumpukan paling atas. 3. Clear digunakan untuk mengosongkan stack. Dianggap kosong apabila puncak

stack berada pada posisi -1.

4. IsEmpty digunakan untuk mengecek apakah stack sudah kosong. 5. IsFull digunakan untuk mengecek apakah stack sudah penuh.

Perbedaan implementasi Stack menggunakan Array dengan Linked List : 1. Pada Array, pengaksesan dapat dilakukan hanya dengan memanggil inddeks nilai

(9)

2. Pada Linked List, pengaksesan bersifat sekuensial, yaitu harus memanggil berurutan dari node awal.

3. Pada Array memiliki sifat tidak bias diubah, kapasistasnya sudah pasti dan tidak diubah-ubah. Sedangkan ,

4. Pada Linked List dapat ditambah kapasitasnya sesuai dengan kebutuhan.

Gambar

Gambar 5. Driver program ADT Stack Object

Referensi

Dokumen terkait

Dengan mengasumsikan kecepatan kendaraan dan mengatur kecepatan kendaraan uji coba adalah konstan, MV frame dapat dirata-ratakan dengan semua MV frame lainnya, sehingga

a. Penagihan pajak dilakukan dengan terlebih dahulu menerbitkan surat teguran oleh pejabat. Jika wajib pajak mengajukan keberatan atas SKPKB, SKPKBT, jangka waktu

tersebut. Dewasa ini kasus kebakaran di Indonesia ditangani dengan mobil pemadam kebakaran. Harus ada landasan yang kokoh untuk bisa menopang mobil dan

Hasil analisis regresi sederhana menunjukkan bahwa hipotesis yang diajukan peneliti, yaitu terdapat hubungan positif antara citra tubuh dengan pengungkpan siri pada

Berdasarkan pemaparan di atas, maka peneliti tertarik untuk mengetahui lebih jauh mengenai pengaruh above the line, below the line , kreativitas iklan dan minat

Untuk poin yang kedua dalam kepemimpinan dalam keluarga pastinya dalam sebuah hubungan menginginkan keluarga tersebut harmonis sejahtera aman dan damai oleh sebab

signifikan telah mengkonservasi tumbuhan liar secara ex situ. Kehadiran kebun raya sebagai laboratorium pendidikan lingkungan secara tidak langsung mempunyai peran penting dalam