Tampilkan postingan dengan label PASCAL. Tampilkan semua postingan
Tampilkan postingan dengan label PASCAL. Tampilkan semua postingan

Minggu, 16 Desember 2012

array data mahasiswa


program array_1Dimensi;
uses
 winCrt;
var
 nim,nm,smstr,mk,grade:array[1..4] of string;
 nh,uts,uas:array[1..4] of integer;
 na:array[1..4] of real;
 i:byte;
begin
  writeln('PROGRAM MENCETAK NILAI MHS');
  writeln('--------------------------');
 for i:= 1 to 2 do
 begin
 writeln('Input Data Mahasiswa ke ',i);  
  write('NIM         : ');readln(nim[i]);
  write('Nama        : ');readln(nm[i]);
  write('Semester    : ');readln(smstr[i]);
  write('Mata Kuliah : ');readln(mk[i]);
  write('Nilai Harian: ');readln(nh[i]);
  write('Nilai UTS   : ');readln(uts[i]);
  write('Nilai UAS   : ');readln(uas[i]);
  writeln('******************************');
  NA[i]:= 0.2*NH[i]+0.3*UTS[i]+0.5*UAS[i];
  if na[i] >= 90 then
     grade[i]:='A' else
  if na[i] >= 80 then
     grade[i]:='B+' else
  if na[i] >= 70 then
     grade[i]:='B' else
  if na[i] >= 60 then
     grade[i]:='C+' else
  if na[i] >= 50 then
     grade[i]:='C' else
  if na[i] >= 30 then
     grade[i]:='D'
  else
     grade[i]:='E';
 end; clrscr;
 writeln('DATA NILAI MHS SEBAGAI BERIKUT :');
 writeln('--------------------------------');
 for i:= 1 to 2 do
 begin
 writeln('Mahasiswa ke ',i);
  writeln('NIM          : ',nim[i]);
  writeln('Nama         : ',nm[i]);
  writeln('Mata Kuliah  : ',mk[i]);
  writeln('Nilai Akhir  : ',na[i]:3:0);
  writeln('Grade        : ',grade[i]);
  writeln('-------------------------------');
 end;
end.

Minggu, 09 Desember 2012

Mencetak bintang

Mencetak Bintang Secara ascending

uses wincrt;
var
a,c,n:integer;
begin
write('N : ');readln(n);
 for a:= 1 to n do
 begin
  for c:= 1 to a do
  write('*');
  writeln;
 end;
end.


Mencetak Bintang Secara descending

uses wincrt;
var
a,c,n:integer;
begin
write('N : ');readln(n);
 for a:= n downto 1 do
 begin
  for c:= a downto 1 do
  write('*');
  writeln;
 end;
end.


Mencetak Bintang rata kiri kanan


uses wincrt;
var
a,c,n:integer;
begin
write('N : ');readln(n);
 for a:= 1 to n do
 begin
  for c:= 1 to n do
  write('*');
  writeln;
 end;
end.

Sabtu, 08 Desember 2012

Merecord data mahasiswa

uses wincrt;
type tnilai = array[1..10] of byte;
     tsiswa = record
            nama: string[10];
            nis:word;
            n:byte;
            nilai:tnilai;
     end;
     tkelas = array[1..10] of tsiswa;
var siswa1, siswa2: tsiswa;
    kelas: tkelas;
    i, j, m : byte;
begin
     writeln('Data 2 siswa:');
     writeln('  Data siswa 1:');
     write('    Nama:'); readln(siswa1.nama);
     write('    Nis:'); readln(siswa1.nis);
     write('    Jumlah pelajaran:'); readln(siswa1.n);
     for i:=1 to siswa1.n do begin
         write('      Nilai ke-',i,':');readln(siswa1.nilai[i]);
     end;
     writeln;
     writeln('  Data siswa 2:');
     with siswa2 do begin
     write('    Nama:'); readln(nama);
     write('    Nis:'); readln(nis);
     write('    Jumlah pelajaran:'); readln(n);
     for i:=1 to n do begin
         write('       Nilai ke-',i,':');readln(nilai[i]);
     end;
     end;
     readln;
     clrscr;
     writeln('Data yang dimasukkan:');
     writeln('Siswa 1:');
     with siswa1 do begin
          writeln('    Nama:',nama);
          writeln('    Nis:',nis);
          writeln('    Jumlah pelajaran:',n);
          for i:=1 to n do
              writeln('        Nilai ke-',i,':',nilai[i]);
     end;
     writeln('Siswa 2:');
     with siswa2 do begin
          writeln('    Nama:',nama);
          writeln('    Nis:',nis);
          writeln('    Jumlah pelajaran:',n);
          for i:=1 to n do
              writeln('        Nilai ke-',i,':',nilai[i]);
     end;
     readln;
     clrscr;
     writeln('Data siswa pada suatu kelas');
     write('Jumlah siswa:');readln(m);
     for i:=1 to m do
         with kelas[i] do begin
              writeln('Data siswa ke-',i,':');
              write('  Nama:');readln(nama);
              write('  Nis:'); readln(nis);
              write('  Jumlah pelajaran:'); readln(n);
              for j:=1 to n do begin
                  write('   Nilai ke-',j,':'); readln(nilai[j]);
              end;                 
         end;
     readln;
     writeln('Data siswa:');
     writeln('---------------------------------');
     writeln('| No |   Nama   | Nis |Pelajaran|');
     writeln('---------------------------------');
     for i:=1 to m do
         with kelas[i] do begin
              writeln('|',i:4,'|',nama:10,'|',nis:4,' |',n:5,'   |');
              for j:=1 to n do
                  writeln('|    |          |     |',j,':',nilai[j]:5,' |');
         end;
     writeln('---------------------------------');
end.

Record Pertandingan Bola

uses wincrt;
type ttim = record
          nama:string[10];
          menang,seri,kalah,m,k,nilai:byte;
     end;
     tdaf=array[1..10] of ttim;
     turut=array[1..10] of shortint;
     tjadi=array[1..10] of byte;
var tim:tdaf;
    i,j,n,skora,skorb,indeks:byte;
    urut: turut;
    jadi: tjadi;
    maks: shortint;
begin
     write('Jumlah tim:');readln(n);
     for i:=1 to n do
     with tim[i] do begin
         write('Nama tim ke-',i,':');readln(nama);
     end;
     for i:=1 to n-1 do
         for j:=i+1 to n do begin
             writeln('Pertandingan ',tim[i].nama,' vs ',tim[j].nama,':');
             write('   Gol ', tim[i].nama,':');readln(skora);
             write('   Gol ', tim[j].nama,':');readln(skorb);
             tim[i].m:=tim[i].m+skora;
             tim[j].m:=tim[j].m+skorb;
             tim[i].k:=tim[i].k+skorb;
             tim[j].k:=tim[j].k+skora;
             if skora>skorb then begin
                tim[i].menang:=tim[i].menang+1;
                tim[j].kalah:=tim[j].kalah+1;
             end
             else if skora<skorb then begin
                  tim[j].menang:=tim[j].menang+1;
                  tim[i].kalah:=tim[i].kalah+1;
             end
             else begin
                  tim[i].seri:=tim[i].seri+1;
                  tim[j].seri:=tim[j].seri+1;
             end;
         end;
     for i:=1 to n do tim[i].nilai:=tim[i].menang*3+tim[i].seri*1;
     for i:=1 to n do urut[i]:=tim[i].nilai;
     for i:=1 to n do begin
         maks:=-1;
         for j:=1 to n do
             if urut[j] > maks then begin
                indeks:=j;
                maks:=urut[j];
             end;
         jadi[i]:=indeks;
         urut[jadi[i]]:=-1;
     end;
     readln;
     writeln;
     writeln('               Klasemen Akhir Turnamen');
     writeln('--------------------------------------------------------');
     writeln('| Nama Tim |Menang| Seri | Kalah | Selisih Gol | Nilai |');
     writeln('--------------------------------------------------------');
     for i:=1 to n do begin
         indeks:=jadi[i];
         writeln('|',tim[indeks].nama:10,'|',tim[indeks].menang:4,'  |',tim[indeks].seri:4,'  |',
         tim[indeks].kalah:4,'   |',tim[indeks].m:5,' -',tim[indeks].k:2,'    |',tim[indeks].nilai:4,'   |');
     end;    
     writeln('--------------------------------------------------------');
end.

Deret Bilangin Fibonaci

  Program deret_fibonacci;
   uses wincrt;
   var x:array[1..100] of integer;
       i,n,jumSuku:integer;
       lagi:char;

   function fibo(n:integer):integer;
     begin
       if (n<=2) then
       fibo:=1
       else
       fibo:=fibo(n-1)+fibo(n-2);
     end;

   begin
    jumSuku:=0;
    write('Masukkan suku fibonacci: ');readln(n);
    write('deret Fibonacci: ');
    for i:= 1 to n do
        begin
          write(fibo(i):4);
          JumSuku:= jumSuku + fibo(i);
        end;
        writeln;
        writeln('Suku ke-', n,' =', fibo(n));
        writeln('jumlah semua suku fibo: ',jumSuku);
   end.

Factorial

 uses wincrt;
   var n,i  : byte;
       total: longint;

   function fakto(n: byte): longint;
   var i: byte; hasil: longint;
   begin
     hasil:=1;
     for i:= 1 to n do
     hasil:= hasil*i;
     fakto:= hasil;
   end;
     begin
       write('masukan nilai= ');
       readln(n);
       total:=0;
       write(n,'! = ');
       for i:= n downto 1 do
           begin
           if i= 1 then write(i, '! ')
           else
           write(i,'! + ');
           total:=total+fakto(i);
           end;
       writeln;
       writeln('total faktorial = ',total);    
    end.

Record

program contoh_record;
uses
 winCrt;
type mhs = record
 nim : string[12];
 nama: string[25];
end;
var
 data:array[1..2] of mhs;
 i:integer;
procedure bintang;
begin
 writeln('**********************');
end;
begin
 writeln('PROGRAM CONTOH RECORD');
 bintang;
 for i:= 1 to 2 do
 begin
  write('Masukkan NIM : ');readln(data[i].nim);
  write('Masukkan Nama: ');readln(data[i].nama);
  clrscr;
 end;
 writeln('RECORD MAHASISWA');
 bintang;
 for i:= 1 to 2 do
 begin
  writeln('NIM    : ',data[i].nim);
  writeln('Nama   : ',data[i].nama);
 end;
end.

Senin, 03 Desember 2012

Counteed Loop

For .. do


program biodata;
uses
 winCrt;
var
 nim,nama:string;
 i:byte;
begin
 gotoxy(10,3);writeln('BIODATA PRIBADI');
 writeln('Masukkan Data Anda :');
 for i:= 1 to 2 do
 begin
  writeln('Data Ke ',i);
  write('NIM   : ');readln(nim);
  write('Nama  : ');readln(nama);
 end;clrscr;
 writeln('NIM   : ',nim);
 writeln('Nama  : ',nama);
end.

Uncounteed Loop

REPEAT ..


uses
 winCrt;
var
 a,b,c:byte;
 coba:char;
begin
 coba:='Y';
 repeat
  writeln('Program Repeat Uncounted loop');
  writeln('-----------------------------');
  writeln('Masukkan Data !!');
  write('Nilai a : ');readln(a);
  write('Nilai b : ');readln(b);
  c:=a*b;
  writeln;
  writeln('Nilai c : ',c);
  write('Mau Coba Lagi?[Y/T] : ');readln(coba);
  clrscr;
 until (coba ='T') or (coba ='t');
  writeln('TERIMA KASIH');
end.

WHILE..

uses
 winCrt;
var
 a,b,c:byte;
 coba:char;
begin
 coba:='Y';
while (coba='Y') or (coba='y') do
begin
  writeln('Program Repeat Uncounted loop');
  writeln('-----------------------------');
  writeln('Masukkan Data !!');
  write('Nilai a : ');readln(a);
  write('Nilai b : ');readln(b);
  c:=a*b;
  writeln;
  writeln('Nilai c : ',c);
  write('Mau Coba Lagi?[Y/T] : ');readln(coba);
  clrscr;
 end;
  writeln('TERIMA KASIH');
end.

Uncounteed Loop

Menentukan Kelulusan Nilai
REPEAT ,, UNTIL


program kondisi_if;

uses
    wincrt;

var
   nilai:integer;
   ket,ucapan:string;
   coba:char;

begin
coba:='Y';
repeat
     writeln('Program kondisi IF');
     writeln('__________________');
     writeln;
     write('Masukkan Sebuah Nilai : ');readln(nilai);
     if nilai >= 60 then
     begin
        ket:= 'LULUs';
        ucapan:= 'Selamat Yaaaa';
     end  else
     begin
        ket:= 'GAGAL';
        ucapan:= 'SABAR YAAA';
        end;
        writeln;
        writeln ('Nilai Anda ',nilai,' maka ',ket);
        writeln('kami Mengucapkan ',ucapan);
        writeln;
        write ('Masih Ada Data Lagi?[Y/T] : ');readln(coba);
        writeln;
     until (coba='T') or (coba='t')
end.

WHILE .. DO

program kondisi_if;

uses
    wincrt;

var
   nilai:integer;
   ket,ucapan:string;
   ulang:char;

begin
ulang:='Y';
while (ulang='Y') or (ulang='y') do
begin
     writeln('Program kondisi IF');
     writeln('__________________');
     writeln;
     write('Masukkan Sebuah Nilai : ');readln(nilai);
     if nilai >= 60 then
     begin
        ket:= 'LULUs';
        ucapan:= 'Selamat Yaaaa';
     end  else
     begin
        ket:= 'GAGAL';
        ucapan:= 'SABAR YAAA';
        end;
        writeln;
        writeln ('Nilai Anda ',nilai,' maka ',ket);
        writeln('kami Mengucapkan ',ucapan);
        writeln;
        write ('Masih Ada Data Lagi?[Y/T] : ');readln(ulang);
        end;

end.

Uncounted LOOP

Contoh :
Menentukan Bulan :
1. while .. do



program case_of;

uses
    wincrt;
var
    bulan:string;
    indeks:byte;
    ulang:char;

begin
  ulang:='Y';
  while (ulang='Y') or (ulang='y') do
  begin
  writeln ('Program Mencetak Nama Bulan');
  writeln('____________________________');
   writeln;
  write('Masukkan no Bulan[1..8] : ');readln(indeks);
case indeks of
     1:bulan:= 'Januari';
     2:bulan:= 'Februari';
     3:bulan:= 'Maret';
     4:bulan:= 'April';
     5:bulan:= 'Mei';
     6:bulan:= 'juni';
     7:bulan:= 'Juli';
     8:bulan:= 'Agustus';
else
writeln('Nama Gak Ada');
end;
    writeln('Bulan ke ',indeks,' Adalah ',bulan);
     writeln;
    write('Masih Ada Data Lagi?[Y/T] : ');readln(ulang);clrscr;
    writeln;
    end;
end.

2. Repeat .. Until


program case_of;

uses
    wincrt;
var
    bulan:string;
    indeks:byte;
    coba:char;

begin
  coba:='T';
  repeat
  writeln ('Program Mencetak Nama Bulan');
  writeln('____________________________');
  write('Masukkan no Bulan[1..8] : ');readln(indeks);
case indeks of
     1:bulan:= 'Januari';
     2:bulan:= 'Februari';
     3:bulan:= 'Maret';
     4:bulan:= 'April';
     5:bulan:= 'Mei';
     6:bulan:= 'juni';
     7:bulan:= 'Juli';
     8:bulan:= 'Agustus';
else
writeln('Nama Gak Ada');
end;

    writeln('Bulan ke ',indeks,' Adalah ',bulan);
    write('Masih Ada Data Lagi?[Y/T] : ');readln(coba);clrscr;
    writeln;
    until (coba='T') or (coba='t')
end.



Rabu, 11 Januari 2012

Latihan Pra UAS

A. buatlah sebuah program menu karyawan dimana jika memilih menu
1. program data karyawan (nik,nama,alamat,tgl lahir,jabatan,status,no telpon)
2. program data barang (kde barang, nama barang, quantity,harga satuan,total harga,diskon,harga bayar (harga setelah diskon))
 diskon jika total harga lebih besar atau sama dengan 50000 maka diskon 0,5%,jika total harga lebih besar atau sama dengan 500000 maka diskon 10%.
jika memilih menu di atas 3 maka akan muncul pesan *menu yang anda pilih tidak ada*
gunakan pengulangan uncounted loop untuk mengulang ke menu awal, dan buatlah pembatas yang bisa digunakan berklai-kali  (misal :bintang,samadengan,simbol2 lainnya dengan subrutin).

B.buatlah sebuah program menu untuk data kampus dimana jika memilih menu
1.program data mahasiswa (nim,nama,jurusan,tahun ajaran,smster,dosen wali,alamat,telpon)
2.program data dosen (nip,nama,ttl,alamat,telpon,status,jabatan,ruangan,mata kuliah)
3.program menghitung grade mahasiswa(nama,nim,jurusan,smster,angkatan,NH,NUTS,NUAS,NA,Grade)
jika memilih menu di atas 4 maka akan muncul pesan *menu yang anda pilih tidak ada*
gunakan pengulangan uncounted loop untuk mengulang ke menu awal, dan buatlah pembatas yang bisa digunakan berklai-kali  (misal :bintang,samadengan,simbol2 lainnya dengan subrutin).

C. Buatlah program konversi suhu, dimana jika memilih menu
1.  merubah celcius ke kelvin
     CeLKel = Celcius + 273,15
2.  merubah celcius ke rheamur
     CelRea= Celcius x 0,8
3. merubah reamur ke celcius
     ReaCel = Rheamur x 1,25
4.  merubah celcius ke fahrenheit
     CelFa = (Celcius x 1,8) + 32
5. merubah fahrenheit ke celcius
     FaHCel = (Fahrenheit - 32) / 1,8
6. merubah rheamur ke farenheit
     ReFa = (Rheamur x 2,25) + 32
jika memilih menu di atas 7 maka akan muncul pesan *menu yang anda pilih tidak ada*
gunakan pengulangan uncounted loop untuk mengulang ke menu awal, dan buatlah pembatas yang bisa digunakan berklai-kali  (misal :bintang,samadengan,simbol2 lainnya dengan subrutin).


selamat mencobaa iiiaahhh,,GOOD LUCK,,
^_^

Kamis, 01 Desember 2011

Jawaban MID Algo & Pemrog 1- Kel C

KANAN :
program Data_tamu;

uses
    wincrt;

var
   lma_inap        :byte;
   nm_tamu,jns_kmr : string;
   biaya,ttl_biaya :real;

begin
   
     gotoxy(12,3);writeln('Program Pengolahan Data Tamu');
     gotoxy(12,4);writeln('=============================');
     writeln;
     write('Nama Tamu        : ');readln(nm_tamu);
     writeln('==========================');
     writeln('Standar,Superior,Suite');
     writeln('==========================');
     write('Jenis Kamar      : ');readln(jns_kmr);
     write('Lama Menginap    : ');readln(lma_inap);
     clrscr;
   
     if (jns_kmr='Standar') or (jns_kmr='standar') then
        biaya := 375000
     else if (jns_kmr='Superior') or (jns_kmr='superior') then
        biaya := 500000
     else
        biaya := 750000;


     ttl_biaya := biaya * lma_inap;


     gotoxy(18,3);writeln('Hotel Tenang');
     gotoxy(9,4);writeln('=======^^^^^^^^^^^^^^^^=======');
     writeln;
     writeln('Nama Tamu             : ',nm_tamu);
     writeln('Jenis Kamar           : ',jns_kmr);
     writeln('Lama Menginap         : ',lma_inap,' Bulan');
     writeln('Biaya yang dibayar    :Rp.',ttl_biaya:10:0,',-');
     writeln('=====================================');
     writeln;
     gotoxy(12,13);writeln('Terima Kasih Atas Kunjungan Anda..!!');
     gotoxy(12,14);writeln('=====================================');
   
end.

KIRI :

program Data_pelanggan;

uses
    wincrt;

var
   lma_inap        :byte;
   nm_plgn,jns_cci : string;
   biaya,ttl_biaya :real;

begin

     gotoxy(12,3);writeln('Program Pengolahan Data Pencucian Mobil');
     gotoxy(12,4);writeln('=======================================');
     writeln;
     write('Nama Pelanggan        : ');readln(nm_plgn);
     writeln('==========================');
     writeln('Standar,Kilap,Salju');
     writeln('==========================');
     write('Jenis Cuci            : ');readln(jns_cci);
     clrscr;
   
     if (jns_cci='Standar') or (jns_cci='standar') then
        biaya := 35000
     else if (jns_cci='Kilap') or (jns_cci='kilap') then
        biaya := 50000
     else
        biaya := 75000;


     ttl_biaya := biaya + biaya * 0.1;


     gotoxy(17,3);writeln('Bengkel Tenang');
     gotoxy(9,4);writeln('=======^^^^^^^^^^^^^^^^=======');
     writeln;
     writeln('Nama Pelanggan        : ',nm_plgn);
     writeln('Jenis Cuci            : ',jns_cci);
     writeln('Biaya Cuci            :Rp. ',biaya:10:0,',-');
     writeln('Biaya Stelah Pajak    :Rp.',ttl_biaya:10:0,',-');
     writeln('=====================================');
     writeln;
     gotoxy(12,13);writeln('Terima Kasih Atas Kunjungan Anda..!!');
     gotoxy(12,14);writeln('=====================================');
   
end.

Jawaban MID Algo & Pemrog 1- Kel D

KANAN :
program Data_pengunjung;

uses
    wincrt;

var
   nope,wktu     :byte;
   game          : string;
   biaya,ttl_byr :real;

begin
    
     gotoxy(12,3);writeln('Program Pengolahan Data Pengunjung');
     gotoxy(12,4);writeln('==================================');
     writeln;
     write('No Pengunjung    : ');readln(nope);
     write('Lama Bermain     : ');readln(wktu);
     writeln('================================');
     writeln('Shooting,Racing,Fighting,Dancing');
     writeln('================================');
     write('Jenis Game       : ');readln(game);
     clrscr;
    
     if (game='Shooting') or (game='shooting') then
        biaya := 500
     else if (game='Racing') or (game='racing') then
        biaya := 700
     else if (game='Fighting') or (game='Fighting') then
        biaya := 650
     else
        biaya := 800;


     ttl_byr:= biaya * wktu;


     gotoxy(12,3);writeln('TIMEZONE MATARAM');
     gotoxy(9,4);writeln('===^^^^^^^^^^^^^^^^===');
     writeln;
     writeln('No Pengunjung         : ',nope);
     writeln('Jenis Permainan       : ',game);
     writeln('Lama Bermain          : ',wktu,' Menit');
     writeln('Biaya yang dibayar    :Rp.',ttl_byr:10:0,',-');
     writeln('=====================================');
     writeln;
     gotoxy(12,13);writeln('Terima Kasih Atas Kunjungan Anda..!!');
     gotoxy(12,14);writeln('=====================================');
    
end.


KIRI :

program Data_pengunjung;

uses
    wincrt;

var
   nope,jml:byte;
   menu : string;
   harga,ttl_harga :real;

begin
   
     gotoxy(12,3);writeln('Program Pengolahan Data Pengunjung');
     gotoxy(12,4);writeln('==================================');
     writeln;
     write('No Pembeli       : ');readln(nope);
     writeln('======================================');
     writeln('Kebab standar,Kebab gila,Burger,Hotdog');
     writeln('======================================');
     write('Jenis Menu       : ');readln(menu);
     write('Jumlah           : ');readln(jml);
     clrscr;
   
     if (menu='Kebab standar') or (menu='kebab standar') then
        harga := 11000
     else if (menu='Kebab gila') or (menu='Kebab gila') then
        harga := 10000
     else if (menu='Burger') or (menu='burger') then
        harga := 13000
     else
        harga := 12500;


     ttl_harga := harga * jml;


     gotoxy(12,3);writeln('Kebab Baba Rafi Karang Sukun');
     gotoxy(9,4);writeln('=======^^^^^^^^^^^^^^^^=======');
     writeln;
     writeln('No Pembeli            : ',nope);
     writeln('Menu                  : ',menu);
     writeln('Jumlah                : ',jml,' Buah');
     writeln('Total yang dibayar    :Rp.',ttl_harga:10:0,',-');
     writeln('=====================================');
     writeln;
     gotoxy(12,13);writeln('Terima Kasih Atas Kunjungan Anda..!!');
     gotoxy(12,14);writeln('=====================================');
   
end.

Senin, 21 November 2011

Latihan PraUTS

buat temen-temen kelas C dan D yang butuh soal latihan PraUTSnya bisa latihan pake soal dibawah ini, mungkin mirip geto sama soal UTSnya..Coba pelajari ajja yach,,ingettt Kerjaennya jangan pake acara nyontek yaaa,,, and beljara disiplin dalam waktu biar pas UTS kaliand pada bisa,,,SEmangaaathh yooo,..
GOOD Luck buat kaleandddd,,,Jawaban soal ini saya posting besok kaloo udah selesai kalian ujian praktikum...!!! ^_^


A.    Buatlah sebuah program Perhitungan Gaji Karyawan dengan ketentuan berikut :
a.    User memasukkan data pegawai berupa : NIP, Nama Pegawai, Golongan, Jumlah Anak.
b.    Gaji Pokok pegawai ditentukan sebagai berikut :
Golongan
Gaji Pokok
IA
1500000
IB
1600000
IIA
1800000
IIB
1900000
IIIA
2100000
IIIB
2400000
IVA
3500000

c.    Jika pegawai sudah menikah dan memiliki anak >= 2 maka tunjangan anak := 15%*Gaji Pokok, jika tidak maka tunjangan anak tidak diberikan.
d.   Gaji Bersih dihitung dengan rumus : Gaji Bersih := Gaji Pokok + Tunjangan Anak
e.    Output program berupa : Nama Pegawai, NIP, Golongan,Status, Jumlah anak, Tunjangan anak, Gaji pokok, Gaji Bersih.


B.     Buatlah program untuk mencetak gaji karyawan dimana:
Inputan :  nik,nama,jabatan (direktur,manager,karyawan,OB)
Ketentuan:
Jabatan                         Gaji                                        Tunjangan
Direktur                       3000000                                   10 % dari gaji
Manager                      2000000                                  5% dari gaji
Karyawan                    1000000                                  2% dari gaji
OB                              800000                                    1% dari gaji
Dikenakan PPN 10 % dari gaji
Gaji Bersih didapat dari : gaji + tunjangan – PPn
Output : Nik,nama,jabatan,gaji awal,tunjangan,PPN,total gaji.



C.     Buatlah program kasir dimana :
Input : Nama kasir,Kode barang,Nama barang,harga satuan,jumlah barang.
Proses:
Harga_beli := harga_satuan * jumlah
Jika harga_beli >= 20000, maka diskon 10% * harga_beli, total_bayar := harga_beli – diskon.
Output : Nama kasir,kode barang, nama barang, harga satuan, jumlah barang, diskon.

D.    Buatlah program program menghitung grade mahasiswa dimana:
Jika na >=90 grade A
Jika na >=80 grade B+
Jika na >=70 grade B
Jika na >=60 grade C+
Jika na >=50 grade C
Jika na >=40 grade D
Jika na <=39 grade E
Rumus na:= 20% * Harian + 30% * UTS + 50% * UAS
Output Nim,Nama,Jurusan,Semester,Nilai harian,Nilai UTS,Nilai UAS,Nilai akhir


E.     Berikut adalah data pengolahan gaji karyawan;
·         Nomor Induk Karyawan
·         Nama Karyawan
·         Status
·         Jumlah Anak
·         Jabatan
·         Gaji Pokok
·         Tunjangan Istri
·         Tunjangan Anak
·         Tunjangan jabatan
·         Jamsostek
·         Pajak
·         Gaji Bersih

Catatan;
Tunjangan istri 
·         jika status 'menikah' maka tunjangan istri 10 persen dari gaji pokok
·         Selain itu tidak dapat tunjangan
Tunjangan anak
·         Jika jumlah anak kurang atau sama dengan 3 orang, tunjangan anak 5 persen dari gaji pokok untuk masing-masing anak
·         Jika jumlah anak lebih dari 3, tunjangan anak maksimal untuk 3 orang anak.
·         selain itu tidak dapat tunjangan
Tunjangan jabatan, dan GAPOK
·         Jika jabatan 'manager' maka tunjangan jabatan Rp. 2000000, Gapok : 3500000
·         Jika jabatan 'Supervisor' maka tunjangan jabatan Rp. 1500000, Gapok : 2500000
·         Jika jabatan 'Mandor' maka tunjangan jabatan Rp. 1000000 , Gapok : 1500000
·         Selain itu tidak ada tunjangan

Pajak 2,5% dari gaji pokok
Jamsostek 10 % dari Gaji pokok
Gaji bersih = (gaji pokok + akumulasi tunjangan)-(pajak+jamsostek)
.

array data mahasiswa

program array_1Dimensi; uses  winCrt; var  nim,nm,smstr,mk,grade:array[1..4] of string;  nh,uts,uas:array[1..4] of integer;  na:array...