Pengelolaan Data Mahasiswa dengan C++

Pengelolaan Data Mahasiswa dengan C++

Berikut adalah implementasi program sederhana untuk pengelolaan data mahasiswa menggunakan C++. Program ini mencakup:

  1. Menambahkan data mahasiswa.
  2. Menampilkan semua data mahasiswa.
  3. Menghapus data mahasiswa berdasarkan NIM.
  4. 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

  1. Struktur Data Mahasiswa
    • struct Mahasiswa: Menyimpan informasi mahasiswa, termasuk NIM, nama, jurusan, dan tahun angkatan.
  2. Vektor dataMahasiswa
    • Digunakan untuk menyimpan daftar semua mahasiswa yang dimasukkan ke dalam sistem.
  3. 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.
  4. 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

Your email address will not be published. Required fields are marked *