Program Menghitung IPK dan IPS Menggunakan Fungsi, Prosedur, Pengulangan dan Percabangan - TeachMeSoft

Program Menghitung IPK dan IPS Menggunakan Fungsi, Prosedur, Pengulangan dan Percabangan

Program Menghitung IPK dan IPS Menggunakan Fungsi, Prosedur, Pengulangan dan Percabangan
Assalamualaikum teman-teman...
Saya akan berbagi sedikit mengenai program yang saya buat menggunakan kombinasi fungsi, prosedur, perulangan dan percabangan, walaupun sangat sederhana, semoga bisa bermanfaat bagi teman-teman...

Untuk yang ingin mengetahui cara menghitung IPK dan IPS secara lengkap teman-teman dapat langsung menuju link berikut :BEGINI !! Cara Menghitung IPK dan IPS

Deskripsi Program


Program sederhana menghitung IPK dan IPS, program ini hanya akan melakukan perhitungan dengan meng-input jumlah SKS dan jumlah bobot persemester saja, jadi program ini tidak secara terperinci meng-input semua mata kuliah, sks, nilai huruf dll.

Dimana proses perulangan dan perhitungan IPS akan diproses di prosedur, kemudian proses perhitungan akan diproses di fungsi, kemudian untuk menampilkan pesan sesuai tinggi rendahnya IPK akan menggunakan percabangan. Terakhir akan menampilkan nama, nim, semester dan total seluruh bobot, total seluruh sks dan IPK.


Source Code


#include <iostream>

using namespace std;

//Variabel Global
float total_bobot=0,total_sks=0,ips[5],jml_sks[15],jml_bobot[15] ;


//Prosedur
void jumlahSemester(int c){
for (int i=1;i<=c;i++){
cout<<"+++++++++++++++++++++++++++++++++++++++++++"<<endl;
cout<<"<< Semester ke-"<<i<<" >>"<<endl;
cout<<"| Jumlah SKS : ";cin>>jml_sks[i];
cout<<"| Bobot SKS : ";cin>>jml_bobot[i];
cout<<"-------------------------------------------"<<endl;

//Menghitung IPS
ips[i]=jml_bobot[i]/jml_sks[i];

//Menampilkan IPS
cout<<"Indeks Prestasi Semester (IPs) : "<<ips[i]<<endl;
cout<<"-------------------------------------------"<<endl;

/*Menjumlahkan total bobot dan total sks setiap
          proses perulangan */
total_bobot += jml_bobot[i];
total_sks += jml_sks[i];
}
}

//Fungsi
float hitungIPk(float a, float b){
float total;
total=total_bobot/total_sks;
return total;
}

main (){

//Variabel Lokal
int jml_sm,nim;
    float total_akhir;
string nama;

cout<<"==========================================="<<endl;
cout<<"| |"<<endl;
cout<<"| MENGHITUNG IPK & IPS MAHASISWA |"<<endl;
cout<<"| |"<<endl;
cout<<"==========================================="<<endl;
cout<<"| >>> Selamat Datang di Portal UTY <<< |"<<endl;
cout<<"-------------------------------------------"<<endl;
cout<<"| Nama Mahasiswa : "; getline(cin,nama);
cout<<"| NIM Mahasiswa : "; cin>>nim;
cout<<"| Anda Semester : "; cin>>jml_sm;
cout<<"-------------------------------------------\n\n";

//Memanggil Prosedur
jumlahSemester(jml_sm);

//Memanggil Fungsi
total_akhir=hitungIPk(total_sks,total_bobot);

cout<<"\n\n===========================================\n";
cout<<"| ---- Kartu Hasil Studi --- |\n";
cout<<"===========================================\n";
cout<<"| Nama Mahasiswa : "<<nama<<endl;
cout<<"| NIM Mahasiswa : "<<nim<<endl;
cout<<"| Semester : "<<jml_sm<<endl;
cout<<"-------------------------------------------\n";
cout<<"| Total seluruhan bobot : "<<total_bobot<<endl;
cout<<"| Total seluruhan SKS : "<<total_sks<<endl;
cout<<"| IPK Selama "<<jml_sm<<" Semester : "<<total_akhir<<endl;
cout<<"-------------------------------------------\n";
if(total_akhir>=3.51 && total_akhir<=4){
cout<<"===========================================\n";
cout<<"| SELAMAT !! Anda Lulus Predikat Pujian |\n";
cout<<"===========================================\n";
}else if(total_akhir>=3.01 && total_akhir<=3.50){
cout<<"===========================================\n";
cout<<"| IPK Anda Sangat Memuaskan |\n";
cout<<"===========================================\n";
}else if(total_akhir>=2.76 && total_akhir<=3){
cout<<"===========================================\n";
cout<<"| IPK Anda Memuaskan |\n";
cout<<"===========================================\n";
}else{
cout<<"===========================================\n";
cout<<"| Terus Tingkatkan IPK Anda |\n";
cout<<"===========================================\n";
}
}


Run Program


Run program Program Menghitung IPK dan IPS Menggunakan Fungsi, Prosedur, Pengulangan dan percabangan



Gambar Alur Proses Running


Gambar Alur Proses Running
Keterangan Alur :



Analisa


  • Tahap pertama mendeklarasikan dan menginisialisasi array sebagai variable global (variable ini dapat digunakan oleh program utama atau sub-sub program) dan tipe datanya adalah float.
    • total_bobot=0 
    • total_sks=0 
    • ips[5] 
    • jml_sks[15] 
    • jml_bobo[15] 
  • Kemudian mendeklarasikan jml_sm sebagai tipe data integer, total_akhir sebagai tipe data float dan nama, nim sebagai tipe data string, deklarasi variable diatas merupakan deklarasi variable local di fungsi main( ), jadi hanya bisa digunakan didalam fungsi main( ) saja tidak bisa digunakan diluar fungsi main( )
  • Pada saat running program, kita akan disuruh meng-input Nama Mahasiswa, NIM Mahasiswa dan Semester Anda, pada saat anda selesai meng-input semester, sebagai contoh Anda semester : 2, maka nilai tersebut akan masuk ke parameter prosedur jumlahSemester(jml_sm).
  • Data 2 tersebut akan masuk Prosedur jumlahSemester(int c), tepatnya akan ditampung di int c, nilai ini juga sebagai batas akhir perulangan.
  • Karena men-input 2 maka akan terjadi 2 kali perulangan jumlah SKS dan jumlah bobot.
  • Disini akan disuruh meng input nilai jumlah SKS dan jumlah bobot. 
  • Untuk mencari IPS (Indeks Prestasi Semester) rumusnya sebagai berikut :
    Rumus Menghitung IPs
  • Karena yang input sudah merupakan bilangan total maka tinggal dibagikan sebagai berikut :
    ips = jml_bobot/ jml_sks.
    Hasil ini akan langsung ditampilkan di variabel ips[i].
  • total_bobot += jml_bobot[i], artinya setiap kali jumlah bobot melakukan perulangan maka akan ditambah dengan nilainya sendiri. 
  • total_sks += jml_sks[i], artinya setiap kali jumlah sks melakukan perulangan maka akan ditambah dengan nilainya sendiri. 
  • Dari variable total_bobot dan variable total_sks akan dipanggil oleh fungsi float hitung IPk=(float a, float b), variable total_bobot akan ditampung di variable a dan variable total_sks akan ditampung di variable b.
  • Didalan fungsi hitungIpK, ada deklarasi variable local yaitu total sebagai tipe data float, variable total akan digunakan sebagai nilai tampung dari hasil perhitungan. 
  • Rumus IPK (Indeks Prestasi Kumulatif)
    Rumus IPK (Indeks Prestasi Kumulatif)
  • Rumus IPK dan IPS hampir sama yang membedakannya adalah, jika IPS menghitung persemester sedangkan IPK akan menjumlahkan jml_bobot tiap semetar dan akan dibagi dengan hasil penjumlahan total_sks tiap semester. 
  • Hasil pembagian IPK akan ditampung divariabel total, kemudian akan di return
  • Didalam fungsi main hasil perhitungan dari fungsi hitungIPk akan dipanggil dan dipindahkan ke variable total_akhir
  • Kemudian menampilkan Nama, NIM, semester, total seluruh bobot, total seluruh SKS dan Menampilkan hasil perhitungan IPK. 
  • Terakhir Nilai IPK akan diberi predikat, Jika IPK, 
    •  ≤ 2,75 : “Terus Tingkatkan IPK Anda” 
    •  ≥ 2,76 dan ≤ 3,00 : “IPK Anda Memuaskan” 
    •  ≥ 3,01 dan ≤ 3,50 : “IPK Anda Sangat Memuaskan” 
    •  ≥ 3,51 dan ≤ 4,00 : “Selamat !! Anda Lulus Predikat Pujian” 
  •  Selesai.


Disqus comments