Pages

Thursday, November 15, 2018

Menghitung Nilai Mahasiswa Menggunakan Program Sorting

 Program C++ menginput nilai mahasiswa ini adalah materi dari pertemuan pertama pada mata kuliah struktur data yaitu dengan materi array,struct, continuous dan selanjutnya materi sorting lalu dikembangkan sehingga kita mampu menginput, menghitung, dan mengurutkan hasil laporan nilai akhir mahasiswa.
Pada artikel kali ini akan menjelaskan step by step program secara detail.

 contoh tampilan pada saat program di jalankan.

Proses Input Data & Nilai


Hasil Nilai Akhir



Berikut adalah langkah-langkah Menginput Nilai Mahasiswa :



1.     Program Menginput Nilai Mahasiswa langkah pertama yaitu dimulai membuat strcut Mahasiswa.

Scriptnya adalah sebagai berikut:

#include <iostream>

#include <iomanip>
#include <conio.h>
using namespace std;

struct mahasiswa
{
int nim[100];
string nama[100];
char gender[50],l,L,p,P;
string gender1[50];
int nilai_akhir[50];
};

2.      Pembuatan Variabel  Pada Program Menginput Nilai Mahasiswa

Pembuatan Variable adalah proses pembuatan variable dalam sebuah kode program. Untuk membuat variable kita membutuhkan tipe data, untuk mewakili bentuk nilai yang akan disimpan pada sabuah nama.

a.      Pada variable “struct mahasiswa” mempunyai lima anggota yaitu, Nim [100] dengan tipe data int, Nama [100] dengan tipe data string, Gender [50],l,Lp,P dengan tipe data char, gender1 [50] dengan tipe data string, dan nilai_akhir [50] dengan tipe data int.

   Script nya adalah sebagai berikut:


struct mahasiswa
{
int nim[100];
string nama[100];
char gender[50],l,L,p,P;
string gender1[50];
int nilai_akhir[50];
};

b. Pada int main ada variabel “Mahasiswa b” mempunyai empat anggota yaitu,Tugas[50],N_Tugas[50],UTS[50],N_UTS[50],UAS[50],N_UAS[50],N_akhir[50],absen[50],x,z,j,l dengan tipe data int, N_absen[50] dengan tipe data float, y,nama[100][100] dengan tipe data char dan temp,U,Imaks dengan tipe data int.

 Script nya adalah sebagai berikut:

int main()
{
mahasiswa b;
int Tugas[50],N_Tugas[50],UTS[50],N_UTS[50],UAS[50],N_UAS[50],N_akhir[50],absen[50],x,z,j,l;
float N_absen[50];
char y,nama[100][100];
int temp,U, Imaks;

c.    Pada saat program di eksekusi, tampilan awal pada program yang akan muncul adalah judul dari program yang kita input dan perintah memasukan berapa banyak nama mahasiswa yang akan diinput.

Script nya adalah sebagai berikut:


awal:
cout<<"========= PROJECT AKHIR =========== "<<endl;
cout<<"=====MENGINPUT NILAI MAHASISWA====="<<endl;
cout<<"==================================="<<endl<<endl;
cout<<"@ Masukkan jumlah mahasiswa : ";
cin>>x;
cout<<"----------------------------------"<<endl;
d.    Proses selanjutnya pengulangan pada input yaitu,  untuk menentukan pengulangan dan perhitungan pada inputan data mahasiswa diwawali dengan deklarasi variable z=1 sebagai nomor input awal yang dimulai dari angka 1,z<=x akan memeriksa apakah inputan tidak sama dengan variable z<=x, jika iya maka z++ akan terus melakukan pengulangan sampai didapatkan kondisi dimana batas hitungan inputan sudah terpenuhi. Variabel z dibelakang “Nim Mahasiswa” merupakan nilai hitungan awal input data mahasiswa, karena sudah di tentukan diatas maka hitungan akan dimulai dengan angka 1 yang menandakan penginputan data untuk mahasiswa pertama. Kemdunian  Nim dan Nama Mahasiswa berisi variable struct elemen array yang berfungsi sebgai variable inputannya.

Script nya adalah sebagai berikut:
//input
for(int z=1;z<=x;z++){
cout<<"\n* Masukkan NIM Mahasiswa ke "<<z<<"  : ";
cin>>b.nim[z];
cout<<"* Masukkan Nama Mahasiswa ke "<<z<<" : ";
cin>>b.nama[z];
cout<<"* Masukkan Jenis Kelamin (L/P) : ";
cin>>b.gender[z];
if(b.gender[z]=='l' || b.gender[z]=='L'){
b.gender1[z] = "Laki";
}
else if(b.gender[z]=='p' || b.gender[z]=='P'){
b.gender1[z] = "Perempuan";
}
e.      Selanjutnya proses dalam mengolah nilai - nilai seperti Nilai Absen, Nilai Tugas, Nilai UTS, dan Nilai UAS untuk masuk kepada Nilai Akhir yaitu ("N_akhir").
Yang disetiap masing masing nilai terdapat pengolahan nilai yg berbeda beda.


Script nya adalah sebagai berikut:
cout<<"* Masukkan nilai Absensi "<<nama[z]<<"      : ";
//hitung nilai absensi
do{
cin>>absen[z];
}while(absen[z]>14);
N_absen[z] = (absen[z]*10)/14;

    cout<<"* Masukkan nilai Tugas "<<nama[z]<<"        : ";
    //hitung nilai tugas
cin>>Tugas[z];
if(Tugas[z]>100)
{
N_Tugas[z] = 20;

cout<<"* Masukkan nilai UTS  "<<nama[z]<<"            :   ";
//hitung nilai UTS
cin>>UTS[z];
if(UTS[z]>100)
{
N_UTS[z] = 30;

cout<<"* Masukkan nilai UAS "<<nama[z]<<"        :   ";
//hitung nilai UAS
cin>>UAS[z];
cout<<endl;
if(UAS[z]>100)
{
N_UAS[z] = 40;
N_akhir[z] = N_absen[z]+N_Tugas[z]+N_UTS[z]+N_UAS[z];
}
else
{
N_UAS[z] = (UAS[z]*40)/100;
N_akhir[z] = N_absen[z]+N_Tugas[z]+N_UTS[z]+N_UAS[z];
}
}
else
{
N_UTS[z] = (UTS[z]*30)/100;

cout<<"* Masukkan nilai UAS "<<nama[z]<<"       : ";
//hitung nilai UAS
cin>>UAS[z];
cout<<endl;
if(UAS[z]>100)
{
N_UAS[z] = 40;
N_akhir[z] = N_absen[z]+N_Tugas[z]+N_UTS[z]+N_UAS[z];
}
else
{
N_UAS[z] = (UAS[z]*40)/100;
N_akhir[z] = N_absen[z]+N_Tugas[z]+N_UTS[z]+N_UAS[z];
}
}
}
else
{
N_Tugas[z] = (Tugas[z]*20)/100;

cout<<"* Masukkan nilai UTS "<<nama[z]<<"          : ";
//hitung nilai UTS
cin>>UTS[z];
if(UTS[z]>100)
{
N_UTS[z] = 30;

cout<<"* Masukkan nilai UAS "<<nama[z]<<"            : ";
//hitung nilai UAS
cin>>UAS[z];
cout<<endl;
if(UAS[z]>100)
{
N_UAS[z] = 40;
N_akhir[z] = N_absen[z]+N_Tugas[z]+N_UTS[z]+N_UAS[z];
}
else
{
N_UAS[z] = (UAS[z]*40)/100;
N_akhir[z] = N_absen[z]+N_Tugas[z]+N_UTS[z]+N_UAS[z];
}
}
else
{
N_UTS[z] = (UTS[z]*30)/100;

cout<<"* Masukkan nilai UAS "<<nama[z]<<"          : ";
//hitung nilai UAS
cin>>UAS[z];
cout<<endl;
if(UAS[z]>100)
{
N_UAS[z] = 40;
N_akhir[z] = N_absen[z]+N_Tugas[z]+N_UTS[z]+N_UAS[z];
}
else
{
N_UAS[z] = (UAS[z]*40)/100;
N_akhir[z] = N_absen[z]+N_Tugas[z]+N_UTS[z]+N_UAS[z];
}
}
}
cout<<"========================== "<<endl;


f.   Nah, bagian ini adalah hasil dari inputan Mahasiswa diatas yg telah kita input tadi yaitu:NIM, Nama, Gender dan Nilai, dengan format memanggil variable dari masing - masing nama tersebut seperti "b.nim" untuk NIM, "b.nama" untuk Nama, "b.gender" untuk Gender, dan "N_akhir" hasil pengolahan dari nilai absen, nilai tugas, nilai uts, dan nilai uas.

Scriptnya adalah sebagai berikut :
} for(int z=1;z<=x;z++) { cout<<" Mahasiswa Ke : "<<z<<" "<<endl; cout<<endl; cout<<" NIM : "<<b.nim[z]<<endl; cout<<" Nama : "<<b.nama[z]<<endl; cout<<" Gender : "<<b.gender1[z]<<endl; cout<<" Nilai : "<<N_akhir[z]<<endl; cout<<"=========================="<<endl; } cout<<" Nilai Mahasiswa :"<<endl<<endl; for(int z=1;z<=x;z++) { cout<<b.nama[z]<<" = "<<N_akhir[z]<<endl; } for(z=1;z<=x;z++) cout<<N_akhir[z]<<endl;
g.  Yang terakhir adalah proses pengurutan dari masing - masing nama dan nilai diatas dengan format sorting dari nilai tertinggi sampai nilai terendah.

 Script nya adalah sebagai berikut:
//Proses Pengurutan U=z-1; for(z=1; z<=x-2; z++) { Imaks=z; for (j=z+1;j<=U;j++) { if(N_akhir[j] > N_akhir[Imaks]) Imaks=j; } temp=N_akhir[z]; N_akhir[z]=N_akhir [Imaks]; N_akhir [Imaks]=temp; cout<<endl; cout<<"\n--------------------------"<<endl; for (z=1; z<=x; z++) cout<<setw(3)<<N_akhir[z]; } cout<<"\n\n Nilai Akhir Mahasiswa:"<<endl; for(z=1; z<=x; z++) cout<<b.nama[z]<<" = "<<N_akhir[z]<<endl; }
proses sorting ini dapat menyesuaikan data lainnya,sehingga hasil yang didapatkan sesuai dengan jumlah nilai akhir.

sekian penjelasan mengenai Menghitung nilai akhir,Semoga bermanfaat teman-teman,wasallamualaikum..

1 comment: