struct Mahasiswa {
std::string nama;
int nim;
float nilai;
};
int main() {
const int jumlahMahasiswa = 3;
Mahasiswa dataMahasiswa[jumlahMahasiswa];
int pilihanMenu;
do {
// Menampilkan menu
std::cout << "\nMenu:\n";
std::cout << "1. Tampilkan Data Mahasiswa\n";
std::cout << "2. Urutkan Data Mahasiswa berdasarkan Nilai\n";
std::cout << "0. Keluar\n";
std::cout << "Pilih: ";
switch (pilihanMenu) {
case 1:
// Menampilkan data mahasiswa
displayMahasiswa(dataMahasiswa, jumlahMahasiswa);
break;
case 2:
// Mengurutkan data mahasiswa berdasarkan nilai
bubbleSort(dataMahasiswa, jumlahMahasiswa);
std::cout << "\nData mahasiswa setelah diurutkan berdasarkan nilai:\n";
displayMahasiswa(dataMahasiswa, jumlahMahasiswa);
break;
case 0:
// Keluar dari program
std::cout << "Terima kasih!\n";
break;
default:
std::cout << "Pilihan tidak valid. Silakan coba lagi.\n";
}
return 0;
}
Penjelasan program
Program ini adalah sebuah program C++ yang melakukan manajemen data mahasiswa.
program mendefinisikan sebuah struktur bernama `Mahasiswa` yang memiliki tiga anggota:
`nama` (string), `nim` (integer), dan `nilai` (float). Ini digunakan untuk menyimpan informasi
tentang setiap mahasiswa. Ada fungsi bernama `bubbleSort` yang menggunakan algoritma
bubble sort untuk mengurutkan array dari objek `Mahasiswa` berdasarkan nilai mereka
secara descending. Ini digunakan ketika pengguna memilih opsi untuk mengurutkan data
mahasiswa.Program meminta pengguna untuk memasukkan data mahasiswa, seperti NIM,
nama, dan nilai. Ada validasi input untuk memastikan bahwa NIM dan nilai yang dimasukkan
adalah nilai yang valid.Terdapat loop utama (`do-while`) yang menampilkan menu utama
kepada pengguna. Menu tersebut mencakup opsi untuk menampilkan data mahasiswa,
mengurutkan data berdasarkan nilai, dan keluar dari program
Pengguna memilih opsi melalui switch case, dan setiap case memanggil fungsi yang
sesuai (menampilkan data atau mengurutkannya). Jika pengguna memilih untuk keluar
(pilihan 0), program akan memberikan pesan terima kasih dan keluar dari loop. Fungsi
`displayMahasiswa` digunakan untuk menampilkan data mahasiswa dalam format yang rapi,
termasuk nomor, NIM, nama, dan nilai mahasiswa Ada validasi input untuk memastikan
bahwa NIM dan nilai yang dimasukkan oleh pengguna adalah nilai yang valid. Jika
pengguna memasukkan nilai yang tidak valid, program memberikan pesan dan meminta
input ulang.
Program berjalan dalam loop hingga pengguna memilih untuk keluar (memasukkan pilihan
0). Loop ini memberikan pengguna opsi untuk terus menjelajahi menu, menampilkan data
mahasiswa, dan melakukan operasi pengurutan. Terdapat penanganan kesalahan input
menggunakan `std::cin.clear()` dan `std::cin.ignore()` untuk mengatasi input yang tidak valid
dan membersihkan buffer. Program mengembalikan nilai 0 dari fungsi `main` sebagai tanda
bahwa program selesai dijalankan tanpa masalah.
#include <iostream>
#include <string>
#include <limits>
● Baris ini merupakan inklusi beberapa header file. `iostream` digunakan untuk operasi
input/output, `string` untuk menggunakan tipe data string, dan `limits` untuk
mengakses nilai-nilai batas dari tipe data
struct Mahasiswa {
std::string nama;
int nim;
float nilai;
};
● Mendefinisikan sebuah struktur `Mahasiswa` yang memiliki tiga anggota: `nama`
(string), `nim` (integer), dan `nilai` (float).
int main() {
const int jumlahMahasiswa = 3;
Mahasiswa dataMahasiswa[jumlahMahasiswa];
// ...
}`
std::getline(std::cin, dataMahasiswa[i].nama);
int pilihanMenu;
do {
// ...
} while (pilihanMenu != 0);
```
● Loop `do-while` untuk menampilkan menu dan menjalankan operasi terkait sampai
pengguna memilih untuk keluar (pilihanMenu == 0).
switch (pilihanMenu) {
// ...
}
● Menggunakan `switch` untuk memproses pilihan menu yang dimasukkan pengguna.
return 0;
}
```
● Mengembalikan nilai 0 sebagai tanda bahwa program selesai dengan sukses.
TAMPILAN OUTPUT