Vous êtes sur la page 1sur 14

III.

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)’)

Algoritma procedure tutup:

Procedure tutup
{prosedur untuk menampilkan penutup program}
{k. Awal : Penutup telah dibuat}
{k.akhir : Penutup ditampilkan}
Deklarasi
{tidak ada}
Algoritma
Write(‘Thank you’)

Algoritma procedure petunjuk:

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’)

Algoritma procedure tambah:

procedure tambah (input y:char, input x:string, output pertama,akhir:ptrsimpul)


{Prosedur untuk menambahkan data pada pointer}
{k.awal : y dan x terdefinisi}
{k. Akhir : pertama dan akhir terdefinisi}
Deklarasi
{tidak ada}
Algoritma
new(baru);
baru^.nama x
baru^.JL y
baru^.next pertama
pertama baru
if pertama=nil then
akhir pertama
endif

Algoritma procedure delete:

Procedure delete(input pertama:ptrsimpul, output akhir:ptrsimpul)


{prosedur untuk menghapus pointer yang pertama kali diinputkan}
{k. Awal : pertama terdefinisi}
{k. Akhir : pertama terhapus}
Deklarasi
{tidak ada}
Algoritma
while pertama^.next ≠ akhir do
pertama pertama^.next
endwhile
akhir pertama

Algoritma procedure tulis:

Procedure tulis(input pertama,kedua,ptrdata:ptrsimpul, output akhir,akhir1,data:ptrsimpul)


{prosedur untuk menampilkan data pada pointer}
{k. Awal : pertama, kedua, dan ptrdata terdefinisi}
{k. Akhir : pertama, kedua, dan ptrdata ditampilkan}
Deklarasi
{tidak ada}
Algoritma
if (pertama=akhir) and (kedua=akhir1) and (ptrdata=data) then
write('Antrian Kosong')
else
maks n1
if n2>maks then
maks n2
if n3>maks then
maks n3
endif
c 0
c maks-n1
Writeln(‘HBD TRAVEL AGENCY’)
while pertama ≠ akhir do
p 6+c
gotoxy(32,p) write('| ',pertama^.nama)
c c+1
pertama:=pertama^.next;
end;
c:=0;
c:=maks-n2;
while kedua<>akhir1 do
pertama pertama^.next
endwhile
c 0
c maks-n2
while kedua ≠ akhir1 do
begin
p 6+c
gotoxy(19,p) Write('| ',kedua^.nama)
c c+1
kedua kedua^.next
endwhile
C 0
c maks-n3
while ptrdata ≠ data do
p 6+c
gotoxy(47,p) write('| ',ptrdata^.nama)
c c+1
ptrdata ptrdata^.next
endwhile
gotoxy(19,p+2);write('|Luar Negeri | Dalam Negeri | Paket Hemat |')
endif

Algoritma procedure kosong:

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

Algoritma program travel:

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

label ulang, ulang1, ulang2, ulang3, ulang4, ulang5

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 tambah (input y:char, input x:string, output pertama,akhir:ptrsimpul)


{Prosedur untuk menambahkan data pada pointer}
{k.awal : y dan x terdefinisi}
{k. Akhir : pertama dan akhir terdefinisi}

Procedure delete(input pertama:ptrsimpul, output akhir:ptrsimpul)


{prosedur untuk menghapus pointer yang pertama kali diinputkan}
{k. Awal : pertama terdefinisi}
{k. Akhir : pertama terhapus}

Procedure tulis(input pertama,kedua,ptrdata:ptrsimpul, output akhir,akhir1,data :


ptrsimpul)
{prosedur untuk menampilkan data pada pointer}
{k. Awal : pertama, kedua, dan ptrdata terdefinisi}
{k. Akhir : pertama, kedua, dan ptrdata 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:

Algoritma procedure tutup:

Algoritma procedure petunjuk:

Algoritma procedure tambah:


Algoritma procedure delete:

Algoritma procedure tulis:


Algoritma procedure kosong:

Algoritma program travel:

Vous aimerez peut-être aussi