STRUKTUR DATA
“Program
Pendataan Kepemilikan Buku”
Dosen Pembimbing:
Andi Farmadi, S.Si, M.T
Oleh :
|
Nama Kelompok
|
: Muhammad Ripani
|
(J1F113021)
|
|
|
Samsudin
|
(J1F113043)
|
|
|
Fahmi
|
(J1F113208)
|
|
|
Dedi Kurniawan
|
(J1F113231)
|
|
|
Cholik
Fadlollah
|
(J1F112043)
|
|
|
|
|
KEMENTERIAN PENDIDIKAN NASIONAL
UNIVERSITAS LAMBUNG MANGKURAT
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
PROGRAM STUDI ILMU KOMPUTER
BANJARBARU
2014
A.
Source Code Program
|
Program
pendataanbuku; {Program pendataan
jumlah buku kepemilikan seseorang}
uses
wincrt; {Program ini
dibuat menggunakan Turbo Pascal For Windows 1.5}
type
penunjuk = ^simpanan;
simpanan = record
jumlah : integer;
nama: string;
namabuku: string;
next : penunjuk;
end;
var
awal,data,akhir : penunjuk;
i,j,n
: integer;
pil,pilih : char;
sementara : simpanan;
cari : string;
const
garis = ('-------------------------------------------------------------------------------');
Procedure
awalmulai;
Begin
clrscr;
gotoxy(0,4);
writeln;
writeln(garis);
writeln(' Selamat Datang
di');
writeln(' "Program Pendataan Kepemilikan
Buku"');
writeln(garis);
writeln(' Dibuat untuk memenuhi tugas
mata kuliah Struktur Data');
writeln(' Dosen Pembimbing : Andi
Farmadi,S.Si,M.T');
writeln(garis);
writeln(' No. Kelompok: 10 (Sepuluh)');
writeln(' Nama Kelompok: 1) Muhammad
Ripani (J1F113021)');
writeln(' 2)
Samsudin (J1F113043)');
writeln(' 3) Fahmi (J1F113208)');
writeln(' 4) Dedi
Kurniawan (J1F113231)');
writeln(' 5) Cholik
Fadlollah (J1F112043)');
writeln;
writeln(garis);
writeln(' Tekan Enter Untuk Melanjutkan ');
writeln(garis);
gotoxy(56,20);
write('');
readln;
end;
Procedure
menu;
begin
clrscr;
writeln('
|------------------------------------------------------|');
writeln(' !========|| PENDATAAN JUMLAH BUKU
SESEORANG ||=========!');
writeln('
|------------------------------------------------------|');
writeln(' | MENU |');
writeln(' | 1. Tambah data buku |');
writeln(' | 2. Tampilkan data buku yang
sudah ditambah |');
writeln(' | 3. Hapus data buku yang sudah
ada |');
writeln(' | 4. Cari buku |');
writeln(' | 5. Daftar nama yang memiliki
banyak buku |');
writeln(' | 6. Statistik |');
writeln(' | 0. Keluar
|');
writeln(' |
|');
writeln('
!======================================================!');
writeln(' | Pilih Menu [0..6] : [ ] |');
writeln('
!======================================================!');
end;
Procedure
databaru(var baru : penunjuk; jumlahbuku : integer; namaorang : string;
namabukuorang : string);
Begin
new(baru);
baru^.nama:=namaorang;
baru^.namabuku:=namabukuorang;
baru^.jumlah:=jumlahbuku;
baru^.next:=nil;
end;
Procedure
tambahdata;
begin
clrscr;
writeln('=======|| Masukkan data Baru
||=======');
writeln;
repeat
new(data);
writeln('--------------------------------------');
write('Nama Pemilik : '); readln(sementara.nama);
write('Nama Buku : '); readln(sementara.namabuku);
write('Jumlah Buku : '); readln(sementara.jumlah);
databaru(data,sementara.jumlah,sementara.nama,sementara.namabuku);
if awal=nil then
begin
awal:=data;
akhir:=data;
end
else
begin
akhir^.next:=data;
akhir:=data;
akhir^.next:=nil;
end;
writeln('Data telah ditambahkan');
writeln;
write('Tambah data lagi [Y/T] : ');
readln(pilih);
writeln;
pilih:=upcase(pilih);
until pilih='T';
end;
Procedure
lihatdata;
var
banyak : integer;
begin
clrscr;
j:=0;
banyak:=0;
data:=awal;
writeln('|==========================================================|');
writeln('!--------------
DAFTAR KEPEMILIKAN BUKU
------------------!');
writeln('|==========================================================|');
writeln('|
No | Nama |
Nama Buku | Jumlah Buku
|');
writeln('|----------------------------------------------------------|');
while
data<> nil do
begin
j:=j+1;
gotoxy(1,5+j);
writeln('| | | | |');
gotoxy(3,5+j);
writeln(j);
gotoxy(8,5+j);
writeln(data^.nama);
gotoxy(24,5+j);
writeln(data^.namabuku);
gotoxy(48,5+j);
writeln(data^.jumlah);
banyak:=banyak+data^.jumlah;
data:=data^.next;
end;
writeln('|----------------------------------------------------------|');
writeln('| Total Buku
| |');
begin
gotoxy(48,7+j);
writeln(banyak);
end;
writeln('|==========================================================|');
readkey;
end;
Procedure
hapusdata;
var
terus : boolean;
bantu : penunjuk;
banyak: integer;
begin
clrscr;
j:=0;
banyak:=0;
data:=awal;
writeln('|==========================================================|');
writeln('!--------------
DAFTAR KEPEMILIKAN BUKU ------------------!');
writeln('|==========================================================|');
writeln('|
No | Nama Pemilik | Nama Buku |
Jumlah Buku |');
writeln('|----------------------------------------------------------|');
while
data<> nil do
begin
j:=j+1;
gotoxy(1,5+j);
writeln('| | | | |');
gotoxy(3,5+j);
writeln(j);
gotoxy(8,5+j);
writeln(data^.nama);
gotoxy(24,5+j);
writeln(data^.namabuku);
gotoxy(48,5+j);
writeln(data^.jumlah);
banyak:=banyak+data^.jumlah;
data:=data^.next;
end;
writeln('|----------------------------------------------------------|');
writeln;
writeln;
writeln('||==================
Hapus Data Buku =====================||');
writeln;
write('Nama
pemilik yang ingin dihapus : ');
readln(cari);
writeln;
data:=awal;
terus:=false;
if
data^.nama=cari then
begin
awal:=data^.next;
dispose(data);
writeln('Nama ',cari,' Berhasil dihapus
! ');
end
else
begin
while (data<>nil) and (terus=false) do
begin
if data^.next^.nama = cari then
begin
terus:=true;
bantu:=data^.next;
data^.next:=data^.next^.next;
dispose(bantu);
writeln('Nama ',cari,' Berhasil dihapus !
');
end;
data:=data^.next;
end;
end;
if
data= nil then writeln('Nama ',cari,' Tidak ditemukan ! ');
readkey;
end;
Procedure
caridata;
var
terus : boolean;
begin
clrscr;
writeln('=================||
Cari Data Pemilik Buku ||==============');
writeln;
write('Nama
pemilik yang dicari : ');
readln(cari);
writeln;
data:=awal;
terus:=false;
while
(data<>nil) and (terus=false) do
begin
if data^.nama=cari then
begin
terus:=true;
writeln('Nama ',cari,' Ditemukan ');
writeln(' Nama : ',data^.nama);
writeln(' Nama
Buku : ',data^.namabuku);
writeln(' Jumlah Buku : ',data^.jumlah);
end
else
data:=data^.next;
end;
if
data= nil then writeln('Nama ',cari,' Tidak ditemukan ! ');
readkey;
end;
procedure
terbanyakdantersedikit;
var
min,max : penunjuk;
begin
clrscr;
data:=awal;
max:=awal;
min:=awal;
while data<>nil do
begin
if max^.jumlah < data^.jumlah then
max:=data;
if min^.jumlah > data^.jumlah then
min:=data;
data:=data^.next;
end;
if awal=nil then
writeln('Data masih kosong ! ')
else
begin
writeln(' PEMILIK DENGAN JUMLAH BUKU
TERBANYAK ');
writeln;
writeln('Nama pemilik dengan buku
terbanyak : ',max^.nama);
writeln(' Nama Buku : ',max^.namabuku);
writeln(' Jumlah Buku : ',max^.jumlah);
writeln('------------------------------------------------------------');
writeln;
writeln(' PEMILIK DENGAN JUMLAH BUKU
TERSEDIKIT ');
writeln;
writeln('Nama pemilik dengan buku
tersedikit: ',min^.nama);
writeln(' Nama Buku : ',min^.namabuku);
writeln(' Jumlah Buku : ',min^.jumlah);
end;
readkey;
end;
Procedure
ratarata;
var
rata2,rata3 : real;
n : integer;
begin
clrscr;
data:=awal;
rata2:=0;
n:=0;
while data<>nil do
begin
rata2:=rata2+data^.jumlah;
n:=n+1;
data:=data^.next;
end;
if awal=nil then
writeln('Data Masih Kosong ! ')
else
begin
rata3:=rata2/n;
writeln('Rata-rata jumlah buku dari semua
data : ',rata3:0:2);
end;
readkey;
end;
Begin
awalmulai;
repeat
menu;
gotoxy(25,14);
write('');
readln(pil);
case
pil of
'1'
: tambahdata ;
'2'
: lihatdata ;
'3'
: hapusdata;
'4'
: caridata;
'5'
: terbanyakdantersedikit;
'6'
: ratarata;
'0'
: exit;
end;
until
pil ='0';
End.
|
B.
Output
Gambar 1. Tampilan
saat program pertama kali dijalankan
Gambar 2. Tampilan
menu utama
Gambar 3. Tampilan
pada menu 1 dan penginputan datanya
Gambar 4. Tampilan
pada menu 2
Gambar 5. Tampilan
pada menu 3 dan proses hapus datanya
Gambar 6. Tampilan
pada menu 4 dan proses pencarian datanya
Gambar 7. Tampilan
pada menu 5
Gambar 8. Tampilan
pada menu 6
Dari pada bingung
Download program dan laporannya disini















0 komentar:
Posting Komentar