Membuat KHS dengan Menggunakan Tipe Bentukan dan Prosedur (Void)
Dalam dunia pemrograman, tipe bentukan dan prosedur (void) adalah dua konsep yang sering digunakan untuk mengorganisir dan mengelola data. Pada kesempatan kali ini, kita akan membahas bagaimana menggunakan tipe bentukan dan prosedur (void) dalam pembuatan Kartu Hasil Studi (KHS). Mari kita lihat bagaimana kedua konsep ini dapat mempermudah proses pembuatan KHS dan manfaatnya dalam pengembangan program.
Definisi dan Pengertian Tipe Bentukan
Tipe bentukan (struct) adalah cara untuk mengelompokkan beberapa variabel yang berbeda menjadi satu unit logis. Dalam hal ini, kita dapat menggunakan tipe bentukan untuk menggabungkan data seperti nama mahasiswa, mata kuliah, dan nilai menjadi satu kesatuan yang dapat diakses dan dikelola dengan mudah. Dengan mendefinisikan tipe bentukan, kita dapat membuat struktur data yang lebih kompleks dan terorganisir.
Definisi dan Pengertian Prosedur (Void)
Prosedur (void) adalah sebuah blok kode yang terdiri dari satu atau lebih pernyataan yang akan dieksekusi secara berurutan. Pada dasarnya, prosedur tidak mengembalikan nilai (void), tetapi digunakan untuk melaksanakan serangkaian tugas tertentu. Dalam pembuatan KHS, kita dapat menggunakan prosedur untuk melakukan perhitungan nilai rata-rata, mencetak KHS, atau tugas-tugas lain yang terkait dengan KHS.
Kelebihan Menggunakan Tipe Bentukan dan Prosedur (Void)
- Struktur Data yang Terorganisir: Dengan menggunakan tipe bentukan, kita dapat mengelompokkan data terkait menjadi satu kesatuan yang lebih mudah dikelola. Hal ini membantu dalam menjaga struktur data yang terorganisir dan memudahkan akses data.
- Reusabilitas Kode: Dengan menggunakan prosedur (void), kita dapat memisahkan tugas-tugas yang terkait dengan KHS ke dalam blok kode terpisah. Ini memungkinkan kita untuk menggunakan kembali kode tersebut dalam konteks yang berbeda atau bahkan dalam program-program lain yang membutuhkan fungsionalitas yang serupa.
- Peningkatan Keterbacaan: Penggunaan tipe bentukan dan prosedur (void) membantu meningkatkan keterbacaan kode program. Dengan memisahkan tugas-tugas terkait KHS ke dalam blok kode terpisah, kita dapat dengan mudah memahami dan memodifikasi bagian-bagian tertentu tanpa mempengaruhi fungsi lain dalam program.
Implementasi Tipe Bentukan dan Prosedur (Void) Digunakan Saat Apa Saja
- Pembuatan Data Mahasiswa : Dengan menggunakan tipe bentukan, kita dapat membuat struktur data untuk menyimpan informasi mahasiswa seperti nama, NIM, dan alamat. Hal ini memudahkan dalam pengelolaan data mahasiswa secara keseluruhan.
- Perhitungan Nilai Rata - rata : Dengan menggunakan prosedur (void), kita dapat membuat blok kode yang menghitung nilai rata - rata dari beberapa mata kuliah yang diambil oleh mahasiswa. Ini memungkinkan kita untuk menghitung nilai rata - rata dengan mudah dan menggunakannya dalam pembuatan KHS.
- Pencetakan KHS : Dalam prosedur terpisah, kita dapat mencetak KHS berdasarkan data mahasiswa dan hasil perhitungan nilai rata - rata. Hal ini memudahkan dalam menghasilkan output yang konsisten dan terstruktur untuk setiap mahasiswa.
Contoh Source Code
#include <iostream>
#include <string>
using namespace std;
const double PERS_TUGAS = 0.3; // Persentase nilai tugas
const double PERS_UTS = 0.3; // Persentase nilai UTS
const double PERS_UAS = 0.4; // Persentase nilai UAS
struct MataKuliah {
string namaDosen;
string kodeMataKuliah;
string namaMataKuliah;
int sks;
string kelompok;
string status;
double nilaiTugas;
double nilaiUTS;
double nilaiUAS;
double nilaiAkhir;
string keteranganHuruf;
};
void inputMataKuliah(MataKuliah& mk) {
cout << "Nama Dosen : ";
getline(cin, mk.namaDosen);
cout << "Kode Mata Kuliah : ";
getline(cin, mk.kodeMataKuliah);
cout << "Nama Mata Kuliah : ";
getline(cin, mk.namaMataKuliah);
cout << "SKS : ";
cin >> mk.sks;
cin.ignore();
cout << "Kelompok : ";
getline(cin, mk.kelompok);
cout << "Status : ";
getline(cin, mk.status);
cout << "Nilai Tugas : ";
cin >> mk.nilaiTugas;
cout << "Nilai UTS : ";
cin >> mk.nilaiUTS;
cout << "Nilai UAS : ";
cin >> mk.nilaiUAS;
cin.ignore();
mk.nilaiAkhir = (mk.nilaiTugas * PERS_TUGAS) + (mk.nilaiUTS * PERS_UTS) + (mk.nilaiUAS * PERS_UAS);
if (mk.nilaiAkhir >= 85)
mk.keteranganHuruf = "A";
else if (mk.nilaiAkhir >= 80)
mk.keteranganHuruf = "AB";
else if (mk.nilaiAkhir >= 70)
mk.keteranganHuruf = "B";
else if (mk.nilaiAkhir >= 65)
mk.keteranganHuruf = "BC";
else if (mk.nilaiAkhir >= 60)
mk.keteranganHuruf = "C";
else if (mk.nilaiAkhir >= 50)
mk.keteranganHuruf = "D";
else
mk.keteranganHuruf = "E";
}
void displayKHS(const MataKuliah* khs, int count) {
cout << "=====================================================================================" << endl;
cout << "----------------------------------- KHS UNIVERSITAS ---------------------------------" << endl;
cout << "=====================================================================================" << endl;
cout << "No. | Dosen | KdMk | Mata Kuliah | Sts | Klpk | N.tgs | N.UTS | N.UAS | N.Akhir | Ket" << endl;
cout << "=====================================================================================" << endl;
for (int i = 0; i < count; i++) {
cout << i + 1 << " | " << khs[i].namaDosen << " | " << khs[i].kodeMataKuliah << " | " << khs[i].namaMataKuliah
<< " | " << khs[i].status << " | " << khs[i].kelompok << " | " << khs[i].nilaiTugas << " | " << khs[i].nilaiUTS
<< " | " << khs[i].nilaiUAS << " | " << khs[i].nilaiAkhir << " | " << khs[i].keteranganHuruf << endl;
}
cout << "=====================================================================================" << endl;
B
double ips = 0.0;
for (int i = 0; i < count; i++) {
double keteranganIP = 0.0;
if (khs[i].keteranganHuruf == "A")
keteranganIP = 4.0;
else if (khs[i].keteranganHuruf == "AB")
keteranganIP = 3.5;
else if (khs[i].keteranganHuruf == "B")
keteranganIP = 3.0;
else if (khs[i].keteranganHuruf == "BC")
keteranganIP = 2.5;
else if (khs[i].keteranganHuruf == "C")
keteranganIP = 2.0;
else if (khs[i].keteranganHuruf == "D")
keteranganIP = 1.0;
else
keteranganIP = 0.0;
ips += (khs[i].sks * keteranganIP);
}
ips /= count;
int maxSks = 0;
if (ips >= 3.0)
maxSks = 24;
else if (ips >= 2.5)
maxSks = 20;
else
maxSks = 18;
cout << "IPS : " << ips << " | MAX SKS : " << maxSks << endl;
}
int main() {
const int MAX_MATKUL = 10; // Batas maksimum jumlah mata kuliah
MataKuliah khs[MAX_MATKUL];
int count = 0;
cout << "------------------------------- INPUT DATA MAHASISWA --------------------------------" << endl;
string namaMahasiswa;
cout << "1. Input Nama Mahasiswa : ";
getline(cin, namaMahasiswa);
string nimMahasiswa;
cout << "2. Input NIM Mahasiswa : ";
getline(cin, nimMahasiswa);
cout << endl;
cout << "---------------------------------- INPUT DATA KHS -----------------------------------" << endl;
char choice;
do {
inputMataKuliah(khs[count]);
count++;
cout << "Tambahkan mata kuliah lagi? (Y/T): ";
cin >> choice;
cin.ignore();
} while (choice == 'y' || choice == 'Y');
cout << endl;
cout << "-------------------------------------------------------------------------------------" << endl;
cout << "Nama : " << namaMahasiswa << endl;
cout << "NIM : " << nimMahasiswa << endl;
displayKHS(khs, count);
return 0;
}
Kesimpulan
Dalam pembuatan Kartu Hasil Studi (KHS), penggunaan tipe bentukan dan prosedur (void) dapat mempermudah pengelolaan data dan meningkatkan keterbacaan kode program. Dengan menggunakan tipe bentukan, kita dapat mengelompokkan data terkait menjadi satu kesatuan yang lebih terstruktur. Sementara itu, penggunaan prosedur (void) memungkinkan kita untuk memisahkan tugas-tugas terkait KHS ke dalam blok kode terpisah, sehingga kode program menjadi lebih mudah dipahami dan dikelola.
Dengan pemahaman yang baik tentang konsep tipe bentukan dan prosedur (void), Anda dapat mengembangkan program-program yang lebih terstruktur dan efisien. Selamat mencoba mengimplementasikan tipe bentukan dan prosedur dalam pembuatan KHS dan proyek - proyek pemrograman lainnya!
Komentar
Posting Komentar