Académique Documents
Professionnel Documents
Culture Documents
Algoritma
Algoritma procedure open:
Procedure open
{prosedur untuk menampilkan pembuka atau cover program}
{k. Awal : Cover telah dibuat}
{k.akhir : Cover ditampilkan}
Deklarasi
{tidak ada}
Algoritma
Write(‘Program Mandiri’)
Write(‘Praktikum Program Komputer II’)
Write(‘Welcome’)
Write(‘Travel Agency’)
Write(‘Created by’)
Write(‘1. Husnul Khotimah (08111001003)’)
Write(‘2. Bunga Mira MDPH (08111001011)’)
Write(‘3. Dwi Mahrani (08111001001056)’)
Procedure tutup
{prosedur untuk menampilkan penutup program}
{k. Awal : Penutup telah dibuat}
{k.akhir : Penutup ditampilkan}
Deklarasi
{tidak ada}
Algoritma
Write(‘Thank you’)
Procedure petunjuk
{prosedur untuk menampilkan petunjuk pengisian data pada program}
{k. Awal : Petunjuk telah dibuat}
{k.akhir : Petunjuk ditampilkan}
Deklarasi
{tidak ada}
Algoritma
Write(‘Petunjuk Pengisian Data:’)
Write(‘1. Pada antrian utama, diminta mengisi nama dan jenis liburan’)
Write(‘2. Nama diisi dengan karakter a-z, atau A-Z, atau 0-9 bila perlu’)
Write(‘3. Jenis Liburan diisi dengan angka 1 atau 2’)
Write(‘a. Menu nomor 1 artinya pilihan jenis liburan di dalam negeri’)
Write(‘b. Menu nomor 2 artinya pilihan jenis liburan di luar negeri’)
Write(‘4. Paket hemat dapat dipilih ketika selesai mengantri di antrian utama’)
Procedure kosong
{prosedur untuk menampilkan pemberitahuan bahwa antrian sedang kosong}
{k.awal : pointer berisi nil}
{k.akhir : terdapat pemberitahuan bahwa antrian kosong}
Deklarasi
{tidak ada}
Algoritma
Writeln('Maaf, Antrian Sedang Kosong, Silakan Isi Antrian Terlebih Dahulu!')
Writeln('Tekan Sembarang Tombol Untuk Kembali ke Menu Utama!')
readkey
Program Travel
{Program antrian pada suatu travel agency, yang terdiri dari 3 antrian, yaitu antrian dalam
negeri, antrian luar negeri, dan antrian paket hemat}
Deklarasi
type ptrsimpul=^simpul
simpul=record
<nama:string[10]
JL:char
next:ptrsimpul
>
var
pertama, baru, akhir,kedua,akhir1,ptrdata,data : ptrsimpul
x : string[10]
c,p,n1,n2,n3,maks : integer
y,z,pil:char;
label ulang,ulang1,ulang2,ulang3,ulang4,ulang5;
y, z, pil : char
Procedure open
{prosedur untuk menampilkan pembuka atau cover program}
{k. Awal : Cover telah dibuat}
{k.akhir : Cover ditampilkan}
Procedure tutup
{prosedur untuk menampilkan penutup program}
{k. Awal : Penutup telah dibuat}
{k.akhir : Penutup ditampilkan}
Procedure petunjuk
{prosedur untuk menampilkan petunjuk pengisian data pada program}
{k. Awal : Petunjuk telah dibuat}
{k.akhir : Petunjuk ditampilkan}
Procedure kosong
{prosedur untuk menampilkan pemberitahuan bahwa antrian sedang kosong}
{k.awal : pointer berisi nil}
{k.akhir : terdapat pemberitahuan bahwa antrian kosong}
Algoritma
open
readkey
pertama nil
n1 0
n2 0
n3 0
petunjuk
repeat
ulang:
Writeln('Silakan Pilih Menu:')
Writeln('1. Tambah Antrian')
gotoxy(25,8);Writeln('2. Hapus Antrian');
gotoxy(25,9);Writeln('3. Tampilkan Antrian');
gotoxy(25,10);Writeln('4. Keluar');
gotoxy(25,11);Writeln('===============================');
Writeln('2. Hapus Antrian')
Writeln('3. Tampilkan Antrian')
Writeln('4. Keluar')
Write('Masukkan pilihan Anda:')
pil readkey
case pil of
'1': begin
ulang1:
Write('Nama Pengunjung: ') readln(x)
if (x='') or (x=' ') then
writeln(' Maaf, silakan isi nama terlebih dahulu!')
readkey
goto ulang1
else
begin
ulang2:
Write('Jenis Liburan : ')
y readkey
write(y)
if (y ≠ '1') and (y ≠ '2') then
Writeln(' Maaf, Silakan pilih menu 1 atau 2 saja!')
goto ulang2
else
if y='1' then
tambah(y,x,pertama,akhir)
n1 n1+1
else
if y='2' then
tambah(y,x,kedua,akhir1)
n2 n2+1
endif
endif
Writeln('Tekan Sembarang Tombol Untuk Kembali ke Menu Utama!')
readkey
goto ulang
'2': if (pertama=akhir) and (kedua=akhir1) then
kosong
goto ulang
else
Ulang5:
Write('| 1. Hapus Antrian Dalam Negeri |')
Write('| 2. Hapus Antrian Luar Negeri |')
Write('Masukkan pilihan: ')
pil readkey
case pil of
'1': if pertama=akhir then
kosong
goto ulang
else
tulis(pertama,kedua,ptrdata,akhir,akhir1,data)
delete(pertama,akhir);
n1 n1-1
ulang3:
gotoxy(16,20);Writeln(akhir^.nama,' telah selesai mengantri.');
gotoxy(16,21);Write('Apakah ',akhir^.nama,' ingin mengambil paket
hemat?(Y/N): ');z:=readkey;
'2': if (pertama=akhir) and (kedua=akhir1) then
kosong
goto ulang
else
Ulang5:
Write('| 1. Hapus Antrian Dalam Negeri |')
Write('| 2. Hapus Antrian Luar Negeri |')
Write(‘| 3. Hapus Antrian Paket Hemat|’)
Write('Masukkan pilihan: ')
pil readkey
case pil of
'1': if pertama=akhir then
kosong
goto ulang
else
tulis(pertama,kedua,ptrdata,akhir,akhir1,data)
delete(pertama,akhir);
n1 n1-1
ulang3:
Writeln(akhir^.nama,' telah selesai mengantri.')
Write('Apakah ',akhir^.nama,' ingin mengambil paket
hemat?(Y/N): ')
z readkey
if (z='y') or (z='Y') then
y '3'
x akhir^.nama
tambah(y,x,ptrdata,data)
n3 n3+1
tulis(pertama,kedua,ptrdata,akhir,akhir1,data)
else
if (z='n') or (z='N') then
tulis(pertama,kedua,ptrdata,akhir,akhir1,data)
else
if (z≠'n') and (z≠'N') and (z≠'y') and (z≠'Y') then
Writeln('Maaf, Pilihan Anda Salah, Silakan Ulangi!')
readkey
goto ulang3
endif
endif
'2': if kedua=akhir1 then
kosong
goto ulang
else
tulis(pertama,kedua,ptrdata,akhir,akhir1,data)
delete(kedua,akhir1);
n2 n2-1
ulang4:
Writeln(akhir1^.nama,' telah selesai mengantri.')
Write('Apakah ',akhir1^.nama,' ingin mengambil paket
hemat?(Y/N): ')
z readkey
if (z='y') or (z='Y') then
y '3'
x:=akhir^.nama;
tambah(y,x,ptrdata,data);
n3:=n3+1;
y '3'
x akhir^.nama
tambah(y,x,ptrdata,data)
n3 n3+1
tulis(pertama,kedua,ptrdata,akhir,akhir1,data)
else
if (z='n') or (z='N') then
tulis(pertama,kedua,ptrdata,akhir,akhir1,data)
else
if (z≠'n') and (z≠'N') and (z≠'y') and (z≠'Y') then
Writeln('Maaf, Pilihan Anda Salah, Silakan Ulangi!')
readkey
goto ulang4
endif
endif
'3': if ptrdata=data then
kosong
goto ulang
else
tulis(pertama,kedua,ptrdata,akhir,akhir1,data)
delete(ptrdata,data)
n3:=n3-1
Writeln(data^.nama,' telah selesai mengantri.')
readkey
tulis(pertama,kedua,ptrdata,akhir,akhir1,data)
endif
else
Writeln('Maaf, pilihan salah!')
Writeln('Silakan pilih berdasarkan menu yang telah tersedia.')
Readkey
goto ulang5
endcase
Writeln('Tekan Sembarang Tombol Untuk Kembali ke Menu Utama!')
readkey
goto ulang
endif
'3': tulis(pertama,kedua,ptrdata,akhir,akhir1,data)
Writeln('Tekan Sembarang Tombol Untuk Kembali ke Menu Utama!')
readkey
goto ulang
'4': tutup
else
Writeln('Maaf, pilihan salah!')
Writeln('Silakan pilih berdasarkan menu yang telah tersedia.')
readkey
goto ulang
endcase
until (pil='4')
III. Algoritma
Algoritma procedure open: