Kali ini kita akan mencetak nilai IPS (Indeks Prestasi Semester) dari seorang siswa bernama Yanuar Setiawan pada semester 4. Bahwa nilai IPS itu adalah:
IPS = Xn/ Xs
Dimana
IPS : indeks prestasi per semester
Xn : jumlah nilai untuk semua mata kuliah
Xs : total sks Untuk mencetak sebuah nilai IPS dengan input No, Nama, Mata kuliah, SKS, Tugas, UTS, UAS maka kita buat file dengan gedit atau dari terminal kita ketikkan sebagai berikut:
yanuar@yanuar-laptop:~$cat>ips.txt#ips.txt(nama file tabel yang akan kita buat)IPS = Xn/ Xs
Dimana
IPS : indeks prestasi per semester
Xn : jumlah nilai untuk semua mata kuliah
Xs : total sks Untuk mencetak sebuah nilai IPS dengan input No, Nama, Mata kuliah, SKS, Tugas, UTS, UAS maka kita buat file dengan gedit atau dari terminal kita ketikkan sebagai berikut:
Selanjutnya dalam terminal kita ketikkan
No Nama MatKul SKS Tugas UTS UAS
1 Yns ArKom 2 78 78 86
2 Yns Embeded 3 81 81 87
3 Yns SSC(SinyalSystemControl) 3 72 78 75
4 Yns PPL(PerangkatPengolahLangsung) 3 80 77 81
5 Yns RTOS(RealTimeOS) 3 76 76 81
6 Yns Mtk4 2 70 70 73
7 YnsBing4 2 71 70 83
8 YnsPEmbeded 3 80 71 87
9 Yns PSSC(PraktikumSSC) 3 60 67 65
10 Yns PPPL(PraktikumPPL) 6 77 80 86
11 Yns PRTOS(PraktikumRTOS) 3 67 51 6
Pada file di atas tabel memang tidak teratur karena setiap karakter spasi adalah pergantian kolom karena dalam program AWK sendiri input dalam program adalah field.
Selanjutnya kita membuat file yang saya beri nama program.txt. File ini berisi program awk yang nantinya akan digabungkan dengan file input yang di atas bernama ips.tx
Untuk membuatnya sama seperti cara di atas. Kemudian isikan file tersebut dengan listing program di bawah ini:
BEGIN{
print "\n IPK MAHASISWA"
print "No Nama MatKul SKS Tugas UTS UAS Rata2 Huruf Angka"
print "------------------------------------------------------------------------------" }
{if(NR>1)
{a=($5+$6+$7)/3}
{if(a>=91&&a<=100){b="A";c=4}
if(a>=81&&a<91){b="ab";c=3.5}
if(a>=71&&a<81){b="b";c=3}
if(a>=61&&a<71){b="bc";c=2.5}
if(a>=51&&a<61){b="c";c=2}
if(a>=41&&a<51){b="d";c=1.5}
if(a>=0 &&a<41){b="e";c=1};
if(NR>1)
printf $0 "%10d %6s %8.1f\n",a,b,$4*c}
}
BEGIN{sks=0}
{sks=sks+$4}
END{print "\njumlah sks= ",sks}
BEGIN{tot=0}
{tot=tot+($4*c)}
END{print "IPS mahasiswa= ",tot}
BEGIN{IPK=0}
{IPK=tot/sks}
END{printf "IPK mahasiswa = %0.2f\n\n",IP
Maka tampilan pada terminal shell kan tampil sebagai berikut:
IPK MAHASISWA
No Nama MatKul SKS Tugas UTS UAS Rata2 Huruf Angka
------------------------------------------------------------------------------
1 Yns ArKom 2 78 78 86 80 B 6.0
2 Yns Embeded 3 81 81 87 83 AB 10.5
3 Yns SSC 3 72 78 75 75 B 9.0
4 Yns PPL 3 80 77 81 79 B 9.0
5 Yns RTOS 3 76 76 81 77 B 9.0
6 Yns Mtk4 2 70 70 73 71 B 6.0
7 Yns Bing4 2 71 70 83 74 B 6.0
8 Yns PEmb1 3 80 71 87 79 B 9.0
9 Yns PSSC 3 60 67 65 64 BC 7.5
10 Yns PPPL 6 77 80 86 81 AB 21.0
11 Yns PRTOS 3 67 51 69 62 BC 7.5
jumlah sks= 33
IPS mahasiswa= 100.5
IPK mahasiswa = 3.05
0 komentar:
Posting Komentar