Friday, March 3, 2017

Program untuk Menghitung IP dengan Nilai Huruf A, AB, B, BC, C, D, E ~ Pemrograman 2017

Selamat datang di Altekinfo
Di pagi yang cerah ini saya akan membagikan suatu PROGRAM untuk melakukan penghitungan pada INDEKS PRESTASI anda. 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 :




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 :

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 1 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
Algoritma dan Pemrograman
4
AB
Human Computer Interaction
2
B
Kalkulus 2
3
BC
Matematika Diskrit
3
C
Organisasi Komputer
3
A
Konsep Teknologi Informasi
2
A
Sistem Operasi
3
AB


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.

Kali ini 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++


#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;
    }
    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;
    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;
}

Seperti itulah program untuk menghitung IP dengan nilai huruf A, AB, B, BC, C, D, E
Sekian yang dapat saya sampaikan jumpa lagi di lain kesempatan


EmoticonEmoticon