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/Flowchart
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).
=>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/Flowchart
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. Test Menggunakan Data
→input : Nama :hiwilma
Nim:1500018135
Fakultas:fti
Prodi:informatika
Alamat:semitau
Jumlah
matakuliah:3
Kode:1
Matakuliah:kalkulus
w/p:w
sks:3
nilai:a
Kode:2
Matakuliah:pti
w/p:w
sks:2
nilai:a
Kode:3
Matakuliah:pkn
w/p:w
sks:3
nilai:b
→output : jumlah sks yang diambil:8
Jumlah
matakuliah yang diambil:3
Ipk:
5. 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
sekian postingan kali ini semoga bermanfaat,
Wassalamu'alaikum wr.wb
Tidak ada komentar:
Posting Komentar