Skip to main content

TUGAS PRAKTIKUM STRUKTUR DATA YANG KETIGA

Program ini adalah tugas praktikum struktur data yang ketiga.
dalam program ini kita akan menginput beberapa data pelanggan dan setelah penginputan berakhir maka akan ditampilkan daftar pelanggan dalam bentuk tabel dan diurutkan sesuai dengan jumlah pembayaran mulai dari yang terbesar/tertinggi hingga yang terkecil seperti terlihat pada screenshot di samping.
dan juga akan dihitung jumlah pelanggan setiap golongan, jumlah denda yang harus dibayarkan, tak ketinggalan akan ditampilkan juga nama pelanggan dengan jumlah pembayaran terbesar dan terkecil.







Source Code :

Program pdam;
uses crt;
var nama : array[1..100] of string[25];
    gol : array[1..100] of char;
    jpakai : array[1..100] of integer;
    jbayar : array[1..100] of real;
    tanggal : integer;
    ulang,e : char;
    beban, harga,  bayar : longint;
    c,denda, jdenda : real;
    a,b,d,i, ja, jb , jc, max : integer;
    f : string;
begin
clrscr;
i:=1;
repeat
write('Nama pelanggan      = ');
readln(nama[i]);
write('Golongan meter      = ');
readln(gol[i]);
 if gol[i] = 'A' then
 begin
  beban := 30000;
  harga := 3000;
  ja := ja+1;
 end;
 if gol[i] = 'B' then
 begin
  beban := 40000;
  harga := 4000;
  jb := jb+1;
 end;
 if gol[i] = 'C' then
 begin
  beban := 50000;
  harga := 5000;
  jc := jc+1
 end;
write('Jumlah Pemakaian     = ');
readln(jpakai[i]);
bayar := jpakai[i] * harga + beban;
write('Tanggal pembayaran  = ');
readln(tanggal);
 if (gol[i] = 'A') and (tanggal > 10) then
  denda := 0.05 * bayar;
 if (gol[i] = 'B') and ((tanggal < 10) or (tanggal > 20))  then
  denda := 0.05 * bayar;
 if (gol[i] = 'C') and (tanggal < 20) then
  denda := 0.05 * bayar;
 jdenda := jdenda + denda;
 jbayar[i] := bayar + denda;
writeln('Biaya beban       = ',beban);
writeln('Harga air /m3     = ',harga);
writeln('Denda             = ',denda:2:2);
writeln('Jumlah pembayaran = ',jbayar[i]:2:2);
write('masih ada data ? [Y/T] ');
readln(ulang);
denda:=0;
max:=i;
inc(i);
until ulang = 'T';
writeln;
writeln('Daftar Pelanggan PDAM Kota Makassar ');
writeln('----------------------------------------------------------- ');
writeln('No. Nama Pelanggan  Gol. Meter Jml. Pakai   Jml. Pembayaran ');
writeln('----------------------------------------------------------- ');
for a:=1 to max-1 do
begin
 for b:=a+1 to max do
  begin
  if jbayar[a] > jbayar[b] then
   begin
   c := jbayar[a];
   jbayar[a] := jbayar[b];
   jbayar[b] := c;
   d:= jpakai[a];
   jpakai[a] := jpakai[b];
   jpakai[b] := d;
   e:= gol[a];
   gol[a] := gol[b];
   gol[b] := e;
   f := nama[a];
   nama[a] := nama[b];
   nama[b] := f;
   end;
  end;
end;
for i:=1 to max do
begin
 writeln(i:2,'.  ',nama[i]:13,' ',gol[i]:7,' ',jpakai[i]:9,' ',jbayar[i]:18:2);
end;
writeln('----------------------------------------------------------- ');
writeln('Jumlah Pelanggan Golongan A : ',ja);
writeln('Jumlah Pelanggan Golongan B : ',jb);
writeln('Jumlah Pelanggan Golongan C : ',jc);
writeln('Total Jumlah Denda          : Rp. ',jdenda:2:2);
writeln('Nama Pelanggan dengan Pembayaran Terbesar : ',nama[max]);
writeln('Nama Pelanggan dengan Pembayaran Terkecil : ',nama[1]);
readln;
end.

Comments

Popular posts from this blog

PROGRAM MENGHITUNG LEMBARAN UANG

Program ini untuk menghitung jumlah lembaran uang kertas dalam pecahan 100 ribu, 50 ribu, 20 ribu, 10 ribu, 5 ribu, seribu dan lima ratus, dari sejumlah nilai uang yang kita inputkan. dan juga menghitung sisa dari pecahan uang tersebut.. tampilannya programnya seperti yang terlihat pada gambar...

Menampilkan Bilangan secara acak pada pascal

Program Menampilkan Bilangan secara acak 1.  Menampilkan Bilangan decimal secara acak    

Program Menampilkan deretan Bilangan Ganjil dan Genap

Program tersebut adalah Program untuk Menampilkan deretan bilangan ganjil dan genap yang dimulai dari 1 s/d 5, tapi jika anda tidak ingin menampilkan deretan bilangan ganjil dan genap yang tidak dimulai dari 1 atau sampai dengan lima anda tinggal mengubah nilai yang ada pada perulangan For nya..