Studi Kasus Mencari Nilai IPK C++

1. Analisi Masalah
=>Mengitung IPK mahasiswa

2. Analisis

    - Input jumlah sks dan nilai dalam bentuk huruf [A-E]

    - Output nilai IPK berdasarkan jumlah sks dan nilai huruf

3. Algoritma

Procedure IPK (input/output matkul[50] ::char , jmk :: integer, bsks::integer)
Deklarasi
                x -> integer
                bernilai[100]->integer
                mutu[100]->integer
Deskripsi
                for(x=1;x<=jmk;x++):
                read(matkul[i]);
                if (matkul[i]=='A') then bnilai[i]=4;
                else if (matkul[i]=='B') then bernilai[i]=3;
                else if (matkul[i]=='C') then bernilai[i]=2;
                else if (matkul[i]=='D') then bernilai[i]=1;
                else if (matkul[i]=='E') then bernilai[i]=0;
                endif
                read(bsks[x]);
                if(bsks[x]>=1 && bsks[x]<=4) then bsks[x]= bsks[x];
                endif
                mutu[x]=bernilai[x]*bsks[x];
                endfor

                float tmutu=0, tbobot=0;
                for(y=1; y<=jmk; y++):
                tmutu+=mutu[y];
                tbobot+=bsks[y];
                           endfor
                           float ipk;
                            ipk=tmutu/tbobot;
                            write(ipk).

4. Program C++

#include <iostream>
#include <conio.h>
#include <string.h>
#include <cstdlib>

using namespace std;
class mahasiswa{
public:
int masuk ();
int element();
private:
int semua;
};
struct mhs{
char nama[20];
char nim[10];
char fakultas[25];
char prodi[20];
char alamat[40];
};

class makul{
public:
int input();
private:
int id[10];
string kuliah[50];
char wp[5];
int sks[10];
string nilai[5];
};
int mahasiswa :: masuk (){
mhs daftar;
cout<<"Nama : "; cin>>daftar.nama;
cout<<"Nim : "; cin>>daftar.nim;
cout<<"Fakultas : "; cin>>daftar.fakultas;
cout<<"Prodi : "; cin>>daftar.prodi;
cout<<"Alamat : "; cin>>daftar.alamat;
}

int makul::input(){
cout<<endl;
cout<<"===============INPUTKAN HASIL STUDI================"<<endl<<endl;
int semua;
cout<<"Masukkan jumlah matakuliah : "; cin>>semua;

string A,a,B,b,C,c,D,d,E,e;
int kali,jumlah=0,jumsks=0;
int x=0;
while(x<semua){
cout<<"Kode : ";cin>>id[x];
cout<<"matakuliah : "; cin>>kuliah[x];
cout<<"W/P : "; cin>>wp[x];
cout<<"SKS : "; cin>>sks[x];
cout<<"nilai: "; cin>>nilai[x];
cout<<endl;

if(nilai[x]=="A"||nilai[x]=="a"){
kali=4*sks[x];
}else if(nilai[x]=="B"||nilai[x]=="b"){
kali=3*sks[x];
}else if(nilai[x]=="C"||nilai[x]=="c"){
kali=2*sks[x];
}else if(nilai[x]=="D"||nilai[x]=="d"){
kali=1*sks[x];
}else if(nilai[x]=="E"||nilai[x]=="e"){
kali=0*sks[x];
}else{
cout<<"Nilai hanya sampai A-E"<<endl;
break;
}

kali=kali+kali;
jumsks=jumsks+sks[x];
x++;
}
float ipk=kali/jumsks;
cout<<endl;
cout<<"******************"<<endl;
cout<<"jumlah sks yang diambil :"<<jumsks<<endl;
cout<<"jumlah mata kuliah yang diambil : "<<semua<<endl;
cout<<"IPK : "<<endl;
cout<<"*******************";
}
int main(){
mahasiswa panggil;
panggil.masuk();

makul data;
data.input();
return 0;
}

6. Eksekusi

Comments