program data rawat inap sederhana
TRANSCRIPT
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')
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
EndProcedure
{Procedure pengurutan}
Procedure urut_id(Input n:Integer, Output data_array : data_inap)
Kamus:
temp2,i,k : Integer
temp: String
Algoritma:
For i ← 1 to n-1 Do
For k ← n Downto (i+1) Do
IF(data_array[k].id_pasien) < (data_array[k-1].id_pasien)
Then
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
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
EndIF
EndFor
EndFor
EndProcedure
Procedure urut_nama(Input n:Integer,Output data_array : data_inap)
Kamus:
temp2,i,k : Integer
temp: String
Algoritma:
For i ← 1 to n-1 Do
For k ← n Downto (i+1) Do
IF(data_array[k].nama) < (data_array[k-1].nama) Then
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
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
EndIF
EndFor
EndFor
EndProcedure
Procedure urut_harga(Inputn:Integer,Output data_array : data_inap)
{I.S. : }
{F.S. : }
Kamus:
temp2,i,k : Integer
temp: String
Algoritma:
For i ← 1 to n-1 Do
For k ← n Downto (i+1) Do
IF(data_array[k].harga_total) < (data_array[k-1].harga_total) Then
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
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
EndIF
EndFor
EndFor
EndProcedure
Proceduretampil(Input data_array : data_inap,Input n : Integer)
{I.S. : }
{F.S. : }
Kamus:
i :Integer
Algoritma:
For i←1 to n Do
Output(data_array[i].id_pasien, data_array[i].nama,
data_array[i].kamar, data_array[i].harga_kamar,
data_array[i].kebutuhan1, data_array[i].kebutuhan2,
data_array[i].harga_kebutuhan, data_array[i].harga_total)
EndFor
EndProcedure
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)
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
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
{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.
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')
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
(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;
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;
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;
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
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
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;
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('| | | | | | | | |');
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('total bayar ',data_cari,' Tidak Ditemukan!!!');
end;
procedure help;
begin
gotoxy(18,2);write('Panduan Cara Menggunakan Program Rawat Inap');
gotoxy(18,3);write('===========================================');
gotoxy(3,7);write('1. cara mengisi kolom ID');
gotoxy(6,8);write('* Pada kolom ID, ID yang boleh digunakan adalah dari 0001-
1000');
gotoxy(3,9);write('2. cara mengisi kolom Nama');
gotoxy(6,10);write('* Untuk kolom nama, ketikan nama pasien yang rawat
inap');
gotoxy(3,11);write('3. cara mengisi kolom kamar');
gotoxy(6,12);write('* Kolom kamar diisi dengan vip1-vip5,regular1-
regular5,ekonomi1-ekomoni5');
gotoxy(6,13);write('* harga kamar akan ditentukan dari jenis kamar yang
dimasukkan');
gotoxy(3,14);write('4. cara mengisi kolom infus dan oksigen ');
gotoxy(6,15);write('* Kolom infus dan oksigen diisi dengan berapa banyak
infus dan oksigen yang diguakan oleh pasien');
end;
{program utama}
begin
repeat
clrscr;
pilih(pil);
case pil of
1 : begin
clrscr;
isi_Data(data_array,n);
readln;
clrscr;
end;
2 : begin
clrscr;
urut_id(n,data_array);
binary_search_id(data_array,n);
readln;
clrscr;
end;
3 : begin
clrscr;
urut_nama(n,data_array);
binary_search_nama(data_array,n);
readln;
clrscr;
end;
4 : begin
clrscr;
urut_harga(n,data_array);
binary_search_total_bayar(data_array,n);
readln;
clrscr;
end;
5 : begin
clrscr;
urut_id(n,data_array);
tampil(data_array,n);
readln;
clrscr;
end;
6 : begin
clrscr;
help;
readln;
end;
0 : begin
writeln('Anda akan keluar program , tekan enter ! ');
end;
end;
until(pil=0);
readln;
end.
SCREENSHOOT PROGRAM PASIEN RAWAT INAP
Menu Pilihan
Isi Data
Cari Data Berdasrkan Kode
Cari Data Berdasarkan Nama
Cari Data Berdasarkan Total Bayar
Menampilkan Data yang Sudah Terurut Secara Ascending
Menampilkan Pilihan Help
Keluar Program
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