Berikut adalah implementasi program sederhana untuk pengelolaan data mahasiswa menggunakan C++. Program ini mencakup:
- Menambahkan data mahasiswa.
- Menampilkan semua data mahasiswa.
- Menghapus data mahasiswa berdasarkan NIM.
- Mencari data mahasiswa berdasarkan NIM.
Kode Lengkap
#include <iostream>
#include <vector>
#include <string>
using namespace std;
// Struktur untuk menyimpan data mahasiswa
struct Mahasiswa {
string nim;
string nama;
string jurusan;
int angkatan;
};
// Vektor untuk menyimpan daftar mahasiswa
vector<Mahasiswa> dataMahasiswa;
// Fungsi untuk menambahkan data mahasiswa
void tambahMahasiswa() {
Mahasiswa m;
cout << "\nMasukkan NIM: ";
cin >> m.nim;
cin.ignore(); // Membersihkan buffer input
cout << "Masukkan Nama: ";
getline(cin, m.nama);
cout << "Masukkan Jurusan: ";
getline(cin, m.jurusan);
cout << "Masukkan Tahun Angkatan: ";
cin >> m.angkatan;
dataMahasiswa.push_back(m);
cout << "Data mahasiswa berhasil ditambahkan!\n";
}
// Fungsi untuk menampilkan semua data mahasiswa
void tampilkanMahasiswa() {
if (dataMahasiswa.empty()) {
cout << "\nTidak ada data mahasiswa.\n";
return;
}
cout << "\nDaftar Mahasiswa:\n";
cout << "NIM\t\tNama\t\tJurusan\t\tAngkatan\n";
for (const auto& m : dataMahasiswa) {
cout << m.nim << "\t" << m.nama << "\t" << m.jurusan << "\t" << m.angkatan << "\n";
}
}
// Fungsi untuk menghapus data mahasiswa berdasarkan NIM
void hapusMahasiswa() {
string nim;
cout << "\nMasukkan NIM mahasiswa yang ingin dihapus: ";
cin >> nim;
for (auto it = dataMahasiswa.begin(); it != dataMahasiswa.end(); ++it) {
if (it->nim == nim) {
dataMahasiswa.erase(it);
cout << "Data mahasiswa dengan NIM " << nim << " berhasil dihapus.\n";
return;
}
}
cout << "Mahasiswa dengan NIM " << nim << " tidak ditemukan.\n";
}
// Fungsi untuk mencari data mahasiswa berdasarkan NIM
void cariMahasiswa() {
string nim;
cout << "\nMasukkan NIM mahasiswa yang ingin dicari: ";
cin >> nim;
for (const auto& m : dataMahasiswa) {
if (m.nim == nim) {
cout << "\nData Mahasiswa Ditemukan:\n";
cout << "NIM: " << m.nim << "\n";
cout << "Nama: " << m.nama << "\n";
cout << "Jurusan: " << m.jurusan << "\n";
cout << "Angkatan: " << m.angkatan << "\n";
return;
}
}
cout << "Mahasiswa dengan NIM " << nim << " tidak ditemukan.\n";
}
// Menu utama
void menuUtama() {
int pilihan;
do {
cout << "\n=== Pengelolaan Data Mahasiswa ===\n";
cout << "1. Tambah Data Mahasiswa\n";
cout << "2. Tampilkan Data Mahasiswa\n";
cout << "3. Hapus Data Mahasiswa\n";
cout << "4. Cari Data Mahasiswa\n";
cout << "5. Keluar\n";
cout << "Pilih opsi: ";
cin >> pilihan;
switch (pilihan) {
case 1:
tambahMahasiswa();
break;
case 2:
tampilkanMahasiswa();
break;
case 3:
hapusMahasiswa();
break;
case 4:
cariMahasiswa();
break;
case 5:
cout << "Terima kasih telah menggunakan program ini!\n";
break;
default:
cout << "Pilihan tidak valid. Silakan coba lagi.\n";
break;
}
} while (pilihan != 5);
}
// Program utama
int main() {
menuUtama();
return 0;
}
Penjelasan Kode
- Struktur Data Mahasiswa
struct Mahasiswa
: Menyimpan informasi mahasiswa, termasuk NIM, nama, jurusan, dan tahun angkatan.
- Vektor
dataMahasiswa
- Digunakan untuk menyimpan daftar semua mahasiswa yang dimasukkan ke dalam sistem.
- Fungsi Utama
tambahMahasiswa()
: Menambahkan data mahasiswa baru ke dalam vektor.tampilkanMahasiswa()
: Menampilkan semua data mahasiswa dalam tabel sederhana.hapusMahasiswa()
: Menghapus data mahasiswa berdasarkan NIM dengan menggunakan iterator.cariMahasiswa()
: Mencari mahasiswa berdasarkan NIM dan menampilkan datanya jika ditemukan.
- Menu Utama
- Memberikan antarmuka untuk mengakses fungsi-fungsi pengelolaan data.
Contoh Output
=== Pengelolaan Data Mahasiswa ===
1. Tambah Data Mahasiswa
2. Tampilkan Data Mahasiswa
3. Hapus Data Mahasiswa
4. Cari Data Mahasiswa
5. Keluar
Pilih opsi: 1
Masukkan NIM: 12345
Masukkan Nama: Andi
Masukkan Jurusan: Teknik Informatika
Masukkan Tahun Angkatan: 2021
Data mahasiswa berhasil ditambahkan!
=== Pengelolaan Data Mahasiswa ===
1. Tambah Data Mahasiswa
2. Tampilkan Data Mahasiswa
3. Hapus Data Mahasiswa
4. Cari Data Mahasiswa
5. Keluar
Pilih opsi: 2
Daftar Mahasiswa:
NIM Nama Jurusan Angkatan
12345 Andi Teknik Informatika 2021
Fitur Tambahan
- Simpan dan Baca dari File: Gunakan pustaka
fstream
untuk menyimpan dan memuat data mahasiswa dari file. - Validasi Input: Tambahkan validasi agar NIM tidak boleh kosong atau duplikat.
- Sortir Data: Tambahkan opsi untuk menyortir data berdasarkan NIM, nama, atau angkatan.
Jika Anda ingin menambahkan fitur lain atau melakukan pengembangan lebih lanjut, beri tahu saya! 😊
Leave a Reply