Upcoming SlideShare
Loading in …5
×

# program data rawat inap sederhana

1,159 views

Published on

Published in: Business
0 Comments
0 Likes
Statistics
Notes
• Full Name
Comment goes here.

Are you sure you want to Yes No
Your message goes here
• Be the first to comment

• Be the first to like this

No Downloads
Views
Total views
1,159
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
54
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

### program data rawat inap sederhana

1. 1. ALGORITMA PASIEN RAWAT INAPProcedurepilih(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)EndProcedureFunctionhargakamar(Input kamar : String) ->Integer{I.S. : }{F.S. : }Kamus:Algoritma:IF(kamar=vip1)Thenhargakamar ← 5000000ElseIF(kamar=vip2)Thenhargakamar←4000000ElseIF(kamar=vip3)Then hargakamar←3000000ElseIF(kamar=vip4)Thenhargakamar←2000000ElseIF(kamar=vip5)Thenhargakamar← 1500000ElseIF(kamar=reguler1)Thenhargakamar←1400000ElseIF(kamar=reguler2)Thenhargakamar← 1300000ElseIF(kamar=reguler3)Thenhargakamar← 1200000ElseIF(kamar=reguler4)Thenhargakamar←1100000ElseIF(kamar=reguler5)
2. 2. Thenhargakamar← 1050000ElseIF(kamar=ekonomi1)Thenhargakamar← 900000ElseIF(kamar=ekonomi2)Thenhargakamar← 600000ElseIF(kamar=ekonomi3)Then hargakamar←3000000ElseIF(kamar=ekonomi4)Thenhargakamar← 2000000ElseIF(kamar=ekonomi5)Then hargakamar←1000000 EndIF EndIF EndIF EndIF EndIF EndIF EndIF EndIF EndIF EndIF EndIF EndIF EndIF EndIF EndIFendFunctionProcedure isi_data(Output data_array : data_inap,Output n :Integer){I.S. : }{F.S. : }Kamus:i :IntegerFunctionhargakamar(Input kamar : String) ->IntegerAlgoritma: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
3. 3. EndProcedure{Procedure pengurutan}Procedure urut_id(Input n:Integer, Output data_array : data_inap)Kamus: temp2,i,k : Integertemp: StringAlgoritma: 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 EndForEndProcedure
4. 4. Procedure urut_nama(Input n:Integer,Output data_array : data_inap)Kamus: temp2,i,k : Integertemp: StringAlgoritma:For i ← 1 to n-1 DoFor k ← n Downto (i+1) DoIF(data_array[k].nama) < (data_array[k-1].nama) Thentemp← data_array[k].id_pasien data_array[k].id_pasien ← data_array[k-1].id_pasien data_array[k-1].id_pasien ← temptemp← data_array[k].nama data_array[k].nama ← data_array[k-1].nama data_array[k-1].nama ← temptemp← 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 ← temp2EndIFEndForEndForEndProcedureProcedure urut_harga(Inputn:Integer,Output data_array : data_inap){I.S. : }{F.S. : }Kamus: temp2,i,k : Integertemp: StringAlgoritma:For i ← 1 to n-1 Do
5. 5. For k ← n Downto (i+1) Do IF(data_array[k].harga_total) < (data_array[k-1].harga_total) Thentemp← data_array[k].id_pasien data_array[k].id_pasien ← data_array[k-1].id_pasien data_array[k-1].id_pasien ← temptemp← data_array[k].nama data_array[k].nama ← data_array[k-1].nama data_array[k-1].nama ← temptemp← 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 ← temp2EndIFEndForEndForEndProcedureProceduretampil(Input data_array : data_inap,Input n : Integer){I.S. : }{F.S. : }Kamus:i :IntegerAlgoritma: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)EndForEndProcedure
6. 6. Procedure binary_search_id(Inputdata_array : data_inap,Input n : Integer){I.S. : }{F.S. : }Kamus:i,k : Integer data_cari :Stringketemu :BooleanAlgoritma: 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 EndProcedureProcedure 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 :Stringketemu :BooleanAlgoritma: 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. 7. Then ketemu←true Else IF(data_array[k].nama < data_cari) Then ia← k+1 Else ib←k-1 EndIF EndIF EndWhileIF(ketemu)Theni←1v←kw←k+1While (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 EndWhileWhile (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+1EndWhileElseOutput(nama pasien ,data_cari, Tidak Ditemukan!!!) EndIFendProcedureProcedure binary_search_total_bayar(data_array : data_inap, n : Integer){I.S. : }{F.S. : }Kamus: v,w,data_cari,i,ia,ib,k : Integerketemu :BooleanAlgoritma:Input(data_cari)ia← 1ib← nketemu← falseWhile((not ketemu) and (ia <= ib)) Do k←(ia+ib) div 2 IF(data_array[k].harga_total=data_cari) Then ketemu← true
8. 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+1EndWhile ElseOutput(total bayar ,data_cari, Tidak Ditemukan!!!) EndIFEndProcedureProcedurehelp(){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. 9. {AlgoritmaUtama }rawat_inap{I.S. : }{F.S. : }Kamus:constmaks = 20typedata = recordharga_kamar,kebutuhan1,kebutuhan2: Integer harga_kebutuhan,harga_total : Integer id_pasien,nama,kamar : StringendRecorddata_inap =array[1..maks] of datadata_array : data_inapProcedurepilih(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 : IntegerAlgoritma:Repeatpilih(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 ! )endCaseUntil(pil=0)end.
10. 10. PROGRAM PASCAL PASIEN RAWAT INAPprogram pasien_rawat_inap;{I.S. : }{F.S. : }uses crt;constmaks = 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);begingotoxy(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. : }beginif(kamar=vip1)thenhargakamar := 5000000elseif(kamar=vip2)thenhargakamar := 4000000elseif(kamar=vip3)thenhargakamar := 3000000elseif(kamar=vip4)thenhargakamar := 2000000else if(kamar=vip5)thenhargakamar := 1500000else if(kamar=reguler1)
11. 11. thenhargakamar := 1400000else if(kamar=reguler2)thenhargakamar := 1300000else if(kamar=reguler3)thenhargakamar := 1200000else if(kamar=reguler4)thenhargakamar := 1100000else if(kamar=reguler5)thenhargakamar := 1050000else if(kamar=ekonomi1)thenhargakamar := 900000else if(kamar=ekonomi2)thenhargakamar := 600000else if(kamar=ekonomi3)thenhargakamar := 3000000else if(kamar=ekonomi4)thenhargakamar := 2000000else if(kamar=ekonomi5)thenhargakamar := 1000000;end;procedure isi_data(var data_array : data_inap; var n :integer);vari : integer;beginclrscr;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) dobegingotoxy(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. 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)) dobegin 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;beginfor i := 1 to n-1 dobeginfor k := n downto (i+1) dobeginif(data_array[k].id_pasien) < (data_array[k-1].id_pasien) thenbegintemp := 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. 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;beginfor i := 1 to n-1 dobeginfor k := n downto (i+1) dobeginif(data_array[k].nama) < (data_array[k-1].nama) thenbegintemp := 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. 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;beginfor i := 1 to n-1 dobeginfor k := n downto (i+1) dobeginif(data_array[k].harga_total) < (data_array[k-1].harga_total) thenbegintemp := 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. 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);vari : integer;begingotoxy(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 dobegingotoxy(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);vari,k : integer; data_cari : string ;ketemu :boolean;beginwrite(Masukkan id pasien : );readln(data_cari);ketemu := false;i := 1;while((not ketemu) and (i <= n)) do
16. 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. 17. elseib:=k-1;end;if(ketemu)thenbegini:=1;v:=k;w:=k+1;while (data_cari = data_array[v].nama) dobegin 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) dobegin 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;endelsewriteln(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. 18. beginwrite(Masukkan total bayar pasien : );readln(data_cari);ia := 1;ib := n;ketemu := false;while((not ketemu) and (ia <= ib)) dobegink:=(ia+ib) div 2 ;if(data_array[k].harga_total=data_cari)thenketemu := trueelseif(data_array[k].harga_total < data_cari)thenia:= k+1elseib:=k-1;end;if (ketemu) thenbegini:=1;v:=k;w:=k+1;while (data_cari = data_array[v].harga_total) dobegin 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) dobegin 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(| | | | | | | | |);
19. 19. 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;endelsewriteln(total bayar ,data_cari, Tidak Ditemukan!!!);end;procedure help;begingotoxy(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}beginrepeatclrscr;pilih(pil);case pil of
20. 20. 1 : beginclrscr; isi_Data(data_array,n);readln;clrscr;end;2 : beginclrscr; urut_id(n,data_array); binary_search_id(data_array,n);readln;clrscr;end;3 : beginclrscr; urut_nama(n,data_array); binary_search_nama(data_array,n);readln;clrscr;end;4 : beginclrscr; urut_harga(n,data_array); binary_search_total_bayar(data_array,n);readln;clrscr;end;5 : beginclrscr; urut_id(n,data_array);tampil(data_array,n);readln;clrscr;end;6 : beginclrscr;help;readln;end;0 : beginwriteln(Anda akan keluar program , tekan enter ! );end;end;until(pil=0);readln;end.
21. 21. SCREENSHOOT PROGRAM PASIEN RAWAT INAPMenu PilihanIsi DataCari Data Berdasrkan Kode
22. 22. Cari Data Berdasarkan NamaCari Data Berdasarkan Total BayarMenampilkan Data yang Sudah Terurut Secara Ascending
23. 23. Menampilkan Pilihan HelpKeluar Program
24. 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