“Struct/Stuktur Data Array”
Yo sobat Mahasiswa, mari kita lanjutkan materi koding yaitu "Struct/Stuktur Data". Silahkan juga lihat Struct/Stuktur Data pada postingan sebelumnya.
- Struct Array
Pada dasarnya, struct array sama konsepnya dengan array. namun bedanya struct mempunyai objek dimana kita hanya perlu menambahkan array sehingga bisa memangkas jumlah algoritma yang dituliskan.
Contoh:
struct nama_struct{tipe_data nama_variabel[indeks];}nama_objek;
atau
struct nama_struct{tipe_data nama_variabel;}nama_objek[indeks];
Untuk pemakaian array pada struct, tergantung dari peletakan array yang dibuat sehingga struct yang dibuat terlihat berbeda, namun hasilnya akan tetap sama.
Contoh:
struct sekolah{string nama[30];}sklh;
sama dengan
struct sekolah{string nama;}sklh[30];
Dalam pemakaian array, struct juga bisa ditambahkan dengan array dua dimensi dan tiga dimensi tergantung dari kebutuhan untuk membangun programnya. Dengan kata lain struct bisa memangkas waktu penggunaan variabel dengan efektif ditambah dengan fitur array membuat program tidak sulit untuk dibangun dalam waktu yang singkat.
- Contoh Program
Buatlah program menghitung nilai akhir mahasiswa dengan elemen dan objek array struct. perhitungan untuk nilai akhir adalah:
nilai akhir = 10% Tugas + 20% Kuis + 30% UTS + 40% UAS
//header #include <iostream> #include <conio.h> #include <windows.h> using namespace std; //pengganti std:: //deklarasi a, b untuk array int a, b; struct mahasiswa { // struktur data variabel mahasiswa string nama [5][5] = {{"Andi"}, {"Budi"}, {"Sari"}, {"Deni"}, {"Eri"}}; string huruf; int nim[5][5] = {{1801301083}, {1801301009}, {1801301089}, {1801301012}, {1801301045}}; int nAkhir, nTugas, nKuis, nUTS, nUAS; }mhs[5]; string nilaiHuruf() //fungsi penyeleksian kondisi nilai akhir ke nilai huruf { if (mhs[a].nAkhir >= 85) { mhs[a].huruf = "A"; } else if (mhs[a].nAkhir < 85 && mhs[a].nAkhir >= 70) { mhs[a].huruf = "B"; } else if (mhs[a].nAkhir < 70 && mhs[a].nAkhir >= 55) { mhs[a].huruf = "C"; } else if (mhs[a].nAkhir < 55 && mhs[a].nAkhir >= 40) { mhs[a].huruf = "D"; } else if (mhs[a].nAkhir < 40) { mhs[a].huruf = "E"; } return mhs[a].huruf; } main () //main program yang berjalan { char ulng; utama: system ("cls"); //menghapus tampilan pada layar cout << "Rekap Nilai Mahasiswa TI\n"; for (a = 0; a < 5; a++) { // perulangan inputan cout << "Mahasiswa ke-" << a+1 << endl; for (b = 0; b <= 0; b++) { //inputan cout << "Nama : " << mhs[a].nama[a][b] << endl; cout << "NIM : " << mhs[a].nim[a][b] << endl; cout << "Nilai Tugas : "; cin >> mhs[a].nTugas; cout << "Nilai Kuis : "; cin >> mhs[a].nKuis; cout << "Nilai UTS : "; cin >> mhs[a].nUTS; cout << "Nilai UAS : "; cin >> mhs[a].nUAS; } cout << endl; } for (a = 0; a < 5; a++) //perulangan hitungan { for (b = 0; b <= 0; b++) { mhs[a].nAkhir = (mhs[a].nTugas * 0.1) + (mhs[a].nKuis * 0.2) + (mhs[a].nUTS * 0.3) + (mhs[a].nUAS * 0.4); nilaiHuruf(); } } cout << "Rekap Nilai Telah Selesai\n"; cout << "Tekan ENTER untuk melanjutkan\n"; getch(); system("cls"); cout << "\t\t\t\t\t\t\t\tHasil Rekap Nilai\n"; cout << " Nama Mahasiswa NIM Nilai Tugas Nilai Kuis Nilai UTS Nilai UAS Nilai Akhir Nilai Huruf" << endl; for (a = 0; a < 5; a++) { // perulangan tabel for (b = 0; b <= 0; b++) { cout << a+1 << ". " << mhs[a].nama[a][b] << "\t\t\t" << mhs[a].nim[a][b]; cout << "\t\t" << mhs[a].nTugas << "\t\t" << mhs[a].nKuis << "\t\t" << mhs[a].nUTS << "\t\t" << mhs[a].nUAS << "\t\t"; cout << mhs[a].nAkhir << "\t\t" << nilaiHuruf() << endl; } } cout << endl; cout << "Mengulang ? [Y/T] : "; cin >> ulng; //penyeleksian kondisi if (ulng == 'Y' || ulng == 'y') { goto utama; //kembali ke deklarasi utama, mengarahkan program untuk kesana } else if (ulng == 'T' || ulng == 't') { return 0; //proses berhenti } }
Sobat bisa mencoba kodingan diatas dan memahaminya. Contoh programnya sendiri memiliki banyak variasi tergantung dari kreativitas oleh penulis program.
Sekian dari postingan blog kali ini. Semoga artikel ini dapat bermanfaat bagi sobat baik untuk mengerjakan tugas, menambah ilmu, maupun untuk sekedar menambah wawasan untuk media pembelajaran koding.