SlideShare ist ein Scribd-Unternehmen logo
1 von 24
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

Weitere ähnliche Inhalte

Was ist angesagt?

Makalah Organisasi Komputer - Direct Memory Access (DMA)
Makalah Organisasi Komputer - Direct Memory Access (DMA)Makalah Organisasi Komputer - Direct Memory Access (DMA)
Makalah Organisasi Komputer - Direct Memory Access (DMA)Fajar Jabrik
 
Analisa & Perancangan Sistem Informasi-Jasa Pemesanan Kontraktor
Analisa & Perancangan Sistem Informasi-Jasa Pemesanan KontraktorAnalisa & Perancangan Sistem Informasi-Jasa Pemesanan Kontraktor
Analisa & Perancangan Sistem Informasi-Jasa Pemesanan KontraktorBina Sarana Informatika
 
Analisis ERD Database Rumah Sakit
Analisis ERD Database Rumah SakitAnalisis ERD Database Rumah Sakit
Analisis ERD Database Rumah SakitFitria Nuri
 
Model data relasional (3)
Model data relasional (3)Model data relasional (3)
Model data relasional (3)Fariszal Nova
 
2. Array of Record (Struktur Data)
2. Array of Record (Struktur Data)2. Array of Record (Struktur Data)
2. Array of Record (Struktur Data)Kelinci Coklat
 
ERD Sistem Informasi Pemesanan Tiket Bioskop Online
ERD Sistem Informasi Pemesanan Tiket Bioskop OnlineERD Sistem Informasi Pemesanan Tiket Bioskop Online
ERD Sistem Informasi Pemesanan Tiket Bioskop OnlineLucha Kamala Putri
 
Perancangan (diagram softekz, dfd level 0,1,2)
Perancangan (diagram softekz, dfd level 0,1,2)Perancangan (diagram softekz, dfd level 0,1,2)
Perancangan (diagram softekz, dfd level 0,1,2)Joel Marobo
 
Erd pemesanan menu by Fokusta Arif STIMATA TI 2013
Erd pemesanan menu by Fokusta Arif STIMATA TI 2013Erd pemesanan menu by Fokusta Arif STIMATA TI 2013
Erd pemesanan menu by Fokusta Arif STIMATA TI 2013Fokusta Arif
 
Paparan seminar proposal ta 30092011
Paparan seminar proposal ta 30092011 Paparan seminar proposal ta 30092011
Paparan seminar proposal ta 30092011 trinux174
 
Tugas 2 individu tentang dbms
Tugas 2 individu tentang dbmsTugas 2 individu tentang dbms
Tugas 2 individu tentang dbmsElma Fiana
 
Tugas normalisasi imaika penjualan komputer
Tugas normalisasi   imaika penjualan komputerTugas normalisasi   imaika penjualan komputer
Tugas normalisasi imaika penjualan komputerHamdi Hamdi
 
Pengantar Sistem Berkas (Lanjutan)
Pengantar Sistem Berkas (Lanjutan)Pengantar Sistem Berkas (Lanjutan)
Pengantar Sistem Berkas (Lanjutan)formatik
 
Konsep dasar probabilitas
Konsep dasar probabilitasKonsep dasar probabilitas
Konsep dasar probabilitasChristiana Tian
 
Konsep dasar database
Konsep dasar databaseKonsep dasar database
Konsep dasar databaseFE FE
 

Was ist angesagt? (20)

Makalah Organisasi Komputer - Direct Memory Access (DMA)
Makalah Organisasi Komputer - Direct Memory Access (DMA)Makalah Organisasi Komputer - Direct Memory Access (DMA)
Makalah Organisasi Komputer - Direct Memory Access (DMA)
 
Analisa & Perancangan Sistem Informasi-Jasa Pemesanan Kontraktor
Analisa & Perancangan Sistem Informasi-Jasa Pemesanan KontraktorAnalisa & Perancangan Sistem Informasi-Jasa Pemesanan Kontraktor
Analisa & Perancangan Sistem Informasi-Jasa Pemesanan Kontraktor
 
Pertemuan 11 Kualitas Data
Pertemuan 11 Kualitas DataPertemuan 11 Kualitas Data
Pertemuan 11 Kualitas Data
 
Analisis ERD Database Rumah Sakit
Analisis ERD Database Rumah SakitAnalisis ERD Database Rumah Sakit
Analisis ERD Database Rumah Sakit
 
pemetaan erd
pemetaan erdpemetaan erd
pemetaan erd
 
Model data relasional (3)
Model data relasional (3)Model data relasional (3)
Model data relasional (3)
 
2. Array of Record (Struktur Data)
2. Array of Record (Struktur Data)2. Array of Record (Struktur Data)
2. Array of Record (Struktur Data)
 
5 white-box
5 white-box5 white-box
5 white-box
 
Graph
GraphGraph
Graph
 
ERD Sistem Informasi Pemesanan Tiket Bioskop Online
ERD Sistem Informasi Pemesanan Tiket Bioskop OnlineERD Sistem Informasi Pemesanan Tiket Bioskop Online
ERD Sistem Informasi Pemesanan Tiket Bioskop Online
 
Perancangan (diagram softekz, dfd level 0,1,2)
Perancangan (diagram softekz, dfd level 0,1,2)Perancangan (diagram softekz, dfd level 0,1,2)
Perancangan (diagram softekz, dfd level 0,1,2)
 
Erd pemesanan menu by Fokusta Arif STIMATA TI 2013
Erd pemesanan menu by Fokusta Arif STIMATA TI 2013Erd pemesanan menu by Fokusta Arif STIMATA TI 2013
Erd pemesanan menu by Fokusta Arif STIMATA TI 2013
 
Paparan seminar proposal ta 30092011
Paparan seminar proposal ta 30092011 Paparan seminar proposal ta 30092011
Paparan seminar proposal ta 30092011
 
Tugas 2 individu tentang dbms
Tugas 2 individu tentang dbmsTugas 2 individu tentang dbms
Tugas 2 individu tentang dbms
 
Sequence Diagram
Sequence DiagramSequence Diagram
Sequence Diagram
 
Tugas normalisasi imaika penjualan komputer
Tugas normalisasi   imaika penjualan komputerTugas normalisasi   imaika penjualan komputer
Tugas normalisasi imaika penjualan komputer
 
Pengantar Sistem Berkas (Lanjutan)
Pengantar Sistem Berkas (Lanjutan)Pengantar Sistem Berkas (Lanjutan)
Pengantar Sistem Berkas (Lanjutan)
 
Contoh soal uts struktur data
Contoh soal uts struktur dataContoh soal uts struktur data
Contoh soal uts struktur data
 
Konsep dasar probabilitas
Konsep dasar probabilitasKonsep dasar probabilitas
Konsep dasar probabilitas
 
Konsep dasar database
Konsep dasar databaseKonsep dasar database
Konsep dasar database
 

Andere mochten auch

Analisa klasifikasi biaya pasien rawat inap menggunakan teknik data mining at...
Analisa klasifikasi biaya pasien rawat inap menggunakan teknik data mining at...Analisa klasifikasi biaya pasien rawat inap menggunakan teknik data mining at...
Analisa klasifikasi biaya pasien rawat inap menggunakan teknik data mining at...Koltiva
 
Makalah manajemen keperawatan (teknik2 komunikasi)
Makalah manajemen keperawatan (teknik2 komunikasi)Makalah manajemen keperawatan (teknik2 komunikasi)
Makalah manajemen keperawatan (teknik2 komunikasi)MJM Networks
 
Rudi hartanto tutorial 02 rapid miner 5.3 linear regression
Rudi hartanto   tutorial 02 rapid miner 5.3 linear regressionRudi hartanto   tutorial 02 rapid miner 5.3 linear regression
Rudi hartanto tutorial 02 rapid miner 5.3 linear regressionilmuBiner
 
Rudi hartanto tutorial 04 rapid miner 5.3 k-means
Rudi hartanto   tutorial 04 rapid miner 5.3 k-meansRudi hartanto   tutorial 04 rapid miner 5.3 k-means
Rudi hartanto tutorial 04 rapid miner 5.3 k-meansilmuBiner
 
Belajar mudah algoritma data mining c4.5
Belajar mudah algoritma data mining c4.5Belajar mudah algoritma data mining c4.5
Belajar mudah algoritma data mining c4.5ilmuBiner
 
Rudi hartanto tutorial 01 rapid miner 5.3 decision tree
Rudi hartanto   tutorial 01 rapid miner 5.3 decision treeRudi hartanto   tutorial 01 rapid miner 5.3 decision tree
Rudi hartanto tutorial 01 rapid miner 5.3 decision treeilmuBiner
 
Isi makalah Standar pelayanan
Isi makalah Standar pelayanan Isi makalah Standar pelayanan
Isi makalah Standar pelayanan Wawan Wan
 

Andere mochten auch (8)

Analisa klasifikasi biaya pasien rawat inap menggunakan teknik data mining at...
Analisa klasifikasi biaya pasien rawat inap menggunakan teknik data mining at...Analisa klasifikasi biaya pasien rawat inap menggunakan teknik data mining at...
Analisa klasifikasi biaya pasien rawat inap menggunakan teknik data mining at...
 
Makalah manajemen keperawatan (teknik2 komunikasi)
Makalah manajemen keperawatan (teknik2 komunikasi)Makalah manajemen keperawatan (teknik2 komunikasi)
Makalah manajemen keperawatan (teknik2 komunikasi)
 
Rudi hartanto tutorial 02 rapid miner 5.3 linear regression
Rudi hartanto   tutorial 02 rapid miner 5.3 linear regressionRudi hartanto   tutorial 02 rapid miner 5.3 linear regression
Rudi hartanto tutorial 02 rapid miner 5.3 linear regression
 
Mengenal Rapidminer
Mengenal RapidminerMengenal Rapidminer
Mengenal Rapidminer
 
Rudi hartanto tutorial 04 rapid miner 5.3 k-means
Rudi hartanto   tutorial 04 rapid miner 5.3 k-meansRudi hartanto   tutorial 04 rapid miner 5.3 k-means
Rudi hartanto tutorial 04 rapid miner 5.3 k-means
 
Belajar mudah algoritma data mining c4.5
Belajar mudah algoritma data mining c4.5Belajar mudah algoritma data mining c4.5
Belajar mudah algoritma data mining c4.5
 
Rudi hartanto tutorial 01 rapid miner 5.3 decision tree
Rudi hartanto   tutorial 01 rapid miner 5.3 decision treeRudi hartanto   tutorial 01 rapid miner 5.3 decision tree
Rudi hartanto tutorial 01 rapid miner 5.3 decision tree
 
Isi makalah Standar pelayanan
Isi makalah Standar pelayanan Isi makalah Standar pelayanan
Isi makalah Standar pelayanan
 

program data rawat inap sederhana

  • 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
  • 3. 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
  • 4. 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
  • 5. 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
  • 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('| | | | | | | | |');
  • 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; 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
  • 20. 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.
  • 21. SCREENSHOOT PROGRAM PASIEN RAWAT INAP Menu Pilihan Isi Data Cari Data Berdasrkan Kode
  • 22. Cari Data Berdasarkan Nama Cari Data Berdasarkan Total Bayar Menampilkan Data yang Sudah Terurut Secara Ascending
  • 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