Algoritma HitungGajiKaryawan Deklarasi NIK,Nama,Jabatan : String Gaji, Tunj, Pajak, Gaber : Real Procedure MasukDataKaryawan Algoritma Write('NIK ') Read(NIK) Write('Nama Karyawan ') Read(Nama) Write('Jabatan ') Read (Jabat) Procedure HitungGaji Algoritma If Jabat='Direktur' Then Gaji<-10000000 Tunj<-20%*Gaji Else If Jabat='Manajer' then Gaji<-5000000 Tunj<-10%*Gaji Else Gaji<-3000000 Tunj<-5%*Gaji Endif Endif Pajak<-2.5%*Gaji Gaber<-Gaji+Tunj-Pajak Algoritma {algoritma utama} MasukDataKaryawan HitungGaji Write(NIK,Nama,Gaji,Tunj,Pajak,Gaber)
program indeks_kesukaran; uses crt; const max = 100; var pilih : byte; data : array [1..max,1..max] of integer; {data masukan nilai berupa matriks} jx : array [1..max] of integer;{jumlah skor tiap item soal} y : array [1..max] of integer;{jumlah tiap peserta} kelas_atas,kelas_bawah : array [1..max] of integer;{kelas atas dan kelas bawah matriks masukan} maks,min : array [1..max] of integer;{nilai maksimum dan nilai minimum data masukan tiap item soal} nama_max,item_max: integer;{jumlah peserta dan jumlah item soal pada data masukan} ik1: array [1..max] of real;{indeks kesukaran soal objektif} ik2: array [1..max] of real;{indeks kesukaran soal uraian} procedure masukan_data_matriksnya; writeln('masukan data matriksnya:'); write('jumlah peserta ');readln (nama_max); write('jumlah item soal '); readln (item_max); write ('siswa ke : ',nama,',','item ke: ',item,' ='); readln(data[nama,item]); procedure jumlah_skor_tiap_item_soal; var nama,item: integer; {writeln('menghitung jumlah skor tiap item soal');} jx[item]:= 0; jx[item] := jx[item] + data[nama,item]; procedure tampilkan_data_matriks; writeln('data matriksnya adalah'); write(data[nama,item]:3); write(jx[item]:3); procedure rumus_indeks_kesukaran;
writeln('menghitung indeks kesukaran soal objektif'); ik1[item] := 0; ik1[item]:= jx[item] / nama_max; procedure tampilan_rumus_indeks_kesukaran_soal_objektif; write ('indeks kesukaran item ke ',item,'','=',ik1[item]); if ik1[item] > 0.70 then writeln(' -----> mudah') if ik1[item] > 0.30 then writeln(' -----> sedang') writeln(' -----> sukar'); procedure menghitung_indeks_kesukaran_soal_objektif; masukan_data_matriksnya; jumlah_skor_tiap_item_soal; tampilkan_data_matriks; rumus_indeks_kesukaran; tampilan_rumus_indeks_kesukaran_soal_objektif; procedure jumlah_skor_tiap_peserta; {writeln('menghitung jumlah skor tiap peserta');} y[nama]:= 0; y[nama]:= y[nama] + data[nama,item]; procedure tampilkan_data_matriks_ii; var nama,item: integer; writeln ('data matriksnya adalah'); for nama := 1 to nama_max do write (data[nama,item]:3); write (y[nama]:3);
procedure sorting; var i,nama,item,simpan,simpan2: integer; writeln('data setelah diurutkan'); for i := 1 to nama_max do for nama:= 1 to nama_max -i do if y[nama] < y[nama+1] then simpan:=data[nama,item]; data[nama,item]:=data[nama+1,item]; data[nama+1,item]:=simpan; simpan2:=y[nama]; y[nama]:=y[nama+1]; y[nama+1]:=simpan2; procedure menghitung_kelas_atas; var nama,item,z:integer; writeln ('kelas atas'); z:= nama_max div 2; for nama := 1 to z do for item := 1 to item_max do write(data[nama,item]:3); write(y[nama]:3); procedure jumlah_kelas_atas; var nama,item,z: integer; kelas_atas[item]:=0; for nama:= 1 to z do kelas_atas[item]:= kelas_atas[item] + data[nama,item]; procedure matriks_kelas_atas; var nama,item,z :integer; writeln ('data matriks kelas atas adalah'); for nama := 1 to z do for item := 1 to item_max do write (data[nama,item]:3); write(y[nama]:3); write(kelas_atas[item]:3);
procedure menghitung_kelas_bawah; var nama,item,z: integer; writeln('kelas bawah'); z:=nama_max div 2; if nama_max mod 2 = 0 then for nama:=(z+1) to nama_max do write (data[nama,item]:3); write (y[nama]:3); end for nama := (z+2) to nama_max do write (data[nama,item]:3); write (y[nama]:3); write; write; procedure jumlah_kelas_bawah; var nama,item,z: integer; if nama_max mod 2 = 0 then kelas_bawah[item]:= 0; for nama:= (z+1) to nama_max do kelas_bawah[item]:= kelas_bawah[item]+data[nama,item]; end kelas_bawah[item]:= 0; for nama:= (z+2) to nama_max do kelas_bawah[item]:= kelas_bawah[item] + data[nama,item]; procedure matriks_kelas_bawah; var nama,item,z: integer; writeln ('data matriks kelas bawah adalah'); if nama_max mod 2 = 0 then for nama:= (z+1) to nama_max do
write(data[nama,item]:3); write(y[nama]:3); write(kelas_bawah[item]:3); end for nama:=(z+2) to nama_max do write(data[nama,item]:3); write(y[nama]:3); write(kelas_bawah[item]:3); procedure maksimum_minimum; var nama,item: integer; for item:=1 to item_max do min[item]:=100; if (data[nama,item] < min[item]) then min[item]:= data[nama,item]; writeln('data terkecil soal ke ',item,'',min[item]:3); maks[item]:=0; if (data[nama,item] >= maks[item]) then maks[item]:=data[nama,item]; writeln('data terbesar soal ke ',item,'',maks[item]:3); procedure rumus_indeks_kesukaran_uraian; ik2[item]:= 0; ik2[item]:= ((kelas_atas[item] + kelas_bawah[item]) - (2*min[item])) / ((2*nama_max)*(maks[item] - min [item]));
procedure tampilan_rumus_indeks_kesukaran_soal_uraian; var nama,item: integer; writeln('menghitung indeks kesukaran soal uraian'); write ('indeks kesukaran item ke ',item); writeln (ik2[item]); if ik2[item] > 0.70 then writeln(' -----> mudah') if ik2[item] > 0.30 then writeln(' -----> sedang') writeln(' -----> sukar'); procedure menghitung_indeks_kesukaran_soal_uraian; masukan_data_matriksnya; jumlah_skor_tiap_peserta; tampilkan_data_matriks_ii; sorting; tampilkan_data_matriks_ii; menghitung_kelas_atas; jumlah_kelas_atas; matriks_kelas_atas; jumlah_kelas_bawah; matriks_kelas_bawah; maksimum_minimum; rumus_indeks_kesukaran_uraian; tampilan_rumus_indeks_kesukaran_soal_uraian; {program utama} while true do clrscr; write('**********************<<menu>>************************'); write('******************************************************'); write('1. MENGHITUNG INDEKS KESUKARAN SOAL OBJEKTIF'); write('2. MENGHITUNG INDEKS KESUKARAN SOAL URAIAN'); write('3. KELUAR'); write('*******************************************************'); pilih:=0; while (pilih > 1) or (pilih < 3) do write('pilih nomor (1-3)?????'); readln(pilih); if (pilih > 1) or (pilih < 3) then case pilih of 1: Menghitung_indeks_kesukaran_soal_objektif; 2: Menghitung_indeks_kesukaran_soal_uraian; 3: Exit;
end.