Dalam AWK kita juga bisa menghitung IP, bagaimana caranya? berikut contohnya:
Sebelum kita membuat perhitungannya, seperti biasa kita buat terlebih dahulu tabel yang berisikan daftar prestasi mahasiswa, misalnya tabel prestasi Joko dari Teknik Komputer seperti berikut:
1 | JokoSusilo | BahasaInggris5 | 2 | 80 | 85 | 75 |
2 | JokoSusilo | BahasaIndonesia | 2 | 75 | 80 | 90 |
3 | JokoSusilo | PengolahanSinyalDigital | 2 | 80 | 70 | 75 |
4 | JokoSusilo | SistemEmbedded2 | 2 | 70 | 80 | 80 |
5 | JokoSusilo | KonsepJaringan | 2 | 80 | 85 | 90 |
6 | JokoSusilo | RekayasaPerangkatLunak | 2 | 90 | 90 | 90 |
7 | JokoSusilo | SistemPengaturanKomputer1 | 2 | 75 | 75 | 90 |
8 | JokoSusilo | P.PengolahanSinyalDigital | 2 | 80 | 80 | 80 |
9 | JokoSusilo | P.SistemEmbedded2 | 2 | 75 | 85 | 70 |
10 | JokoSusilo | P.KonsepJaringan | 2 | 80 | 65 | 75 |
11 | JokoSusilo | P.RekayasaPerangkatLunak | 2 | 75 | 80 | 90 |
12 | JokoSusilo | P.SistemPengaturanKomputer1 | 2 | 70 | 70 | 75 |
Dimana tabel diatas menunjukkan bahwa pada kolom pertama adalah kolom nomor, kolom kedua adalah nama Joko yakni Joko Susilo dan ketiga nama matakuliah, diikuti kolom keempat adalah jumlah sks, kelima nilai tugas, nilai uts kemudian terakhir nilai uas.
Disini yang harus kita cari adalah nilai per mata kuliah, kemudian kriteria nilai tersebut yakni dalam huruf, kemudian Indeks Prestasi mahasisw per Semester tersebut, yang dapat kita hitung dengan formula:
IPS = Xn/ Xs
IPS : indeks prestasi per semester
Xn : jumlah nilai untuk semua mata kuliah
Xs : total sks
Skala Penilaian Hasil Belajar
NILAI ANGKA | NILAI HURUF | NILAI NUMERIK | KATEGORI |
80 - 100 | A | 4 | Istimewa |
71 - 80 | AB | 3,5 | Baik Sekali |
66 - 70 | B | 3 | Baik |
61 - 65 | BC | 2,5 | Cukup Baik |
56 - 60 | C | 2 | Cukup |
41 - 55 | D | 1 | Kurang |
0 - 40 | E | 0 | Kurang Sekali |
awk '
BEGIN {print "\nMenghitung Indeks Prestasi semester"}
{print $0; $8 = ($5 + $6 + $7) / 3; print $8;
if($8>80) print $9,"A";
else if($8 > 70 && $8 <= 80) print $9,"AB";
else if($8 > 65 && $8 <= 70) print $9,"B";
else if($8 > 60 && $8 <= 65) print $9,"BC";
else if($8 > 55 && $8 <= 60) print $9,"C";
else if($8 > 40 && $8 <= 55) print $9,"D";
else if($8 <= 40) print $9,"E"}
{print $10}
{ if($8 > 80) num = 4;
else if($8 > 70 && $8 <= 80) num = 3.5;
else if($8 > 65 && $8 <= 70) num = 3;
else if($8 > 60 && $8 <= 65) num = 2.5;
else if($8 > 55 && $8 <= 60) num = 2;
else if($8 > 40 && $8 <= 55) num = 1;
else if($8 <= 40) num = 0}
{nx =+ num}
{nsks =+ $4}
END { print "\nIPS ="nx/nsks }' ip_joko
Hasilnya akan seperti demikian:
Menghitung Indeks Prestasi semester | ||||||
1 | JokoSusilo | BahasaInggris5 | 2 | 80 | 85 | 75 |
80 |
|
|
|
|
|
|
AB |
|
|
|
|
|
|
|
|
|
|
|
|
|
2 | JokoSusilo | BahasaIndonesia | 2 | 75 | 80 | 90 |
81.67 |
|
|
|
|
|
|
A |
|
|
|
|
|
|
|
|
|
|
|
|
|
3 | JokoSusilo | PengolahanSinyalDigital | 2 | 80 | 70 | 75 |
75 |
|
|
|
|
|
|
AB |
|
|
|
|
|
|
|
|
|
|
|
|
|
4 | JokoSusilo | SistemEmbedded2 | 2 | 70 | 80 | 80 |
76.67 |
|
|
|
|
|
|
AB |
|
|
|
|
|
|
|
|
|
|
|
|
|
5 | JokoSusilo | KonsepJaringan | 2 | 80 | 85 | 90 |
85 |
|
|
|
|
|
|
A |
|
|
|
|
|
|
|
|
|
|
|
|
|
6 | JokoSusilo | RekayasaPerangkatLunak | 2 | 90 | 90 | 90 |
90 |
|
|
|
|
|
|
A |
|
|
|
|
|
|
|
|
|
|
|
|
|
7 | JokoSusilo | SistemPengaturanKomputer1 | 2 | 75 | 75 | 90 |
80 |
|
|
|
|
|
|
AB |
|
|
|
|
|
|
|
|
|
|
|
|
|
8 | JokoSusilo | P.PengolahanSinyalDigital | 1 | 80 | 80 | 80 |
80 |
|
|
|
|
|
|
AB |
|
|
|
|
|
|
|
|
|
|
|
|
|
9 | JokoSusilo | P.SistemEmbedded2 | 1 | 75 | 85 | 70 |
76.67 |
|
|
|
|
|
|
AB |
|
|
|
|
|
|
|
|
|
|
|
|
|
10 | JokoSusilo | P.KonsepJaringan | 1 | 80 | 65 | 75 |
73.33 |
|
|
|
|
|
|
AB |
|
|
|
|
|
|
|
|
|
|
|
|
|
11 | JokoSusilo | P.RekayasaPerangkatLunak | 1 | 75 | 80 | 90 |
81.67 |
|
|
|
|
|
|
A |
|
|
|
|
|
|
|
|
|
|
|
|
|
12 | JokoSusilo | P.SistemPengaturanKomputer1 | 1 | 70 | 70 | 75 |
71.67 |
|
|
|
|
|
|
AB |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
IPS =3.5 |