program data rawat inap sederhana

24
ALGORITMA PASIEN RAWAT INAP Procedure pilih(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 Function hargakamar(Input kamar : String ) ->Integer {I.S. : } {F.S. : } Kamus: Algoritma: IF (kamar='vip1') Then hargakamar ← 5000000 Else IF (kamar='vip2') Then hargakamar4000000 Else IF (kamar='vip3') Then hargakamar3000000 Else IF (kamar='vip4') Then hargakamar2000000 ElseIF (kamar='vip5') Then hargakamar1500000 ElseIF (kamar='reguler1') Then hargakamar1400000 ElseIF (kamar='reguler2') Then hargakamar1300000 ElseIF (kamar='reguler3') Then hargakamar1200000 ElseIF (kamar='reguler4') Then hargakamar1100000 ElseIF (kamar='reguler5')

Upload: eghan-jaya

Post on 12-Jul-2015

615 views

Category:

Business


1 download

TRANSCRIPT

Page 1: program data rawat inap sederhana

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

Page 2: program data rawat inap sederhana

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

Page 3: program data rawat inap sederhana

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

Page 4: program data rawat inap sederhana

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

Page 5: program data rawat inap sederhana

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

Page 6: program data rawat inap sederhana

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)

Page 7: program data rawat inap sederhana

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

Page 8: program data rawat inap sederhana

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

Page 9: program data rawat inap sederhana

{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.

Page 10: program data rawat inap sederhana

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

Page 11: program data rawat inap sederhana

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

Page 12: program data rawat inap sederhana

(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;

Page 13: program data rawat inap sederhana

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;

Page 14: program data rawat inap sederhana

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;

Page 15: program data rawat inap sederhana

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

Page 16: program data rawat inap sederhana

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

Page 17: program data rawat inap sederhana

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;

Page 18: program data rawat inap sederhana

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('| | | | | | | | |');

Page 19: program data rawat inap sederhana

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

Page 20: program data rawat inap sederhana

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.

Page 21: program data rawat inap sederhana

SCREENSHOOT PROGRAM PASIEN RAWAT INAP

Menu Pilihan

Isi Data

Cari Data Berdasrkan Kode

Page 22: program data rawat inap sederhana

Cari Data Berdasarkan Nama

Cari Data Berdasarkan Total Bayar

Menampilkan Data yang Sudah Terurut Secara Ascending

Page 23: program data rawat inap sederhana

Menampilkan Pilihan Help

Keluar Program

Page 24: program data rawat inap sederhana

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