1. ALGORITMA PASIEN RAWAT INAP
Procedurepilih(Output pil : Integer)
{I.S. : User memasukkan menu pilihan}
{F.S.: menampilkan hasil dari menu pilihan}
Kamus:
Algoritma:
output('Menu Rawat Inap')
output('===============')
output('1. Isi Data')
output('2. Cari Data Berdasarkan Kode')
output('3. Cari Data Berdasarkan Nama')
output('4. Cari Data Berdasarkan Harga')
output('5. Tampilkan Data Keseluruhan Yang Sudah Terurut')
output('6. Help')
output('0. Keluar')
Input(pil)
EndProcedure
Functionhargakamar(Input kamar : String) ->Integer
{I.S. : }
{F.S. : }
Kamus:
Algoritma:
IF(kamar='vip1')
Then
hargakamar ← 5000000
Else
IF(kamar='vip2')
Then
hargakamar←4000000
Else
IF(kamar='vip3')
Then
hargakamar←3000000
Else
IF(kamar='vip4')
Then
hargakamar←2000000
ElseIF(kamar='vip5')
Then
hargakamar← 1500000
ElseIF(kamar='reguler1')
Then
hargakamar←1400000
ElseIF(kamar='reguler2')
Then
hargakamar← 1300000
ElseIF(kamar='reguler3')
Then
hargakamar← 1200000
ElseIF(kamar='reguler4')
Then
hargakamar←1100000
ElseIF(kamar='reguler5')
2. Then
hargakamar← 1050000
ElseIF(kamar='ekonomi1')
Then
hargakamar← 900000
ElseIF(kamar='ekonomi2')
Then
hargakamar← 600000
ElseIF(kamar='ekonomi3')
Then
hargakamar←3000000
ElseIF(kamar='ekonomi4')
Then
hargakamar← 2000000
ElseIF(kamar='ekonomi5')
Then
hargakamar←1000000
EndIF
EndIF
EndIF
EndIF
EndIF
EndIF
EndIF
EndIF
EndIF
EndIF
EndIF
EndIF
EndIF
EndIF
EndIF
endFunction
Procedure isi_data(Output data_array : data_inap,Output n :Integer)
{I.S. : }
{F.S. : }
Kamus:
i :Integer
Functionhargakamar(Input kamar : String) ->Integer
Algoritma:
i← 1
Input(data_array[i].id_pasien)
While(data_array[i].id_pasien ≠ ‘stop’) Do
Input(data_array[i].nama, data_array[i].kamar,
data_array[i].kebutuhan1, data_array[i].kebutuhan2)
data_array[i].harga_kamar ← hargakamar(data_array[i].kamar)
data_array[i].harga_kebutuhan ← (data_array[i].kebutuhan1*600000) +
(data_array[i].kebutuhan2*100000)
data_array[i].harga_total ← data_array[i].harga_kebutuhan +
data_array[i].harga_kamar
Output(data_array[i].harga_kamar, data_array[i].harga_kebutuhan,
data_array[i].harga_total)
i←i+1
n← i
EndWhile
6. Procedure binary_search_id(Inputdata_array : data_inap,Input n : Integer)
{I.S. : }
{F.S. : }
Kamus:
i,k : Integer
data_cari :String
ketemu :Boolean
Algoritma:
Input(data_cari)
ketemu← false
i← 1
While((not ketemu) and (i <= n)) Do
k←(i+n) div 2
IF(data_array[k].id_pasien=data_cari)
Then
ketemu←true
Else
IF(data_array[k].id_pasien < data_cari)
Then
i← k+1
Else
n←k-1
EndIF
EndIF
EndWhile
IF(ketemu)
Then
Output(data_array[k].id_pasien, data_array[k].nama,
data_array[k].kamar, data_array[k].harga_kamar,
data_array[k].kebutuhan1, data_array[k].kebutuhan2,
data_array[k].harga_kebutuhan, data_array[k].harga_total)
Else
Output('id pasien ',data_cari,' Tidak Ditemukan!!!')
EndIF
EndProcedure
Procedure binary_search_nama(Input data_array : data_inap,Input n : Integer)
{I.S. : }
{F.S. : }
Kamus:
v,w,i,ia,ib,k : Integer
data_cari :String
ketemu :Boolean
Algoritma:
Input(data_cari)
ia← 1
ib← n
ketemu← false
While((not ketemu) and (ia <= ib)) Do
k←(ia+ib) div 2
IF(data_array[k].nama=data_cari)
7. Then
ketemu←true
Else
IF(data_array[k].nama < data_cari)
Then
ia← k+1
Else
ib←k-1
EndIF
EndIF
EndWhile
IF(ketemu)
Then
i←1
v←k
w←k+1
While (data_cari = data_array[v].nama) Do
Output(data_array[v].id_pasien,
data_array[v].nama,data_array[v].kamar,
data_array[v].harga_kamar,data_array[v].kebutuhan1,
data_array[v].kebutuhan2, data_array[v].harga_kebutuhan,
data_array[v].harga_total)
i←i+1
v←v-1
EndWhile
While (data_cari =data_array[w].nama) Do
Output(data_array[w].id_pasien, data_array[w].nama,
data_array[w].kamar, data_array[w].harga_kamar,
data_array[w].kebutuhan1, data_array[w].kebutuhan2,
data_array[w].harga_kebutuhan, data_array[w].harga_total)
i←i+1
w←w+1
EndWhile
Else
Output('nama pasien ',data_cari,' Tidak Ditemukan!!!')
EndIF
endProcedure
Procedure binary_search_total_bayar(data_array : data_inap, n : Integer)
{I.S. : }
{F.S. : }
Kamus:
v,w,data_cari,i,ia,ib,k : Integer
ketemu :Boolean
Algoritma:
Input(data_cari)
ia← 1
ib← n
ketemu← false
While((not ketemu) and (ia <= ib)) Do
k←(ia+ib) div 2
IF(data_array[k].harga_total=data_cari)
Then
ketemu← true
8. Else
IF(data_array[k].harga_total < data_cari)
Then
ia← k+1
Else
ib←k-1
EndIF
EndIF
EndWhile
IF (ketemu)
Then
i←1
v←k
w←k+1
While (data_cari = data_array[v].harga_total) Do
Output(data_array[v].id_pasien,
data_array[v].nama,data_array[v].kamar,
data_array[v].harga_kamar,data_array[v].kebutuhan1,
data_array[v].kebutuhan2, data_array[v].harga_kebutuhan,
data_array[v].harga_total)
i←i+1
v←v-1
EndWhile
While (data_cari =data_array[w].harga_total) Do
Output(data_array[w].id_pasien, data_array[w].nama,
data_array[w].kamar, data_array[w].harga_kamar,
data_array[w].kebutuhan1, data_array[w].kebutuhan2,
data_array[w].harga_kebutuhan, data_array[w].harga_total)
i←i+1
w←w+1
EndWhile
Else
Output('total bayar ',data_cari,' Tidak Ditemukan!!!')
EndIF
EndProcedure
Procedurehelp()
{I.S. : }
{F.S. : }
Kamus:
Algoritma:
Output('Panduan Cara Menggunakan Program Rawat Inap')
Output('1. cara mengisi kolom ID')
Output('Pada kolom ID, ID yang boleh digunakan adalah dari 0001-1000')
Output('2. cara mengisi kolom Nama')
Output('Untuk kolom nama, ketikan nama pasien yang rawat inap')
Output('3. cara mengisi kolom kamar')
Output('Kolom kamar diisi dengan vip1-vip5,regular1-regular5,ekonomi1-
ekomoni5')
Output('harga kamar akan ditentukan dari jenis kamar yang dimasukkan')
Output('4. cara mengisi kolom infus dan oksigen ')
Output(' Kolom infus dan oksigen diisi dengan berapa banyak infus dan
oksigen yang digunakan oleh pasien')
EndProcedure
9. {AlgoritmaUtama }
rawat_inap
{I.S. : }
{F.S. : }
Kamus:
const
maks = 20
type
data = record
harga_kamar,kebutuhan1,kebutuhan2: Integer
harga_kebutuhan,harga_total : Integer
id_pasien,nama,kamar : String
endRecord
data_inap =array[1..maks] of data
data_array : data_inap
Procedurepilih(Output pil : Integer)
Procedure isi_data(Output data_array : data_inap,Output n :Integer)
Procedure urut_id(Input n:Integer, Output data_array : data_inap)
Procedure urut_nama(Input n:Integer,Output data_array : data_inap)
Procedure urut_harga(Input n:Integer,Output data_array : data_inap)
Proceduretampil(Input data_array : data_inap,Input n : Integer)
Procedure binary_search_id(Inputdata_array : data_inap,Input n : Integer)
Procedure binary_search_nama(Input data_array : data_inap,Input n : Integer)
Procedure binary_search_total_bayar(data_array : data_inap, n : Integer)
Procedure help;
pil,n : Integer
Algoritma:
Repeat
pilih(pil)
case pil of
1 : isi_Data(data_array,n)
2 : urut_id(n,data_array)
binary_search_id(data_array,n)
3 :urut_nama(n,data_array)
binary_search_nama(data_array,n)
4 : urut_harga(n,data_array)
binary_search_total_bayar(data_array,n)
5 : urut_id(n,data_array)
tampil(data_array,n)
6 :Help;
0 :Output('Anda akan keluar program , tekan enter ! ')
endCase
Until(pil=0)
end.
10. PROGRAM PASCAL PASIEN RAWAT INAP
program pasien_rawat_inap;
{I.S. : }
{F.S. : }
uses crt;
const
maks = 20;
type
data = record
harga_kamar,kebutuhan1,kebutuhan2,harga_kebutuhan,harga_total :
integer;
id_pasien,nama,kamar : string;
end;
data_inap =array[1..maks] of data;
var
data_array : data_inap;
pil,n : integer;
procedure pilih( var pil : integer);
begin
gotoxy(33,2);write('Menu Rawat Inap');
gotoxy(33,3);write('===============');
gotoxy(22,5);write('1. Isi Data');
gotoxy(22,6);write('2. Cari Data Berdasarkan Kode');
gotoxy(22,7);write('3. Cari Data Berdasarkan Nama');
gotoxy(22,8);write('4. Cari Data Berdasarkan Harga');
gotoxy(22,9);write('5. Tampilkan Data Keseluruhan Yang Sudah Terurut');
gotoxy(22,10);write('6. Help');
gotoxy(22,11);write('0. Keluar');
gotoxy(22,14);write('Masukkan menu pilihan : '); readln(pil);
end;
function hargakamar(kamar:string):integer;
{I.S. : }
{F.S. : }
begin
if(kamar='vip1')
then
hargakamar := 5000000
else
if(kamar='vip2')
then
hargakamar := 4000000
else
if(kamar='vip3')
then
hargakamar := 3000000
else
if(kamar='vip4')
then
hargakamar := 2000000
else if(kamar='vip5')
then
hargakamar := 1500000
else if(kamar='reguler1')
11. then
hargakamar := 1400000
else if(kamar='reguler2')
then
hargakamar := 1300000
else if(kamar='reguler3')
then
hargakamar := 1200000
else if(kamar='reguler4')
then
hargakamar := 1100000
else if(kamar='reguler5')
then
hargakamar := 1050000
else if(kamar='ekonomi1')
then
hargakamar := 900000
else if(kamar='ekonomi2')
then
hargakamar := 600000
else if(kamar='ekonomi3')
then
hargakamar := 3000000
else if(kamar='ekonomi4')
then
hargakamar := 2000000
else if(kamar='ekonomi5')
then
hargakamar := 1000000;
end;
procedure isi_data(var data_array : data_inap; var n :integer);
var
i : integer;
begin
clrscr;
gotoxy(25,1);write('Masukkan Data Pasien Rawat Inap');
gotoxy(25,2);write('-------------------------------');
i := 1;
gotoxy(1,4);write('---------------Masukkan : "stop" jika data berakhir di ID Pasien----------------');
gotoxy(1,5);write('-----------------Kamar : vip 1-5 ,reguler 1-5, dan ekonomi 1-5------------------');
gotoxy(1,6);write('================================================================================');
gotoxy(1,7);write('| ID | Nama | Kamar | Harga | Infus | Oksigen | Tambahan | Total |');
gotoxy(1,8);write('--------------------------------------------------------------------------------');
gotoxy(1,8+i);write('| | | | | | | | |');
gotoxy(2,8+i);readln(data_array[i].id_pasien);
while(data_array[i].id_pasien <> 'stop') do
begin
gotoxy(9,8+i);readln(data_array[i].nama);
gotoxy(19,8+i);readln(data_array[i].kamar);
while((data_array[i].kamar<>'vip1')and
(data_array[i].kamar<>'vip2') and
(data_array[i].kamar<>'vip3') and
(data_array[i].kamar<>'vip4') and
(data_array[i].kamar<>'vip5') and
(data_array[i].kamar<>'reguler1') and
(data_array[i].kamar<>'reguler2') and
(data_array[i].kamar<>'reguler3') and
12. (data_array[i].kamar<>'reguler4') and
(data_array[i].kamar<>'reguler5') and
(data_array[i].kamar<>'ekonomi1') and
(data_array[i].kamar<>'ekonomi2') and
(data_array[i].kamar<>'ekonomi3') and
(data_array[i].kamar<>'ekonomi4') and
(data_array[i].kamar<>'ekonomi5')) do
begin
gotoxy(22,i+9);
write('Kamar hanya ada vip 1-5,reguler 1-5,ekonomi 1-5 , Ulangi !');
gotoxy(22,i+10);
write('Tekan Enter untuk melanjutkan');
readln;gotoxy(22,i+9);clreol;gotoxy(22,i+10);clreol;
{memasukkan kembali array kode buku}
gotoxy(19,8+i);clreol;
gotoxy(17,8+i);write('| | | | | | |');
gotoxy(19,8+i);readln(data_array[i].kamar);
end;
data_array[i].harga_kamar := hargakamar(data_array[i].kamar);
gotoxy(29,8+i);writeln(data_array[i].harga_kamar);
gotoxy(39,8+i);readln(data_array[i].kebutuhan1);
gotoxy(47,8+i);readln(data_array[i].kebutuhan2);
data_array[i].harga_kebutuhan := (data_array[i].kebutuhan1*600000) +
(data_array[i].kebutuhan2*100000);
gotoxy(58,8+i);writeln(data_array[i].harga_kebutuhan);
data_array[i].harga_total := data_array[i].harga_kebutuhan +
data_array[i].harga_kamar;
gotoxy(71,8+i);writeln(data_array[i].harga_total);
i:=i+1;
n := i;
gotoxy(1,8+i);write('| | | | | | | | |');
gotoxy(2,8+i);readln(data_array[i].id_pasien);
end;
gotoxy(1,8+i);write('--------------------------------------------------------------------------------');
end;
{procedure pengurutan}
procedure urut_id(n:integer;var data_array : data_inap);
var
temp2,i,k : integer;
temp: string;
begin
for i := 1 to n-1 do
begin
for k := n downto (i+1) do
begin
if(data_array[k].id_pasien) < (data_array[k-1].id_pasien) then
begin
temp := data_array[k].id_pasien;
data_array[k].id_pasien := data_array[k-1].id_pasien;
data_array[k-1].id_pasien := temp;
temp := data_array[k].nama;
data_array[k].nama := data_array[k-1].nama;
data_array[k-1].nama := temp;
13. temp := data_array[k].kamar;
data_array[k].kamar := data_array[k-1].kamar;
data_array[k-1].kamar := temp;
temp2 := data_array[k].harga_kamar;
data_array[k].harga_kamar := data_array[k-1].harga_kamar;
data_array[k-1].harga_kamar := temp2;
temp2 := data_array[k].kebutuhan1;
data_array[k].kebutuhan1 := data_array[k-1].kebutuhan1;
data_array[k-1].kebutuhan1 := temp2;
temp2 := data_array[k].kebutuhan2;
data_array[k].kebutuhan2 := data_array[k-1].kebutuhan2;
data_array[k-1].kebutuhan2 := temp2;
temp2 := data_array[k].harga_kebutuhan;
data_array[k].harga_kebutuhan := data_array[k-
1].harga_kebutuhan;
data_array[k-1].harga_kebutuhan := temp2;
temp2 := data_array[k].harga_total;
data_array[k].harga_total := data_array[k-1].harga_total;
data_array[k-1].harga_total := temp2;
end;
end;
end;
end;
procedure urut_nama(n:integer;var data_array : data_inap);
var
temp2,i,k : integer;
temp: string;
begin
for i := 1 to n-1 do
begin
for k := n downto (i+1) do
begin
if(data_array[k].nama) < (data_array[k-1].nama) then
begin
temp := data_array[k].id_pasien;
data_array[k].id_pasien := data_array[k-1].id_pasien;
data_array[k-1].id_pasien := temp;
temp := data_array[k].nama;
data_array[k].nama := data_array[k-1].nama;
data_array[k-1].nama := temp;
temp := data_array[k].kamar;
data_array[k].kamar := data_array[k-1].kamar;
data_array[k-1].kamar := temp;
14. temp2 := data_array[k].harga_kamar;
data_array[k].harga_kamar := data_array[k-1].harga_kamar;
data_array[k-1].harga_kamar := temp2;
temp2 := data_array[k].kebutuhan1;
data_array[k].kebutuhan1 := data_array[k-1].kebutuhan1;
data_array[k-1].kebutuhan1 := temp2;
temp2 := data_array[k].kebutuhan2;
data_array[k].kebutuhan2 := data_array[k-1].kebutuhan2;
data_array[k-1].kebutuhan2 := temp2;
temp2 := data_array[k].harga_kebutuhan;
data_array[k].harga_kebutuhan := data_array[k-
1].harga_kebutuhan;
data_array[k-1].harga_kebutuhan := temp2;
temp2 := data_array[k].harga_total;
data_array[k].harga_total := data_array[k-1].harga_total;
data_array[k-1].harga_total := temp2;
end;
end;
end;
end;
procedure urut_harga(n:integer;var data_array : data_inap);
var
temp2,i,k : integer;
temp: string;
begin
for i := 1 to n-1 do
begin
for k := n downto (i+1) do
begin
if(data_array[k].harga_total) < (data_array[k-1].harga_total) then
begin
temp := data_array[k].id_pasien;
data_array[k].id_pasien := data_array[k-1].id_pasien;
data_array[k-1].id_pasien := temp;
temp := data_array[k].nama;
data_array[k].nama := data_array[k-1].nama;
data_array[k-1].nama := temp;
temp := data_array[k].kamar;
data_array[k].kamar := data_array[k-1].kamar;
data_array[k-1].kamar := temp;
temp2 := data_array[k].harga_kamar;
data_array[k].harga_kamar := data_array[k-1].harga_kamar;
data_array[k-1].harga_kamar := temp2;
temp2 := data_array[k].kebutuhan1;
data_array[k].kebutuhan1 := data_array[k-1].kebutuhan1;
15. data_array[k-1].kebutuhan1 := temp2;
temp2 := data_array[k].kebutuhan2;
data_array[k].kebutuhan2 := data_array[k-1].kebutuhan2;
data_array[k-1].kebutuhan2 := temp2;
temp2 := data_array[k].harga_kebutuhan;
data_array[k].harga_kebutuhan := data_array[k-
1].harga_kebutuhan;
data_array[k-1].harga_kebutuhan := temp2;
temp2 := data_array[k].harga_total;
data_array[k].harga_total := data_array[k-1].harga_total;
data_array[k-1].harga_total := temp2;
end;
end;
end;
end;
procedure tampil(data_array : data_inap; n : integer);
var
i : integer;
begin
gotoxy(28,2);write('data hasil pengurutan data');
gotoxy(28,3);write('--------------------------');
gotoxy(1,6);write('================================================================================');
gotoxy(1,7);write('| ID | Nama | Kamar | Harga | Infus | Oksigen | Tambahan | Total |');
gotoxy(1,8);write('--------------------------------------------------------------------------------');
for i:=1 to n do
begin
gotoxy(1,8+i);write('| | | | | | | | |');
gotoxy(2,8+i);writeln(data_array[i].id_pasien);
gotoxy(9,8+i);writeln(data_array[i].nama);
gotoxy(19,8+i);writeln(data_array[i].kamar);
gotoxy(29,8+i);writeln(data_array[i].harga_kamar);
gotoxy(39,8+i);writeln(data_array[i].kebutuhan1);
gotoxy(47,8+i);writeln(data_array[i].kebutuhan2);
gotoxy(58,8+i);writeln(data_array[i].harga_kebutuhan);
gotoxy(71,8+i);writeln(data_array[i].harga_total);
end;
gotoxy(1,8+i);write('--------------------------------------------------------------------------------');
end;
procedure binary_search_id(data_array : data_inap; n : integer);
var
i,k : integer;
data_cari : string ;
ketemu :boolean;
begin
write('Masukkan id pasien : ');readln(data_cari);
ketemu := false;
i := 1;
while((not ketemu) and (i <= n)) do
16. begin
k:=(i+n) div 2 ;
if(data_array[k].id_pasien=data_cari)
then
ketemu:=true
else
if(data_array[k].id_pasien < data_cari)
then
i:= k+1
else
n:=k-1;
end;
if(ketemu)
then
begin
gotoxy(1,6);write('================================================================================');
gotoxy(1,7);write('| ID | Nama | Kamar | Harga | Infus | Oksigen | Tambahan | Total |');
gotoxy(1,8);write('--------------------------------------------------------------------------------');
gotoxy(1,9);write('| | | | | | | | |');
gotoxy(2,9);writeln(data_array[k].id_pasien);
gotoxy(9,9);writeln(data_array[k].nama);
gotoxy(19,9);writeln(data_array[k].kamar);
gotoxy(29,9);writeln(data_array[k].harga_kamar);
gotoxy(39,9);writeln(data_array[k].kebutuhan1);
gotoxy(47,9);writeln(data_array[k].kebutuhan2);
gotoxy(58,9);writeln(data_array[k].harga_kebutuhan);
gotoxy(71,9);writeln(data_array[k].harga_total);
gotoxy(1,10);write('--------------------------------------------------------------------------------');
end
else
writeln('id pasien ',data_cari,' Tidak Ditemukan!!!');
end;
procedure binary_search_nama(data_array : data_inap; n : integer);
var
v,w,i,ia,ib,k : integer;
data_cari : string ;
ketemu :boolean;
begin
write('Masukkan Nama Pasien : ');readln(data_cari);
ia := 1;
ib := n;
ketemu := false;
while((not ketemu) and (ia <= ib)) do
begin
k:=(ia+ib) div 2 ;
if(data_array[k].nama=data_cari)
then
begin
ketemu:=true;
end
else
if(data_array[k].nama < data_cari)
then
ia:= k+1
17. else
ib:=k-1;
end;
if(ketemu)
then
begin
i:=1;
v:=k;
w:=k+1;
while (data_cari = data_array[v].nama) do
begin
gotoxy(1,6);write('================================================================================');
gotoxy(1,7);write('| ID | Nama | Kamar | Harga | Infus | Oksigen | Tambahan | Total |');
gotoxy(1,8);write('--------------------------------------------------------------------------------');
gotoxy(1,8+i);write('| | | | | | | | |');
gotoxy(2,8+i);writeln(data_array[v].id_pasien);
gotoxy(9,8+i);writeln(data_array[v].nama);
gotoxy(19,8+i);writeln(data_array[v].kamar);
gotoxy(29,8+i);writeln(data_array[v].harga_kamar);
gotoxy(39,8+i);writeln(data_array[v].kebutuhan1);
gotoxy(47,8+i);writeln(data_array[v].kebutuhan2);
gotoxy(58,8+i);writeln(data_array[v].harga_kebutuhan);
gotoxy(71,8+i);writeln(data_array[v].harga_total);
i:=i+1;
v:=v-1;
gotoxy(1,8+i);write('--------------------------------------------------------------------------------');
end;
while (data_cari =data_array[w].nama) do
begin
gotoxy(1,6);write('================================================================================');
gotoxy(1,7);write('| ID | Nama | Kamar | Harga | Infus | Oksigen | Tambahan | Total |');
gotoxy(1,8);write('--------------------------------------------------------------------------------');
gotoxy(1,8+i);write('| | | | | | | | |');
gotoxy(2,8+i);writeln(data_array[w].id_pasien);
gotoxy(9,8+i);writeln(data_array[w].nama);
gotoxy(19,8+i);writeln(data_array[w].kamar);
gotoxy(29,8+i);writeln(data_array[w].harga_kamar);
gotoxy(39,8+i);writeln(data_array[w].kebutuhan1);
gotoxy(47,8+i);writeln(data_array[w].kebutuhan2);
gotoxy(58,8+i);writeln(data_array[w].harga_kebutuhan);
gotoxy(71,8+i);writeln(data_array[w].harga_total);
i:=i+1;
w:=w+1;
gotoxy(1,8+i);write('--------------------------------------------------------------------------------');
end;
end
else
writeln('nama pasien ',data_cari,' Tidak Ditemukan!!!');
end;
procedure binary_search_total_bayar(data_array : data_inap; n : integer);
var
v,w,data_cari,i,ia,ib,k : integer;
ketemu :boolean;
18. begin
write('Masukkan total bayar pasien : ');readln(data_cari);
ia := 1;
ib := n;
ketemu := false;
while((not ketemu) and (ia <= ib)) do
begin
k:=(ia+ib) div 2 ;
if(data_array[k].harga_total=data_cari)
then
ketemu := true
else
if(data_array[k].harga_total < data_cari)
then
ia:= k+1
else
ib:=k-1;
end;
if (ketemu) then
begin
i:=1;
v:=k;
w:=k+1;
while (data_cari = data_array[v].harga_total) do
begin
gotoxy(1,6);write('================================================================================');
gotoxy(1,7);write('| ID | Nama | Kamar | Harga | Infus | Oksigen | Tambahan | Total |');
gotoxy(1,8);write('--------------------------------------------------------------------------------');
gotoxy(1,8+i);write('| | | | | | | | |');
gotoxy(2,8+i);writeln(data_array[v].id_pasien);
gotoxy(9,8+i);writeln(data_array[v].nama);
gotoxy(19,8+i);writeln(data_array[v].kamar);
gotoxy(29,8+i);writeln(data_array[v].harga_kamar);
gotoxy(39,8+i);writeln(data_array[v].kebutuhan1);
gotoxy(47,8+i);writeln(data_array[v].kebutuhan2);
gotoxy(58,8+i);writeln(data_array[v].harga_kebutuhan);
gotoxy(71,8+i);writeln(data_array[v].harga_total);
i:=i+1;
v:=v-1;
gotoxy(1,8+i);write('--------------------------------------------------------------------------------');
end;
while (data_cari =data_array[w].harga_total) do
begin
gotoxy(1,6);write('================================================================================');
gotoxy(1,7);write('| ID | Nama | Kamar | Harga | Infus | Oksigen | Tambahan | Total |');
gotoxy(1,8);write('--------------------------------------------------------------------------------');
gotoxy(1,8+i);write('| | | | | | | | |');
24. ALGORTIMA DAN PEMROGRAMAN
APLIKASI RAWAT INAP
Diajukan Untuk Memenuhi Tugas Mata Kuliah
Algoritma dan Pemograman
Tahun Pelajaran2012 - 2013
DISUSUN OLEH :
HERNANDA (10112237) IF-6
I KADEK MEGANJAYA (10112203) IF-6
GINA MUNAJAT (10112212) IF-6
YOGIE PRASETYO (10112194) IF-6
HENDRA DEDI SUPRIADI (10112224) IF-6
JURUSAN TEKNIK INFORMATIKA
FAKULTAS TEKNIK DAN ILMU KOMPUTER
UNIVERSITAS KOMPUTER INDONESIA
BANDUNG
2013