Contoh Program Stack Pascal

TUGAS

  1. Contoh Program Stack Pascal 2
  2. Contoh Program Stack Pascal 1

1.Buatlah algoritma inisialisasi, push, pop, isfull, isempty.

Membuat Program Stack Menggunakan Pascal. 23 April 2015 23 April 2015 Sadu Merta Adi. 1.Buatlah algoritma inisialisasi, push, pop, isfull, isempty.

2.Buat kode inisialisasi, push, pop, isfull, isempty.

3.Tampilkan screen shoot nya.

Istilah yang diberikan kepada perangkat lunak ini adalah TCP/IP stack. Protokol TCP/IP dikembangkan pada akhir dekade 1970-an hingga awal 1980-an sebagai sebuah protokol standar untuk menghubungkan komputer-komputer dan jaringan untuk membentuk sebuah jaringan yang luas (WAN). Article 2: The Stack Data Structure. An array is a data structure which stores data items in a pre-allocated space. It allows you to store data anywhere within its range. On the other hand, the Stack Data Structure does not allow you to store data where you want i.e. Order is important. It is based on a LIFO basis - the last to arrive, the.

4.Keterangan : Jumlah data yang akan di simpan, imputkan oleh pengguna

-Data yang akan di simpan di inputkan oleh pengguna.

Operasi Stack :

  1. Inisialisasi : digunakan untuk mengosongkan stack
  2. Push : digunakan untuk menambah item pada stack pada tumpukan paling atas
  3. Pop : digunakan untuk mengambil item pada stack pada tumpukan paling atas
  4. IsEmpty : fungsi yang digunakan untuk mengecek apakah stack sudah kosong
  5. IsFull : fungsi yang digunakan untuk mengecek apakah stack sudah penuh

Berikut penyelesaiannya dengan menggunakan Turbo Pascal :

program operasi_stack;
uses crt;

const max_el = 10;
type
nilaiMatkul = record
nim : string[8];
nama : string[25];
nilai : integer;
end;
stack = record
top : integer;
data : array[1..max_el] of nilaiMatkul;
end;
procedure inisialisasi(var s : stack);
begin
s.top := 0;
end;
function isempty(var s : stack) : boolean;
var
hasil : boolean;
begin
hasil := false;
if s.top = 0 then
begin
hasil := true;
end;
isempty := hasil;
end;
function isfull (var s : stack) : boolean;
var
hasil : boolean;
begin
hasil := false;
if s.top = max_el then
begin
hasil :=true;
end;
isfull :=hasil;
end;
procedure push(nim : string; nama:string; nilai:integer; var s:stack);
begin
if isfull(s)=true then
begin
writeln(‘stack penuh’);
end
else
begin
if isempty(s)=true then
begin
s.top := 1;
s.data[1].nim := nim;
s.data[1].nama := nama;
s.data[1].nilai := nilai;
end
else
begin
s.top := s.top+1;
s.data[s.top].nim :=nim;
s.data[s.top].nama :=nama;
s.data[s.top].nilai :=nilai;
end;
end;
end;
procedure pop(var s : stack);
begin
if s.top <> 0 then
begin
s.top := s.top-1;
end
else
write(‘Data Habis’);
writeln
end;
procedure printstack(var s:stack);
var
i : integer;
begin
if s.top<> 0 then
begin
for i := s.top downto 1 do
with s.data[i] do
begin
writeln;
writeln(‘elemen ke: ‘,i);
wrietln(‘nim: ‘,nim);
writeln(‘nama: ‘,nama);
writeln(‘nilai: ‘,nilai);
end;
writeln;
end
else
begin
writeln(‘Stack Kosong’);
end;
end;
var
s :stack;
banyak : byte;
i : integer;
begin
clrscr;
inisialisasi(s);
writeln;
writeln(‘Awal‘);
printstack(s);
writeln;
writeln(‘‘);
write(‘Masukkan Jumlah Data : ‘); readln(byk);
writeln;
for i := 1 to banyak do
with s.data[i] do
begin
write(‘nim : ‘); readln(nim);
write(‘nama: ‘); readln(nama);
write(‘nilai: ‘); readln(nilai);
end;
readln;
writeln(‘Setelah Di Push’);
for i :=1 to banyak do
begin
push(s.data[i].nim, s.data[i].nama, s.data[i].nilai,s);
writeln;
end;
printstack(s);
writeln(‘‘);
writeln;
readln;
writeln(‘Setelah Di Pop‘);
pop (s);
writeln;
printstack(s);
writeln(‘‘);
writeln;
readln;
readln;
end.

Setelah itu program bisa di RUN dengan cara mengeklik menu ‘RUN’ atau dengan cara menekan tombol ‘CTRL + F9′. Jika sudah sukses program bisa dijalankan.

Gambar dibawah merupakan hasil setelah di RUN :

Mudah - mudahan berjalan ya... ;-)
program stack;
uses crt;
type ptr= ^simpul;
simpul=record
nama : string;
tinggi : real;
next : ptr;
end;
var
list,baru: ptr;
i,n,pil: integer;
nama: string;
tinggi: real;
procedure tambahdata_dpn(var listnya: ptr; namanya: string; tingginya: real);
var baru: ptr;
begin
new(baru);

Contoh Program Stack Pascal 2


baru^.nama:=namanya;
baru^.tinggi:=tingginya;
if listnya= nil then
listnya:= baru
else
baru^.next:=listnya;
listnya:=baru;
end;
procedure tampildata_dpn(var listnya: ptr);
var bantu: ptr;Contoh program stack pascal 2
begin
bantu:= listnya;
writeln ('NAMA - TINGGI'); writeln;
while bantu <> nil do
begin
writeln (bantu^.nama,'-',bantu^.tinggi:0:2);
bantu:=bantu^.next;
end;
end;
procedure hapusdata_dpn(var listnya: ptr);
var bantu: ptr;
begin
if listnya=nil then
writeln('List kosong')
else
Stackif listnya^.next=nil then
begin
bantu:=listnya;
listnya:=nil;
dispose(bantu);
end
else
begin
bantu:=listnya;
listnya:=listnya^.next;
dispose(bantu);
end;
end;
begin
list:=nil;
repeat
clrscr;
writeln('Menu: ');
writeln;
writeln('(1). Tambah Data');
writeln ('(2). Ambil Data');
writeln ('(3). Lihat Data');
writeln ('(0). Keluar');
write ('PILIHAN = ');
readln(pil); writeln;
case pil of
1:begin
write('Banyak Data yang ditambah [PUSH] = '); readln(n);
for i:=1 to n do
begin
writeln('-------------');
write('NAMA = '); readln(nama);
write('TINGGI = '); readln(tinggi);
tambahdata_dpn(list,nama,tinggi);
end;
end;
2:begin
hapusdata_dpn(list);
writeln('Data Telah Ditambah[POP]');
readln;
end;
3:begin
tampildata_dpn(list);
readln;

Contoh Program Stack Pascal 1

end;
end;
until(pil=0);
readln;
end.