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:
- Code::Blocks (IDE untuk C++)
- Compiler MinGW (biasanya sudah termasuk dalam instalasi Code::Blocks)
- 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
struct Mahasiswa { string nama; string nim; float ipk; };
2. Fungsi Tambah Data
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
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
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
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
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 fileifstream
untuk membaca dari fileios::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
- Buka Code::Blocks
- Buat project baru (Console Application)
- Salin kode lengkap ke file main.cpp
- 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.