You are on page 1of 6

Penghitungan Indeks Prestasi

Dengan C/C++ (Tanpa Database)

Fadlika Dita Nurjanto


fadlikadn@gmail.com
http://fadlikadn.wordpress.com

Lisensi Dokumen:
Copyright © 2003-2011 IlmuKomputer.Com
Seluruh dokumen di IlmuKomputer.Com dapat digunakan, dimodifikasi dan
disebarkan secara bebas untuk tujuan bukan komersial (nonprofit), dengan syarat
tidak menghapus atau merubah atribut penulis dan pernyataan copyright yang
disertakan dalam setiap dokumen. Tidak diperbolehkan melakukan penulisan ulang,
kecuali mendapatkan ijin terlebih dahulu dari IlmuKomputer.Com.

Di dalam pendidikan, evaluasi dilakukan untuk memetakan


kemampuan seorang siswa dalam menyerap materi
pelajaran yang telah diberikan. Pada level SD sampai SLTA,
evaluasi dilakukan setiap 1 semester sekali (untuk
kurikulum saat ini) dan menggunakan rapot sebagai acuan
prestasi yang sudah diraih. Nilai pada rapor berkisar 0-10
atau 0-100. Seorang siswa dinyatakan naik kelas jika
memenuhi standar minimal yang telah ditetapkan.
Saat kuliah, sistem penilaian berubah drastis. Di level
perguruan tinggi dikenal dengan istilah Indeks Prestasi atau
lebih sering disebut IP. IP adalah sistem penilaian yang
digunakan untuk evaluasi yang menentukan apakah seorang mahasiswa sudah menguasai
materi yang diberikan selama masa perkuliahan. IP dibagi menjadi 2, yaitu Indeks Prestasi
Semester (IPS) dan Indeks Prestasi Kumulatif (IPK).

IPS adalah indeks prestasi berdasarkan capaian nilai mata kuliah per semesternya.
Sementara IPK adalah hasil rata-rata dari IPS yang dicapai setiap semesternya. IPK inilah
yang menjadi salah satu kunci pertama seorang sarjana dalam mencari pekerjaan. Sebelum
menentukan IPK, kita harus mencari IPS kita terlebih dulu, kemudian baru di rata-rata
dengan hasil IPS yang lain. Adapun rumus mencari IPS adalah sebagai berikut :

∑𝒏
𝒊=𝟏 𝒃𝒐𝒃𝒐𝒕 𝒎𝒂𝒕𝒂 𝒌𝒖𝒍𝒊𝒂𝒉 𝒌𝒆−𝒊 𝑿 𝒏𝒊𝒍𝒂𝒊 𝒎𝒂𝒕𝒂 𝒌𝒖𝒍𝒊𝒂𝒉 𝒌𝒆−𝒊
RUMUS IPS =
𝒋𝒖𝒎𝒍𝒂𝒉 𝑺𝑲𝑺 𝒚𝒂𝒏𝒈 𝒅𝒊𝒂𝒎𝒃𝒊𝒍 𝒅𝒂𝒍𝒂𝒎 𝟏 𝒔𝒆𝒎𝒆𝒔𝒕𝒆𝒓

Berbeda dengan sistem rapot, sistem penilaian SKS menggunakan huruf. Masing-masing
huruf merepresentasikan nilai angka. Nilai angka pada sistem SKS berkisar antara 0 sampai
4, bukan 0 sampai 10. Berikut tabel konversi nilai huruf ke nilai angka pada sistem SKS :

Komunitas eLearning IlmuKomputer.Com


Copyright © 2003-2011 IlmuKomputer.Com 1
Nilai Huruf Nilai Angka
A 4
AB 3,5
B 3
BC 2,5
C 2
D 1
E 0
Tabel konversi nilai huruf - angka

Untuk mempermudah penjelasan, saya contohkan hasil IP saya semester 2 kemarin. Saya
mengambil 20 SKS yang dibagi menjadi 7 mata kuliah. Adapun detail bobot SKS masing-
masing mata kuliah beserta nilainya adalah sebagai berikut :

Semester 2
Mata Kuliah Jumlah SKS Nilai
Agama Islam 2 AB
Algoritma dan Struktur Data 4 B
Kalkulus 2 3 BC
Matematika Diskrit 3 C
Organisasi Komputer 3 A
Pengantar Ilmu Lingkungan 2 A
Teori Graf dan Otomata 3 AB

Berdasarkan nilai mata kuliah yang saya capai, IP yang saya dapat adalah 3,15. Sekarang
pertanyaannya, bagaimana cara menyimpulkan 3,15 adalah IP saya?
Berikut ini adalah langkah-langkah yang digunakan untuk mencari IP dalam waktu semester
(IPS) :

- Konversikan nilai masing-masing mata kuliah ke dalam nilai angka (sesuai dengan
range nilai pada tabel)
- Kalikan nilai masing-masing mata kuliah dengan bobot SKS mata kuliah tersebut.
- Kemudian jumlahkan semua hasil perkalian mata kuliah dengan bobot SKS.
- Hasil penjumlahan dibagi dengan jumlah SKS yang diambil dalam 1 semester, hasil
pembagian inilah yang disebut IP (Indeks Prestasi) Semester.
- IP berkisar dari 0 sampai 4.

Komunitas eLearning IlmuKomputer.Com


Copyright © 2003-2011 IlmuKomputer.Com 2
Untuk mempermudah rekap, buat excel dengan tampilan seperti berikut :
(Untuk mengetahui rumus yang digunakan, double click pada tabel excel di bawah)

No. Mata Kuliah Jumlah SKS Nilai Huruf Nilai Angka SKS * Nilai Angka
1 Agama Islam 2 AB 3,5 7
2 Algoritma dan Struktur Data 4 B 3 12
3 Kalkulus 2 3 BC 2,5 7,5
4 Matematika Diskrit 3 C 2 6
5 Organisasi Komputer 3 A 4 12
6 Pengantar Ilmu Lingkungan 2 A 4 8
7 Teori Graf dan Otomata 3 AB 3,5 10,5
Total SKS yang diambil 20 Total Bobot 63

IP yang didapat 3,15

Penjelasan Tabel :
- Kolom “Nilai Angka” merupakan hasil dari penyeleksian nilai huruf yang ada di
kolom “Nilai Huruf”. Nilai angka yang dihasilkan sesuai dengan tabel konversi nilai di
atas.
- Kolom “SKS * Nilai Angka” merupakan hasil perkalian jumlah SKS masing-masing
kuliah dengan hasil yang didapat pada mata kuliah tersebut.
- Baris “Jumlah SKS yang diambil” merupakan akumulasi dari semua SKS pada
masing-masing mata kuliah.
- Baris “Jumlah Bobot” merupakan akumulasi hasil perkalian jumlah SKS dengan nilai
angka yang didapat pada masing-masing mata kuliah.
- IP didapatkan dengan cara membagi jumlah total bobot dengan jumlah total SKS.
Pada worksheet di atas, IP didapat dengan rumus “=F9/C9”. Cell F9 menunjukkan
cell tempat total SKS berada, sementara cell C9 menunjukkan cell tempat total
bobot berada.

Komunitas eLearning IlmuKomputer.Com


Copyright © 2003-2011 IlmuKomputer.Com 3
Setelah manual cara penghitungan IP diketahui, kita akan dengan mudah
mengimplementasikannya ke dalam source code. Source code yang akan digunakan adalah
bahasa C/C++. Source code beserta penjelasannya adalah sebagai berikut :

Implementasi dengan C/C++


/*
Penghitungan IP dengan menggunakan C/C++ (Tanpa Database)
Fadlika Dita Nurjanto
Teknik Informatika
Institut Teknologi Sepuluh Nopember, Surabaya
Blog : fadlikadn.wordpress.com
E-mail : fadlikadn@gmail.com
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <algorithm>

//tipe data buatan, untuk menyimpan detail masing-masing mata kuliah


typedef struct makul
{
char nama[101];
int sks;
char nilaiHuruf[3];
double nilaiAngka;
}tMakul;

tMakul transkrip[144];

//fungsi yang digunakan untuk mengkonversi nilai huruf menjadi nilai angka
float decisionAngka(int sumMakul,int i)
{
double result;
printf("%s\n",transkrip[i].nilaiHuruf);
int angka;
if(transkrip[i].nilaiHuruf[0] == 'A')
{
result = 4;
if(transkrip[i].nilaiHuruf[1] == 'B')
result = 3.5;
}
else if(transkrip[i].nilaiHuruf[0] == 'B')
{
result = 3;
if(transkrip[i].nilaiHuruf[1] == 'C')
result = 2.5;
}
else if(transkrip[i].nilaiHuruf[0] == 'C')
{
result = 2;
}
else if(transkrip[i].nilaiHuruf[0] == 'D')
{
result = 1;

Komunitas eLearning IlmuKomputer.Com


Copyright © 2003-2011 IlmuKomputer.Com 4
}
else
{
result = 0;
}
return result;
}

//fungsi yang digunakan untuk memasukkan data mata kuliah


void InputMakul(int sumMakul)
{
char temp[2];
printf("Untuk masing-masing mata kuliah,\n\n");
gets(temp);
for(int i=0; i<sumMakul; i++)
{
printf("Mata Kuliah : ");
gets(transkrip[i].nama);
printf("Jumlah SKS : ");
scanf("%d",&transkrip[i].sks);
printf("Nilai Huruf : ");
gets(temp);
gets(transkrip[i].nilaiHuruf);
transkrip[i].nilaiAngka = decisionAngka(sumMakul,i);
printf("\n");
}
}

//fungsi yang digunakan unuk menampilkan detail mata kuliah


void displayNilai(int semester, char name[101],char nrp[101], int summakul)
{
system("cls");
float total=0,multiResult,IP;
int jumSKS=0;
printf("Transkrip Nilai Semester %d\n",semester);
printf("Nama Mahasiswa : %s\n",name);
printf("NRP : %s\n",nrp);

printf("===========================================================================\n"
);
printf("No. | Mata Kuliah | SKS | Nilai Huruf | Nilai Angka | SKS*Nilai angka |\n");
for(int i=0;i<summakul;i++)
{
printf("%d ",i+1);
printf("%s ",transkrip[i].nama);
printf("%d ",transkrip[i].sks);
printf("%s ",transkrip[i].nilaiHuruf);
printf("%.2f ",transkrip[i].nilaiAngka);
multiResult = transkrip[i].sks * transkrip[i].nilaiAngka;
printf("%.2f\n",multiResult);
total += multiResult;
jumSKS += transkrip[i].sks;
}
IP = total / jumSKS;

Komunitas eLearning IlmuKomputer.Com


Copyright © 2003-2011 IlmuKomputer.Com 5
printf("\n\n\n");
printf("IP = %.2f\n",IP);
}

//fungsi utama
int main()
{
char name[101],temp[2];
char nrp[101];
int summakul,semester;
printf("Transkrip Nilai Semester : ");
scanf("%d",&semester);
printf("Nama Mahasiswa : ");
gets(temp);
gets(name);
printf("NRP : ");
gets(nrp);
printf("Jumlah Mata Kuliah : ");
scanf("%d",&summakul);
InputMakul(summakul);
displayNilai(semester,name,nrp,summakul);
return 0;
}

Biografi Penulis
Fadlika Dita Nurjanto. Menyelesaikan pendidikan di SD 2
Wonosobo tahun 2004, SMP 1 Wonosobo tahun 2007, dan SMK 1
tahun 2010. Sekarang berstatus sebagai mahasiswa Teknik
Informatika Institut Teknologi Sepuluh Nopember, Surabaya.
Artikel menarik lainnya bisa ditemukan di
http://fadlikadn.wordpress.com. Sharing dengan penulis bisa kirim
email ke fadlikadn@gmail.com.

Komunitas eLearning IlmuKomputer.Com


Copyright © 2003-2011 IlmuKomputer.Com 6

You might also like