"Wahai jin dan manusia, jika kalian mampu menembus penjuru langit dan bumi, tembuslah! Kalian tidak dapat menembusnya kecuali dengan kekuatan (ilmu)." (Ar-Rahman:33)

Kali ini kami memberi contoh tentang bahasa pemprograman pascal. Insya’allah fitur pada aplikasi ini lengkap. dari input, update, cari, sampai delete. dan temen2 bisa ambil referensi untuk menambah logika temen2. Ini mengambil konsep persewaan komik menurut kami sendiri. Adapun kekurang aplikasi ini adalah belum adanya penyimpanan file. sehingga jika aplikasi di exit maka data akan hilang. untuk lebih lanjut, bisa memperlajari dan mendownload di link yang kami sudah sediakan.

Tampilan    :

SouceCode :


program persewaan_Komik_7;
{jangan lupa titik koma dan nama file tidak boleh pakai space}

{library yang digunakan}
uses crt, dos; {mengatur tampilan}

{deklarasi record transaksi}
type
transaksi = record
 nama:string;
 nim:real;
 kodeBuku:integer;
 dP:word;
 mP:word;
 yP:word;
 dK:word;
 mK:word;
 yK:word;
 status:string;
end;

{deklarasi record buku komik}
 buku = record
 kodeBuku:integer;
 edisi:string;
 judul:string;
 tahun:integer;
 hargaSewa:integer;
 stok:integer;
end;

{deklarasi array}
dataPelanggan = array [1..20] of transaksi;
dataBuku = array[1..20] of buku;

{dekarasi variable global}
var
 p:dataPelanggan;
 b:dataBuku;
 lastBuku:integer=11;
 lastTransaksi:integer=8;
 indexBuku:integer=320;
 pilih:integer;
 i:integer;

{daftar koleksi buku default}
procedure daftarKomik();
begin
 b[1].judul := 'Naruto Shipudden';
 b[1].kodeBuku := 310;
 b[1].tahun := 2011;
 b[1].edisi := '1-5';
 b[1].hargaSewa:=1000;
 b[1].stok:=1;

b[2].judul := 'Samurai X';
 b[2].kodeBuku := 311;
 b[2].tahun := 2012;
 b[2].edisi := '6-10';
 b[2].hargaSewa:=1500;
 b[2].stok:=1;

b[3].judul := 'Doremon';
 b[3].kodeBuku := 312;
 b[3].tahun := 2012;
 b[3].edisi := '11-20';
 b[3].hargaSewa:=1000;
 b[3].stok:=2;

b[4].judul := 'fireTail';
 b[4].kodeBuku := 313;
 b[4].tahun := 2011;
 b[4].edisi := '51-60';
 b[4].hargaSewa:=1500;
 b[4].stok:=1;

b[5].judul := 'Dragon Ball Z';
 b[5].kodeBuku := 314;
 b[5].tahun := 2012;
 b[5].edisi := '61-70';
 b[5].hargaSewa:=1000;
 b[5].stok:=2;

 b[6].judul := 'EX-men';
 b[6].kodeBuku := 315;
 b[6].tahun := 2012;
 b[6].edisi := '71-80';
 b[6].hargaSewa:=1000;
 b[6].stok:=1;

b[7].judul := 'Kapten Stubasa';
 b[7].kodeBuku := 316;
 b[7].tahun := 2010;
 b[7].edisi := '41-60';
 b[7].hargaSewa:=2000;
 b[7].stok:=0;

b[8].judul := 'Betmen';
 b[8].kodeBuku := 317;
 b[8].tahun := 2010;
 b[8].edisi := '61-80';
 b[8].hargaSewa:=1500;
 b[8].stok:=1;

b[9].judul := 'One Piace';
 b[9].kodeBuku := 318;
 b[9].tahun := 2011;
 b[9].edisi := '90-100';
 b[9].hargaSewa:=2000;
 b[9].stok:=1;

b[10].judul := 'Ben 10';
 b[10].kodeBuku := 319;
 b[10].tahun := 2011;
 b[10].edisi := '101-110';
 b[10].hargaSewa:=1000;
 b[10].stok:=2;
end;

{daftar transaksi pelanggan dafault}
procedure daftarPelanggan();
begin
 p[1].nama:='Ariska';
 p[1].nim:=10030092;
 p[1].kodeBuku:=311;
 p[1].dP:=13;
 p[1].mP:=4;
 p[1].yP:=2012;
 p[1].dK:=16;
 p[1].mK:=4;
 p[1].yK:=2012;
 p[1].status:='Sdh Dikembalikn';

 p[2].nama:='Ahmad';
 p[2].nim:=10080023;
 p[2].kodeBuku:=313;
 p[2].dP:=16;
 p[2].mP:=4;
 p[2].yP:=2012;
 p[2].dK:=19;
 p[2].mK:=4;
 p[2].yK:=2012;
 p[2].status:='Sdh Dikembalikn';

 p[3].nama:='Imam Mahdi';
 p[3].nim:=10080011;
 p[3].kodeBuku:=314;
 p[3].dP:=18;
 p[3].mP:=4;
 p[3].yP:=2012;
 p[3].dK:=21;
 p[3].mK:=4;
 p[3].yK:=2012;
 p[3].status:='Blm Dikembalikn';

 p[4].nama:='Hanifah';
 p[4].nim:=10080001;
 p[4].kodeBuku:=319;
 p[4].dP:=24;
 p[4].mP:=4;
 p[4].yP:=2012;
 p[4].dK:=27;
 p[4].mK:=4;
 p[4].yK:=2012;
 p[4].status:='Blm Dikembalikn';

 p[5].nama:='Bambang';
 p[5].nim:=10080099;
 p[5].kodeBuku:=316;
 p[5].dP:=23;
 p[5].mP:=4;
 p[5].yP:=2012;
 p[5].dK:=26;
 p[5].mK:=04;
 p[5].yK:=2012;
 p[5].status:='Blm Dikembalikn';

 p[6].nama:='Muttaqin';
 p[6].nim:=10030021;
 p[6].kodeBuku:=315;
 p[6].dP:=25;
 p[6].mP:=4;
 p[6].yP:=2012;
 p[6].dK:=28;
 p[6].mK:=04;
 p[6].yK:=2012;
 p[6].status:='Blm Dikembalikn';

 p[7].nama:='Suryan';
 p[7].nim:=10030004;
 p[7].kodeBuku:=312;
 p[7].dP:=26;
 p[7].mP:=4;
 p[7].yP:=2012;
 p[7].dK:=29;
 p[7].mK:=04;
 p[7].yK:=2012;
 p[7].status:='Blm Dikembalikn';
end;

{input data transaksi}
procedure inputTransaksi();
var
 nama:string;
 nim:real;
 y,m,d,hari:word;
 yK,mK,dK:word;
 jumlah:integer;
 kodeBuku:integer;
 ulangi, ketemu, pernahPinjam : Boolean;
 n:integer;

begin
 getdate(y,m,d,hari); {input tanggal hari ini}
 writeln('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~');
 writeln(' Transaksi Peminjaman Komik ');
 writeln('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~');
 writeln();
 write(' Masukkan nama : '); readln(nama);
 write(' NIM : '); readln(nim);
 writeln();
 writeln(' Tanggal pinjam : ',d,'/',m,'/',y);
 dK:= d + 3; {batas pinjam cuma tiga hari}

 if dk >= 30 then {jika pinjam di akhir bulan}
 begin
 dk := dk-30+1;
 mK := m+1;
 end;

 yK := y;{ tahun peminjaman dan tahun sekarang sama}
 writeln(' Tanggal kembali: ',dK,'/',mK,'/',yK);
 writeln();
 write('Berapa banyak buku yang dipinjam : ');readln(jumlah);
 writeln();

 {Buku - buku yang akan dipijam}
 for i:= 1 to jumlah do
 begin
 repeat
 ulangi := false;
 ketemu := false;
 pernahPinjam:= false;
 {Input kode buku}
 write(i,'. Kode buku : ');readln(kodeBuku);

 {mengecek apakah buku pernah dipijam}
 for n:= 1 to (lastTransaksi-1) do
 begin
 if p[n].nim = nim then
 begin
 if p[n].kodeBuku = kodeBuku then
 begin
 pernahPinjam := true;
 end
 end
 end;

 {mengecek apakah buku yang dipinjam ada}
 for n:= 1 to (lastBuku-1) do
 begin
 if (b[n].kodeBuku = kodeBuku) and (b[n].stok <> 0) then
 begin
 p[lastTransaksi].kodeBuku := kodeBuku;
 b[n].stok := b[n].stok - 1;
 ketemu := true;
 end
 end;

 {jika buku tidak ada di data base atau stok buku habis}
 if ketemu <> true then
 begin
 ulangi := true;
 writeln(' Kode Buku Tidak Dikenali atau Stok Habis!! ');
 writeln();
 end;

 {jika sebelumnya pernah transaksi buku}
 if pernahPinjam = true then
 begin
 ulangi := true;
 writeln(' Pelanggan Pernah Pinjam Sebelumnya!!');
 writeln();
 end;
 until ulangi = false;

 {penyalinan nama, nim, tanggal pinjam dan tanggal ke database transaksi}
 p[lastTransaksi].nama := nama;
 p[lastTransaksi].nim := nim;
 p[lastTransaksi].dP:=d;
 p[lastTransaksi].mP:=m;
 p[lastTransaksi].yP:=y;
 p[lastTransaksi].dK:=dK;
 p[lastTransaksi].mK:=mK;
 p[lastTransaksi].yK:=yK;
 p[lastTransaksi].status:='Blm Dikembalikn';
 lastTransaksi := lastTransaksi + 1;
 end;
 writeln();
 writeln(' Transaksi Berhasil!! ');
 writeln();
 writeln('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~');
end;

{tampilkan data}
procedure tampilkanData();
var
 {variable local}
 pilih2:integer;
 baris:integer=5;

begin
 writeln('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~');
 writeln(' Data yang Akan Dilihat ');
 writeln('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~');
 writeln(' 1. Persediaan Buku');
 writeln(' 2. Daftar Transaksi Pelanggan');
 writeln('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~');
 write(' Pilih[1/2]: '); readln(pilih2);

 {jika yang dipiliha adalah persediaan buku}
 if pilih2 = 1 then
 begin
 clrscr;
 writeln(' Daftar Semua Buku');
 writeln('+---------------------------------------------------------------+');
 writeln('| Kode Buku | Judul Buku | Edisi | Tahun | harga sewa | stok |');
 writeln('+---------------------------------------------------------------+');

 {mencetak semua data yang ada di database koleksi buku}
 for i:= 1 to (lastBuku-1) do
 begin
 gotoxy(1,baris);write('| ',b[i].kodeBuku);
 gotoxy(13,baris);write('| ',b[i].judul);
 gotoxy(27,baris);write('| ',b[i].edisi);
 gotoxy(37,baris);write('| ',b[i].tahun);
 gotoxy(45,baris);writeln('| ',b[i].hargaSewa);
 gotoxy(58,baris);writeln('| ',b[i].stok);
 gotoxy(65,baris);writeln('|');
 baris := baris+1;
 end;
 writeln('+---------------------------------------------------------------+');
 {jika tidak memilih 1 }
 end else
 begin
 clrscr;
 writeln(' Daftar Semua Transaksi ');
 writeln('+-----------------------------------------------------------------------------+');
 writeln('| Nim | Nama | K. Buku | Tgl Pinjam | Tgl Kembali | Status |');
 writeln('+-----------------------------------------------------------------------------+');
 {mencetak semua data uang ada di database transaksi}
 for i:= 1 to (lastTransaksi-1) do
 begin
 gotoxy(1,baris); write('| ',p[i].nim:0:0);
 gotoxy(12,baris); write('| ',p[i].nama);
 gotoxy(24,baris);write('| ',p[i].kodeBuku);
 gotoxy(34,baris);write('| ',p[i].dP,'/',p[i].mP,'/',p[i].yP);
 gotoxy(47,baris);write('| ',p[i].dK,'/',p[i].mK,'/',p[i].yK);
 gotoxy(61,baris);write('| ',p[i].status);
 gotoxy(79,baris);writeln('|');
 baris := baris+1;
 end;
 writeln('+-----------------------------------------------------------------------------+');
 end;
 end;

{pemgembalian buku}
procedure pengembalianBuku();
var
 pilih2:integer;
 nim:real;
 nama:string;
 indexTemu:integer=1;
 ketemu:Boolean;
 temu:array[1..20] of integer;
 baris:integer=5;
 n:integer;
 kembalikan:integer;
 hari:integer;
 d,m,y, dow:word;
 bayar, denda:real;
 totalBayar:real=0;

begin
 getDate(y,m,d,dow); {input tanggal sekarang}
 writeln('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~');
 writeln(' Pengembalian Buku');
 writeln('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~');
 writeln(' Pencarian berdasarkan :');
 writeln(' 1. NIM ');
 writeln(' 2. Nama ');
 writeln('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~');
 write(' Pilih [1/2]: ');readln(pilih2);
 writeln();

 {jika memilih nim}
 if pilih2 = 1 then
 begin
 write(' Masukkan Nim : ');readln(nim);

 {mengecek di databese transaksi apakah ada nim tersebut}
 for i:= 1 to (lastTransaksi-1) do
 begin

 {jika ada}
 if p[i].nim = nim then
 begin
 ketemu:= true;
 temu[indexTemu]:=i;
 nama:=p[i].nama;
 indexTemu:= indexTemu + 1;
 end

 end;

 end else
 begin
 write(' Masukkan Nama : ');readln(nama);
 {mengecek apakah nama tersebut ada di database transaksi}
 for i:= 1 to (lastTransaksi-1) do
 begin

 {jika ada}
 if p[i].nama = nama then
 begin
 ketemu:= true;
 temu[indexTemu]:=i;
 nama:=p[i].nama;
 indexTemu:= indexTemu + 1;
 end

 end;

 end;

 if ketemu = true then
 begin
 {proses(index);}
 clrscr;
 writeln(' Pengembalian Buku (',nama,')');
 writeln('+---------------------------------------------------------------------+');
 writeln('| No. | Kode Buku | Judul Buku | Tgl Kembali | Status |');
 writeln('+---------------------------------------------------------------------+');

 {menampilkan semua data yang pernah dipinjam oleh pelanggan}
 for i:= 1 to (indexTemu-1) do
 begin
 gotoxy(1,baris);write('| ',i);
 gotoxy(7,baris);write('| ',p[temu[i]].kodeBuku);

 {melakukan relasi ke databese buku}
 for n:= 1 to (lastBuku-1) do
 begin
 if b[n].kodeBuku = p[temu[i]].kodeBuku then
 begin
 gotoxy(19,baris);write('| ',b[n].judul);
 end

 end;

 gotoxy(39,baris);write('| ',p[temu[i]].dK,'/',p[temu[i]].mK,'/',p[temu[i]].yK);
 gotoxy(53,baris);write('| ',p[temu[i]].status);
 gotoxy(71,baris);writeln('|');
 baris := baris+1;
 end;

 writeln('+---------------------------------------------------------------------+');
 writeln('| Pilih 0 untuk Keluar |');
 writeln('+---------------------------------------------------------------------+');

 {melakukan perlangan jika tidak menekan nol atau angka yang tidak sesuai}
 repeat
 write('Pilih daftar no. yang akan dikembalikan : ');readln(kembalikan);
 writeln();
 hari := 0;
 denda := 0;
 bayar := 0;

 {jika pelnaggan nekan nol atau melebihi angka yang ditentukan}
 if (kembalikan <> 0) and (kembalikan <indexTemu) then
 begin

 {jika buku tersebut belum dikembalikan}
 if p[temu[kembalikan]].status <> 'Sdh Dikembalikn' then
 begin
 {menghitung denda}
 hari:= 0;

 {mengecek apakah bulan dan tahun sama}
 if (m = p[temu[kembalikan]].mK) and (y = p[temu[kembalikan]].yK) then
 begin
 hari := d - p[temu[kembalikan]].dK;{jarak hari}
 {mengecek apakah tahun pinjam dan tahun sekarang sama}
 end else if (m <> p[temu[kembalikan]].mK) and (y = p[temu[kembalikan]].yK) then
 begin
 hari := (m - p[temu[kembalikan]].mK)*30; { jarak bulan}
 hari := hari - p[temu[kembalikan]].dK - (30 - d); {jarak bulan - jarak hari}
 end;

 {jika mengembalikan sebelum hari ditentukan}
 if hari<0 then
 begin
 hari := 0;
 end;
 denda := hari * 1000;
 writeln(' Terlambat : ',hari,' Hari');

 {mencari harga yang ada di database buku}
 for i:= 1 to (lastBuku-1) do
 begin

 {jika kode buku sama}
 if p[temu[kembalikan]].kodeBuku = b[i].kodeBuku then
 begin
 bayar:= b[i].hargaSewa+denda;
 b[i].stok := b[i].stok + 1 ;
 writeln(' Harga Sewa : Rp ',b[i].hargaSewa,',00');
 writeln(' Denda : Rp ',denda:0:0,',00');
 writeln(' Jumlah : Rp ',bayar:0:0,',00');
 totalBayar := totalbayar + bayar;
 end
 end;

 {menyesuaikan status dan tanggal kembali}
 p[temu[kembalikan]].status:= 'Sdh Dikembalikn';
 p[temu[kembalikan]].dK:=d;
 p[temu[kembalikan]].mK:=m;
 p[temu[kembalikan]].yK:=y;

 writeln();
 writeln(' Total Sementara adalah : Rp ',totalBayar:0:0,',00');
 writeln();
 end else
 begin
 writeln(' Buku sudah DiKembalikan!!');
 writeln();
 end;
 {jika menekan nol dan menekan angka yang tidak sesuai}
 end else
 begin
 kembalikan := 0;
 end;
 until kembalikan = 0;
 {jika nim atau nama tidak terdapat di databese transaksi}
 end else
 begin
 writeln(' Maaf, data tidak ditemukan!!');
 writeln();
 end;
 writeln();
 writeln(' Jadi, Total yang harus dibayar adalah : Rp ',totalBayar:0:0,',00');
 writeln();
end;

{hapus data}
procedure hapusData();
var
 n:integer;
 baris:integer;
 hapus:integer;

begin
 {melakukan perulangan selama tidak menekan 0}
 repeat
 baris:= 5;
 clrscr;
 writeln(' Daftar Semua Transaksi ');
 writeln('+--------------------------------------------------------------------------+');
 writeln('| No.| NIM | Nama | Judul buku yang dipinjam | Status |');
 writeln('+--------------------------------------------------------------------------+');

 {menampilkan semua data yang ada di transaksi data}
 for i:= 1 to (lastTransaksi-1) do
 begin
 gotoxy(1,baris); write('| ',i);
 gotoxy(6,baris); write('| ',p[i].nim:0:0);
 gotoxy(18,baris); write('| ',p[i].nama);

 {melakukan relasi untuk mencari nama buku}
 for n:= 1 to (lastBuku-1) do
 begin
 if p[i].kodeBuku = b[n].kodeBuku then
 begin
 gotoxy(31,baris);write('| ',b[n].judul);
 end;
 end;
 gotoxy(58,baris);write('| ',p[i].status);
 gotoxy(76,baris);writeln('|');
 baris := baris+1;
 end;
 writeln('+--------------------------------------------------------------------------+');
 writeln('| Pilih 0 untuk Batalkan Pengahapusan |');
 writeln('+--------------------------------------------------------------------------+');
 write(' Pilih No transaksi yang akan dihapus : ');readln(hapus);

 {jika tidak menekan nol}
 if hapus<>0 then
 begin

 {menumpuk data yang akan dihapus dengan data sebelumnya}
 for i:= hapus to (lastTransaksi-2) do
 begin
 p[i].nama:=p[i+1].nama;
 p[i].nim:=p[i+1].nim;
 p[i].kodeBuku:=p[i+1].kodeBuku;
 p[i].dP:=p[i+1].dP;
 p[i].mP:=p[i+1].mP;
 p[i].yP:=p[i+1].yP;
 p[i].dK:=p[i+1].dK;
 p[i].mK:=p[i+1].mK;
 p[i].yK:=p[i+1].yK;
 p[i].status:=p[i+1].status;
 end;

 lastTransaksi := lastTransaksi - 1;
 writeln();
 writeln(' Hapus Data Transaksi Berhasil!!');
 writeln();
 end;

 until hapus = 0;
end;

{untuk menambah daftar buku}
procedure tambahBuku();
var
 {variable local}
 tambah:integer;

begin
 writeln();
 writeln(' Tambah Buku');
 writeln();
 write(' Berapa Buku yang akan ditambah: ');readln(tambah);

 {melakukan perulangan sebanyak jumlah yang ditambahkan}
 for i:= 1 to tambah do
 begin
 writeln();
 writeln(' No. ',i);
 writeln(' Kode Buku : ',indexBuku);
 b[lastBuku].kodeBuku:=indexBuku;
 indexBuku:= indexBuku + 1;
 write(' Judul Buku : ');readln(b[lastBuku].judul);
 write(' Edisi : ');readln(b[lastBuku].edisi);
 write(' Tahun : ');readln(b[lastBuku].tahun);
 write(' Harga Sewa : ');readln(b[lastBuku].hargaSewa);
 write(' Stok : ');readln(b[lastBuku].stok);
 lastBuku := lastBuku+1;
 end;
 writeln();
 writeln(' Tambah Buku Berhasil!!');
 writeln();
 writeln('tekan enter untuk melanjutkan...');
end;

{melakukan pembaruan harga dan stok buku}
procedure updateBuku();
var
 {variable local}
 baris:integer;
 index:integer;

begin
 repeat
 baris:=5;
 clrscr;
 writeln(' Update Harga dan stok Buku ');
 writeln('+---------------------------------------------------+');
 writeln('| no. Buku | Judul Buku | harga sewa | stok |');
 writeln('+---------------------------------------------------+');

 {menampilkan semua daftar buku}
 for i:= 1 to (lastBuku-1) do
 begin
 gotoxy(1,baris);write('| ',i);
 gotoxy(12,baris);write('| ',b[i].judul);
 gotoxy(32,baris);write('| ',b[i].hargaSewa);
 gotoxy(45,baris);write('| ',b[i].stok);
 gotoxy(53,baris);writeln('|');
 baris := baris+1;
 end;

 writeln('+---------------------------------------------------+');
 writeln('| Pilih 0 untuk membatalkan |');
 writeln('+---------------------------------------------------+');
 write(' Masukkan no. Buku : ');readln(index);

 {jika tidak menekan nol}
 if index <> 0 then
 begin
 writeln(' Judul Buku : ',b[index].judul);
 writeln(' Harga Sewa Semula : ',b[index].hargaSewa);
 write(' Harga Sewa Baru : ');readln(b[index].hargaSewa);
 writeln(' Stok Semula : ',b[index].stok);
 write(' Stok Baru : ');readln(b[index].stok);
 writeln();
 writeln(' Update Berhasil!!');
 writeln();
 end else
 begin
 writeln();
 writeln(' Update Selesai!!');
 writeln();
 end;

 writeln('tekan enter untuk melanjutkan...');
 until index=0;
end;

procedure hapusBuku();
var
 {variable local}
 baris:integer;
 hapus:integer;

begin
 repeat
 baris:=5;
 clrscr;
 writeln(' Hapus Buku ');
 writeln('+-------------------------------------+');
 writeln('| No. | Kode Buku | Judul Buku |');
 writeln('+-------------------------------------+');

 {menampilkan semua daftar buku}
 for i:= 1 to (lastBuku-1) do
 begin
 gotoxy(1,baris);write('| ',i);
 gotoxy(7,baris);write('| ',b[i].kodeBuku);
 gotoxy(19,baris);write('| ',b[i].judul);
 gotoxy(39,baris);writeln('|');
 baris := baris+1;
 end;

 writeln('+-------------------------------------+');
 writeln('| Tekan 0 untuk membatalkan |');
 writeln('+-------------------------------------+');
 write(' No. Buku yang akan dihapus : ');readln(hapus);

 {jika tidak menekan nol}
 if hapus <> 0 then
 begin
 {menimpa daftar lama dengan daftar baru}
 for i:= hapus to (lastBuku-2) do
 begin
 b[i].kodeBuku := b[i+1].kodeBuku ;
 b[i].judul:= b[i+1].judul;
 b[i].edisi := b[i+1].edisi;
 b[i].tahun:= b[i+1].tahun;
 b[i].hargaSewa := b[i+1].hargaSewa;
 b[i].stok := b[i+1].stok;
 end;
 lastBuku := lastBuku-1;
 writeln();
 writeln(' Hapus Berhasil!!');
 writeln();
 end else
 begin
 writeln();
 writeln(' Hapus Selesai!!');
 writeln();
 end;
 writeln('tekan enter untuk melanjutkan...');
 until hapus=0;
end;

{menampilkan semua daftar koleksi buku}
procedure lihatBuku();
var
 baris:integer=5;
begin
 clrscr;
 writeln(' Daftar Buku');
 writeln('+---------------------------------------------------------------+');
 writeln('| Kode Buku | Judul Buku | Edisi | Tahun | harga sewa | stok |');
 writeln('+---------------------------------------------------------------+');
 for i:= 1 to (lastBuku-1) do
 begin
 gotoxy(1,baris);write('| ',b[i].kodeBuku);
 gotoxy(13,baris);write('| ',b[i].judul);
 gotoxy(27,baris);write('| ',b[i].edisi);
 gotoxy(37,baris);write('| ',b[i].tahun);
 gotoxy(45,baris);writeln('| ',b[i].hargaSewa);
 gotoxy(58,baris);writeln('| ',b[i].stok);
 gotoxy(65,baris);writeln('|');
 baris := baris+1;
 end;
 writeln('+---------------------------------------------------------------+');
 writeln('tekan enter untuk melanjutkan...');
end;

{edit buku}
procedure editBuku();
var
 pilih3:integer;

begin
 repeat
 clrscr;
 writeln('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~');
 writeln(' Edit Daftar Buku ');
 writeln('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~');
 writeln(' 1. Tambah Koleksi Buku ');
 writeln(' 2. update harga dan stok Buku ');
 writeln(' 3. Hapus Buku');
 writeln(' 4. Lihat daftar Buku ');
 writeln(' 5. Kembali Ke Memu Utama ');
 writeln('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~');
 write('Pilih [1-5]: ');readln(pilih3);
 case pilih3 of
 1:
 begin
 tambahBuku();
 readln;
 end;
 2:
 begin
 updateBuku();
 readln;
 end;
 3:
 begin
 hapusBuku();
 readln;
 end;
 4:
 begin
 lihatBuku();
 readln;
 end;
 5:
 end;
 until pilih3 = 5;
end;

{keluar}
procedure keluar();
begin
 writeln('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~');
 writeln(' Sekian dan trimakasih');
 writeln('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~');
 writeln(' Aplikasi ini disusun oleh :');
 writeln(' 1. Ariska Hidayat (10030092)');
 writeln(' 2. Muttaqin (10030021)');
 writeln(' 3. Suryan Dwi Saputro(10030004)');
 writeln('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~');
end;

{ ke menu utama aplikasi}
procedure menu();
begin
 writeln();
 writeln('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~');
 writeln(' Persewaan Buku Komik Terlengkap');
 writeln('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~');
 writeln(' 1. Transaksi peminjaman ');
 writeln(' 2. Tampilkan Data ');
 writeln(' 3. Pengembalian Buku ');
 writeln(' 4. Hapus data Peminjam ');
 writeln(' 5. Edit koleksi komik');
 writeln(' 6. Keluar ');
 writeln('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~');
 write(' Pilih[1-6]: '); readln(pilih);
 writeln();
 case pilih of
 1:
 inputTransaksi();
 2:
 tampilkanData();
 3:
 pengembalianBuku();
 4:
 hapusData();
 5:
 editBuku();
 6:
 keluar();
 end;
end;

{main}
begin
 daftarKomik();
 daftarPelanggan();
 repeat
 clrscr;
 menu();
 writeln('tekan enter untuk melanjutkan...');
 readln;
 until pilih = 6; {berhenti jika pilih bernilai 6}
end.

Download  :

sebelum meninggalkan blog. temen2 bisa download project diatas sebagai oleh-oleh dari kami. ^_^

dan jangan lupa isi komen dibawah ini. trimakasih.

download disini

|

|

|

password : ariska138.wordpress.com

Advertisements

Comments on: "Contoh Pascal : Penyewaan Komik 7" (15)

  1. taqin21 said:

    keren brooooo

  2. susiyanto said:

    Cukup bagus saya kira … bisa juga dimodifikasi untuk mendata koleksi buku-buku diperpustakaan …
    Kalau dikombinasikan dengan fungsi deteksi barcode scanner bisa ndak ya?

    • makasih mas. tu juga masih newbie. klo untuk deteksi barkode di pascal saya kurang begitu tau mas. tp klo di java insya’allah bisa mas. ^_^

  3. bandiet said:

    mantap mas bro

  4. bagus

  5. Badmember said:

    kenapa yah kok fatal syntax error, ; expected but = found ?

    lastBuku:integer=11;
    lastTransaksi:integer=8;
    indexBuku:integer=320;

    link donlodnya dmn yah.. kok ngga ada .. ngga bisa dklik .. ^_^

  6. Arip17 said:

    Nuhun ya, keren post nya (y)

  7. boden said:

    error 85 “;” expected

    lastBuku:integer=11;
    lastTransaksi:integer=8;
    indexBuku:integer=320;

    tolong gan ini kenapa ya??

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: