laporan hasil modul 1 strukdat

29
LAPORAN HASIL PRAKTIKUM STRUKTUR DATA Nama : Tiara Elshawina NIM : DBC 114 082 Kelas : J Modul : I (STACK) JURUSAN TEKNIK INFORMATIKA FAKULTAS TEKNIK

Upload: acha

Post on 08-Nov-2015

237 views

Category:

Documents


2 download

DESCRIPTION

hasil pratikum strukdat prodi TI pada modul 1

TRANSCRIPT

LAPORAN HASIL PRAKTIKUMSTRUKTUR DATA

Nama: Tiara ElshawinaNIM: DBC 114 082Kelas: JModul: I (STACK)

JURUSAN TEKNIK INFORMATIKAFAKULTAS TEKNIKUNIVERSITAS PALANGKA RAYA2015BAB ITUJUAN DAN LANDASAN TEORI

1.1 Tujuan Praktikum1. Mahasiswa mampu memahami konsep stack.2. Mahasiswa mampu mengimplementasikan stack untuk memecahkan masalah tertentu.

1.2 Landasan TeoriStack atau tumpukan bisa diartikan sebagai kumpulan data yang seolah olah diletakan diatas data yang lain. Satu hal yang perlu diingat bahwa kita bisa menambah (menyisipkan) data dan mengambil (menghapus) data melalui ujung yang sama, yang disebut sebagai ujung atas stack. Secara sederhana, sebuah stack bisa diilustrasikan seperti gambar dibawah ini :FAtas (Top)

E

D

C

B

A

Dari gambar diatas, bisa dilihat bahwa kotak B terletak diatas kotak A dan dibawah kotak C. Kotak D terletak diatas kotak C, kotak E terletak diatas kotak D dan seterusnya sampai kotak berakhir. Dari gambar diatas menunjukan bahwa kotak lewat satu ujung, yaitu bagian atas. Apabila ada kotak lain yang akan diambil, maka kotak F yang akan diambil untuk pertama kali.Dengam demikian stack adalah struktur data yang menggunakan konsep last In first Out (LIFO) dan bersifat dinamis dimana data bisa ditambah maupun diambil.Stack dapat dideklarasikan dengan sebuah record yang mempunyai elemen sebuah array tabelemen untuk menyimpan elemen stack dan sebuah variabel top untuk menunjuk elemen stack teratas. Deklarasi selengkapnya sebagai berikut :ContsNMAX =. . . .;{ukuran maksimum stack}NULL = 0 ;{penunjuk stack kosong}Typetipedata = . . . . ; {tipe data yang disimpan didalam stack}Stack = recordTabelemen : array [1. . NMAX] of tipedatatop : NULL . . . NMAX ;{ top dari stack }End;

Operasi pada stackBerdasarkan sifat khusus stack, maka ada 2 operasi terhadap stack, yaitu :1. Pengambilan elemen dilakukan pada top, yang disebut sebagai POP.2. Penambahan elemen dilakukan pada top, yang disebut PUSH.

Implementasi Stack :1. Inisialisasi, adalah proses untuk membuat stack dalam keadaan kosong. Proses ini dilakukan dengan mengisi variabel top dengan nilai yan tidak menunjuk salah satu elemen array.

Procedure inisialisasi (var S : stack );BeginS.Top := Null;End;

2. Empty/kosong, adalah operasi untuk mengetahui status stack, yaitu kosong atau tidak.Fungction Empty (S : stack) : Boolean;{Mengirim nilai true jika S adalah stack kosong}BeginEmpty := (S.Top=Null);End;3. Full/penuh, adalah operasi untuk mengetahui status stack, yaitu penuh atau tidak.

Function Full (S : stack) : Boolean;{mengirim nilai true jika S sudah penuh}BeginEmpty := (S.To=NMAX);End;

4. Pop, dengan mempertimbangkan seleksi awal terhadap kondisi stack yaitu hanya berlaku untuk stack yang tidak kosong

Procedure POP (var S : stack; var data : tipedata);{IS : S adalah stack yang tidak kosong}{FS : elemen top dari stack S dihapus dan disimpan didata}BeginIf not Empty (S) ThenBeginData := S.tabelemen[S.Top];S.Top := S.To 1;End;ElseData := . . ; {isi suatu nilai yang kemungkinan bukan data}End;

5. Push, dengan mempertimbangkan seleksi awal terhadap kondisi stackyaitu untuk menghindari overflow.

Procedure Push (var S : stack; data : tipedata);{IS : S adalah stack yang belum penuh, data terdefinisi}{FS : data menjadi eleman top dari stack}BeginIf not Full (S) ThenBeginS.Top := S.Top + 1;S.tabelemen[S.Top] := data;End;End;

Ilustrasi stack :

Contohnya, karena kita menumpuk Compo di posisi terakhir, maka Compo akan menjadi elemen teratas dalam tumpukan. Sebaliknya, karena kita menumpuk Televisi pada saat pertama kali, maka elemen Televisi menjadi elemen terbawah dari tumpukan. Dan jika kita mengambil elemen dari tumpukan, maka secara otomatis akan terambil elemen teratas, yaitu Compo juga.

PUSH DAN POP;Push,dengan mempertimbangkan seleksi awal terhadap kondisi stack yaitu menghindarkan overflow. push digunakan untuk menambahkan item dari stack Pada tumpukan palung atas. Sedangkan Pop adalah pengambilan elemen yang dilakukan pada stack pada tumpukan paling atas.

BAB IILANGKAH KERJA

1. Buatlah program menggunakan prinsip tumpukan (stack) dan beri tiga pilihan : push, pop, dan quit. Jika dipilih push program akan meminta user menginputkan sebuah kata, dimana maksimal 6 karakter jika lebih dari 6 akan muncul pesan kesalahan. Jika dipilih pop maka karakter teratas akan dikeluarkan, bila belum ada kata yang dimasukan maka waktu memilih pop akan tampil pesan kesalahan. Jika dipilih quit maka program selesai.Output :Pilihan :1. Push2. Pop 3. QuitPilihan [1/2/3] = 1Masukan kata = DataHasil Push : Data

BAB IIIPEMBAHASAN

Tujuan pada program ini untuk menjabarkan atau menjelaskan prinsip stack pada program yang mana banyak kumpulan data yang seolah-olah diletakkan di atas data yang lain, kemudian kita bisa menambah data dan mengambil data melalui data yang paling atas dari sebuah tumpukan.Pada langkah kerja diperintahkan buat sebuah program yang menggunakan prinsip stack. Program tesebut di tulis dalam bahasa pascal.program stackTiara;uses crt;

const nmax = 6; null = 0;

type tipedata = string; stack = record tabelemen : array[1..nmax] of tipedata; top : null..nmax; end;

var s : stack; data : tipedata; i : integer;

label a,b;

Bagian program diatas adalah program pendeklarasian struktur data dengan menggunakan struktur linier dan sebuah variabel yang dikemas dalam tipe data record, karena tumpukan adalah struktur data yang bertipe record yang terdiri dari field elemen, bertipe larik/array dengan indek 1 sampai dengan nmax.

uses crt digunakan untuk memanggil unit library pascal yaitu crt. Const nmax = 6 merupakan const adalah nilai konstanta (nilai tetap) yang dipasang dalam program, pada program memasukkan nilai 6 untuk menunjukan ukuran maksimun stack. Null = 0 adalah penunjuk stack yang kosong. Type data = string adalah tipe data yang digunakan dimana memungkinkan kita menyimpan data beberapa karakter sementara sebanyak 256. Stack = record yaitu tipedata record yang tersimpan didalam stack, record merupakan struktur data yang tersusun atas elemen-elemen dengan jumlah tertentu. Tabelemen : array[1..nmax] of tipedata adalah pengdeklarasian stack dengan sebuah record yang mempunyai sebuah elemen array tabelemen untuk menyimpan elemen stack. Top : null..nmax merupakan top dari stack yang mana menunjukkan elemen stack teratas. Var menunjukkan variabel yang digunakan dalam program variabel adalah suatu pengenal (identifier) yang nilainya dapat berubah Label adalah suatu deklarasi yang digunakan untuk memberi tanda (MARK) padaprogram agarprogram dapat berpindah atau meloncat pada tanda (MARK) yang ditentukan.

procedure inisialisasi (var s:stack);begin s.top : = null;end;

function empty (s:stack):boolean;begin empty : = (s.top = null);end;

function full (s:stack):boolean;begin full : = (s.top = nmax);end;

Procedure inisialisasi ( var s : stack ) merupakan prosedur yang digunakan untuk menginisialisasi nilai awal Top ke 0 (nol). Procedur inisialisasi berfungsi untuk membuat stack dalam keadaan kosong. Proses ini dilakukan dengan mengisi variabel top dengan nilai yang tidak menunjukan salah satu elemen array. Function Empty berfungsi untuk mengetahui status stack apakan stack tersebut kosong atau tidak. Function full berfungsi untuk mengetahui status stack apakan stack tersebut penuh atau tidak.

procedure pop (var s : stack; var data : tipedata);begin if not empty (s) then {kalau STACK tidak kosong} begin data : = s.tabelemen[s.top]; s.top : = s.top-1; endelse data : = 'kosong.stack kesalahan';end;

procedure push (var s : stack; var data :tipedata);begin if not full (s) then begin s.top : = s.top+1; s.tabelemen [s.top] : = data; end; end;

Procedure pop (var s : stack; var data : tipe data) adalah prosedur yang digunakan untuk mengambil data ke stack. Procedure POP berfungsi untuk mempertimbangkan seleksi awal terhadap kondisi stack, yaitu hanya berlaku untuk stack yang tidak kosong. procedure push (var s : stack; data : tipedata) adalah prosedur yang digunakan untuk menambahkan data ke stack. Procedure PUSH berfungsi untuk mempertimbangkan seleksi awal terhadap kondisi stack, yaitu untuk menghindari overflow.

Statemen IF adalah suatu aksi akan dikerjakan atau di eksekusi oleh program apabila kondisi yang didefinisikan untuk aksi tersebut bernilai benar (true). Sebaliknya, bila kondisi tidak terpenuhi atau salah (false) maka program akan melakukan aksi lain (jika ada) atau langsung keluar dari blok pemilihan. Pada program teersebut menggunakan statemen IF pada procedure POP dan procedure PUSH.Begin a: clrscr; writeln (' pilihan : '); writeln ('1. Push'); writeln ('2. Pop'); writeln ('3. Quit');

write('Pilihan [1/2/3] = '); case readkey of '1': if not full(s) then begin writeln('1.Push'); write('Masukkan Kata : '); readln(data); i:=length(data); if i>6 then begin write('Batas max adalah 6');readkey;goto a;end;if i6 thenbegin write('Batas max adalah 6');readkey;goto a;end;if i