SlideShare une entreprise Scribd logo
1  sur  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

Contenu connexe

Tendances

Kriptografi - Serangan Terhadap Kriptografi
Kriptografi - Serangan Terhadap KriptografiKriptografi - Serangan Terhadap Kriptografi
Kriptografi - Serangan Terhadap KriptografiKuliahKita
 
Public Key Cryptography and RSA algorithm
Public Key Cryptography and RSA algorithmPublic Key Cryptography and RSA algorithm
Public Key Cryptography and RSA algorithmIndra97065
 
Big O - Analisa Algoritma
Big O - Analisa AlgoritmaBig O - Analisa Algoritma
Big O - Analisa AlgoritmaFajar Baskoro
 
Jaringan syaraf tiruan
Jaringan syaraf tiruanJaringan syaraf tiruan
Jaringan syaraf tiruanpoposayangmomo
 
Dynamic programming
Dynamic programmingDynamic programming
Dynamic programmingShakil Ahmed
 
SHA- Secure hashing algorithm
SHA- Secure hashing algorithmSHA- Secure hashing algorithm
SHA- Secure hashing algorithmRuchi Maurya
 
Kriptografi - Prinsip Perancangan Cipher Blok
Kriptografi - Prinsip Perancangan Cipher BlokKriptografi - Prinsip Perancangan Cipher Blok
Kriptografi - Prinsip Perancangan Cipher BlokKuliahKita
 
Perangkat Lunak Deteksi Bit Error dengan Implementasi Longitudinal Redundancy...
Perangkat Lunak Deteksi Bit Error dengan Implementasi Longitudinal Redundancy...Perangkat Lunak Deteksi Bit Error dengan Implementasi Longitudinal Redundancy...
Perangkat Lunak Deteksi Bit Error dengan Implementasi Longitudinal Redundancy...Rivalri Kristianto Hondro
 
aritmatika komputer
aritmatika komputeraritmatika komputer
aritmatika komputerdewi2093
 
Hash mac algorithms
Hash mac algorithmsHash mac algorithms
Hash mac algorithmsTony Nguyen
 
Content centric networking
Content centric networkingContent centric networking
Content centric networkingPhearin Sok
 
Idea(international data encryption algorithm)
Idea(international data encryption algorithm)Idea(international data encryption algorithm)
Idea(international data encryption algorithm)SAurabh PRajapati
 
Ppt filsafat rasionalisme vs empirisme
Ppt filsafat rasionalisme vs empirismePpt filsafat rasionalisme vs empirisme
Ppt filsafat rasionalisme vs empirismezukhrufi17
 

Tendances (20)

Kriptografi - Serangan Terhadap Kriptografi
Kriptografi - Serangan Terhadap KriptografiKriptografi - Serangan Terhadap Kriptografi
Kriptografi - Serangan Terhadap Kriptografi
 
Public Key Cryptography and RSA algorithm
Public Key Cryptography and RSA algorithmPublic Key Cryptography and RSA algorithm
Public Key Cryptography and RSA algorithm
 
Big O - Analisa Algoritma
Big O - Analisa AlgoritmaBig O - Analisa Algoritma
Big O - Analisa Algoritma
 
Chapter 1.ppt
Chapter 1.pptChapter 1.ppt
Chapter 1.ppt
 
Buku Hijau II : Panduan ClearOS 6
Buku Hijau II : Panduan ClearOS 6Buku Hijau II : Panduan ClearOS 6
Buku Hijau II : Panduan ClearOS 6
 
Kecerdasan Buatan
Kecerdasan BuatanKecerdasan Buatan
Kecerdasan Buatan
 
Jaringan syaraf tiruan
Jaringan syaraf tiruanJaringan syaraf tiruan
Jaringan syaraf tiruan
 
Dynamic programming
Dynamic programmingDynamic programming
Dynamic programming
 
SHA- Secure hashing algorithm
SHA- Secure hashing algorithmSHA- Secure hashing algorithm
SHA- Secure hashing algorithm
 
Kriptografi - Prinsip Perancangan Cipher Blok
Kriptografi - Prinsip Perancangan Cipher BlokKriptografi - Prinsip Perancangan Cipher Blok
Kriptografi - Prinsip Perancangan Cipher Blok
 
IPv4
IPv4IPv4
IPv4
 
Perangkat Lunak Deteksi Bit Error dengan Implementasi Longitudinal Redundancy...
Perangkat Lunak Deteksi Bit Error dengan Implementasi Longitudinal Redundancy...Perangkat Lunak Deteksi Bit Error dengan Implementasi Longitudinal Redundancy...
Perangkat Lunak Deteksi Bit Error dengan Implementasi Longitudinal Redundancy...
 
aritmatika komputer
aritmatika komputeraritmatika komputer
aritmatika komputer
 
Hash mac algorithms
Hash mac algorithmsHash mac algorithms
Hash mac algorithms
 
Content centric networking
Content centric networkingContent centric networking
Content centric networking
 
Homomorphic encryption
Homomorphic encryptionHomomorphic encryption
Homomorphic encryption
 
Idea(international data encryption algorithm)
Idea(international data encryption algorithm)Idea(international data encryption algorithm)
Idea(international data encryption algorithm)
 
Osi model in networking
Osi model in networkingOsi model in networking
Osi model in networking
 
Ppt filsafat rasionalisme vs empirisme
Ppt filsafat rasionalisme vs empirismePpt filsafat rasionalisme vs empirisme
Ppt filsafat rasionalisme vs empirisme
 
Vigenere cipher
Vigenere cipherVigenere cipher
Vigenere cipher
 

En vedette

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
 

En vedette (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