Project C++ CRUD Sederhana

Project C++ CRUD Sederhana

Project C++ CRUD Sederhana: Panduan Lengkap untuk Pemula

CRUD (Create, Read, Update, Delete) adalah operasi dasar yang penting dalam pengembangan aplikasi berbasis data. Dalam artikel ini, kita akan membuat program CRUD sederhana menggunakan C++ yang menyimpan data mahasiswa dalam file teks.

Program ini cocok untuk pemula yang ingin memahami:

  • Konsep dasar pemrograman C++
  • Manajemen file (File I/O)
  • Operasi dasar database sederhana
  • Struktur data dan algoritma dasar

Tools yang Dibutuhkan

Untuk mengikuti tutorial ini, Anda memerlukan:

  1. Code::Blocks (IDE untuk C++)
  2. Compiler MinGW (biasanya sudah termasuk dalam instalasi Code::Blocks)
  3. Pengetahuan dasar C++ (variabel, fungsi, loop, dll.)

Struktur Program CRUD

Program kita akan memiliki fitur berikut:

  • Menambahkan data mahasiswa baru
  • Menampilkan semua data mahasiswa
  • Mengedit data berdasarkan NIM
  • Menghapus data berdasarkan NIM
  • Penyimpanan data dalam file teks

Implementasi Kode Program

1. Struktur Data Mahasiswa

cpp
struct Mahasiswa {
    string nama;
    string nim;
    float ipk;
};

2. Fungsi Tambah Data

cpp
void tambahMahasiswa() {
    ofstream file("data_mahasiswa.txt", ios::app);
    Mahasiswa mhs;
    
    cout << "Masukkan Nama: ";
    cin.ignore();
    getline(cin, mhs.nama);
    cout << "Masukkan NIM: ";
    cin >> mhs.nim;
    cout << "Masukkan IPK: ";
    cin >> mhs.ipk;

    file << mhs.nama << "," << mhs.nim << "," << mhs.ipk << endl;
    file.close();
    
    cout << "Data berhasil ditambahkan!\n";
}

3. Fungsi Tampilkan Data

cpp
void tampilkanMahasiswa() {
    ifstream file("data_mahasiswa.txt");
    string nama, nim;
    float ipk;

    cout << "----------------------------------\n";
    cout << setw(20) << left << "Nama" << setw(15) << "NIM" << setw(5) << "IPK" << endl;
    cout << "----------------------------------\n";

    while (file >> ws, getline(file, nama, ',') && getline(file, nim, ',') && file >> ipk) {
        cout << setw(20) << left << nama << setw(15) << nim << setw(5) << ipk << endl;
    }

    file.close();
}

4. Fungsi Edit Data

cpp
void editMahasiswa() {
    string nimCari, nama, nim;
    float ipk;
    vector<Mahasiswa> data;
    bool ditemukan = false;

    cout << "Masukkan NIM mahasiswa yang ingin diedit: ";
    cin >> nimCari;

    ifstream file("data_mahasiswa.txt");
    while (file >> ws, getline(file, nama, ',') && getline(file, nim, ',') && file >> ipk) {
        if (nim == nimCari) {
            ditemukan = true;
            cout << "Masukkan Nama Baru: ";
            cin.ignore();
            getline(cin, nama);
            cout << "Masukkan IPK Baru: ";
            cin >> ipk;
        }
        data.push_back({nama, nim, ipk});
    }
    file.close();

    if (!ditemukan) {
        cout << "Data tidak ditemukan!\n";
        return;
    }

    ofstream fileOut("data_mahasiswa.txt");
    for (const auto& mhs : data) {
        fileOut << mhs.nama << "," << mhs.nim << "," << mhs.ipk << endl;
    }
    fileOut.close();

    cout << "Data berhasil diperbarui!\n";
}

5. Fungsi Hapus Data

cpp
void hapusMahasiswa() {
    string nimHapus, nama, nim;
    float ipk;
    vector<Mahasiswa> data;
    bool ditemukan = false;

    cout << "Masukkan NIM mahasiswa yang ingin dihapus: ";
    cin >> nimHapus;

    ifstream file("data_mahasiswa.txt");
    while (file >> ws, getline(file, nama, ',') && getline(file, nim, ',') && file >> ipk) {
        if (nim == nimHapus) {
            ditemukan = true;
        } else {
            data.push_back({nama, nim, ipk});
        }
    }
    file.close();

    if (!ditemukan) {
        cout << "Data tidak ditemukan!\n";
        return;
    }

    ofstream fileOut("data_mahasiswa.txt");
    for (const auto& mhs : data) {
        fileOut << mhs.nama << "," << mhs.nim << "," << mhs.ipk << endl;
    }
    fileOut.close();

    cout << "Data berhasil dihapus!\n";
}

6. Fungsi Menu Utama

cpp
int main() {
    int pilihan;
    do {
        cout << "\n=== CRUD Mahasiswa ===\n";
        cout << "1. Tambah Mahasiswa\n";
        cout << "2. Tampilkan Mahasiswa\n";
        cout << "3. Edit Mahasiswa\n";
        cout << "4. Hapus Mahasiswa\n";
        cout << "5. Keluar\n";
        cout << "Pilih menu: ";
        cin >> pilihan;

        switch (pilihan) {
            case 1: tambahMahasiswa(); break;
            case 2: tampilkanMahasiswa(); break;
            case 3: editMahasiswa(); break;
            case 4: hapusMahasiswa(); break;
            case 5: cout << "Keluar dari program.\n"; break;
            default: cout << "Pilihan tidak valid!\n";
        }
    } while (pilihan != 5);

    return 0;
}

Penjelasan Konsep Penting

1. File Handling

Program menggunakan:

  • ofstream untuk menulis ke file
  • ifstream untuk membaca dari file
  • ios::app untuk menambahkan data tanpa menghapus yang sudah ada

2. Vector untuk Manipulasi Data

Vector digunakan untuk:

  • Menyimpan data sementara saat proses edit/hapus
  • Memudahkan manipulasi data sebelum disimpan kembali ke file

3. Format Penyimpanan Data

Data disimpan dalam format:

Nama,NIM,IPK
Contoh: Berta Setiyono,12345678,3.75

Cara Menjalankan Program

  1. Buka Code::Blocks
  2. Buat project baru (Console Application)
  3. Salin kode lengkap ke file main.cpp
  4. Build and Run program


Kesimpulan

Program CRUD ini memberikan dasar yang kuat untuk memahami:

  • Operasi file dalam C++
  • Manajemen data sederhana
  • Konsep dasar database

Dengan menguasai konsep ini, Anda dapat mengembangkannya untuk membuat aplikasi yang lebih kompleks.

Comments

No comments yet. Why don’t you start the discussion?

Leave a Reply

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