Berikut adalah program sederhana untuk membuat dan mengelola agenda dengan C++. Program ini memungkinkan pengguna untuk:
- Menambahkan agenda.
- Melihat semua agenda.
- Menghapus agenda berdasarkan ID.
- Mencari agenda berdasarkan tanggal.
Kode Lengkap
#include <iostream>
#include <vector>
#include <string>
using namespace std;
// Struktur untuk menyimpan data agenda
struct Agenda {
int id;
string tanggal; // Format: YYYY-MM-DD
string waktu; // Format: HH:MM
string deskripsi;
};
// Vektor untuk menyimpan daftar agenda
vector<Agenda> daftarAgenda;
int nextId = 1; // ID unik untuk setiap agenda
// Fungsi untuk menambahkan agenda
void tambahAgenda() {
Agenda a;
a.id = nextId++;
cout << "\nMasukkan tanggal (YYYY-MM-DD): ";
cin >> a.tanggal;
cout << "Masukkan waktu (HH:MM): ";
cin >> a.waktu;
cin.ignore(); // Membersihkan buffer input
cout << "Masukkan deskripsi agenda: ";
getline(cin, a.deskripsi);
daftarAgenda.push_back(a);
cout << "Agenda berhasil ditambahkan!\n";
}
// Fungsi untuk menampilkan semua agenda
void tampilkanAgenda() {
if (daftarAgenda.empty()) {
cout << "\nTidak ada agenda.\n";
return;
}
cout << "\nDaftar Agenda:\n";
cout << "ID\tTanggal\t\tWaktu\tDeskripsi\n";
for (const auto& a : daftarAgenda) {
cout << a.id << "\t" << a.tanggal << "\t" << a.waktu << "\t" << a.deskripsi << "\n";
}
}
// Fungsi untuk menghapus agenda berdasarkan ID
void hapusAgenda() {
int id;
cout << "\nMasukkan ID agenda yang ingin dihapus: ";
cin >> id;
for (auto it = daftarAgenda.begin(); it != daftarAgenda.end(); ++it) {
if (it->id == id) {
daftarAgenda.erase(it);
cout << "Agenda dengan ID " << id << " berhasil dihapus.\n";
return;
}
}
cout << "Agenda dengan ID " << id << " tidak ditemukan.\n";
}
// Fungsi untuk mencari agenda berdasarkan tanggal
void cariAgenda() {
string tanggal;
cout << "\nMasukkan tanggal (YYYY-MM-DD) untuk mencari agenda: ";
cin >> tanggal;
bool ditemukan = false;
cout << "\nAgenda pada tanggal " << tanggal << ":\n";
cout << "ID\tTanggal\t\tWaktu\tDeskripsi\n";
for (const auto& a : daftarAgenda) {
if (a.tanggal == tanggal) {
cout << a.id << "\t" << a.tanggal << "\t" << a.waktu << "\t" << a.deskripsi << "\n";
ditemukan = true;
}
}
if (!ditemukan) {
cout << "Tidak ada agenda pada tanggal tersebut.\n";
}
}
// Menu utama
void menuUtama() {
int pilihan;
do {
cout << "\n=== Agenda Sederhana ===\n";
cout << "1. Tambah Agenda\n";
cout << "2. Tampilkan Semua Agenda\n";
cout << "3. Hapus Agenda\n";
cout << "4. Cari Agenda Berdasarkan Tanggal\n";
cout << "5. Keluar\n";
cout << "Pilih opsi: ";
cin >> pilihan;
switch (pilihan) {
case 1:
tambahAgenda();
break;
case 2:
tampilkanAgenda();
break;
case 3:
hapusAgenda();
break;
case 4:
cariAgenda();
break;
case 5:
cout << "Terima kasih telah menggunakan program agenda sederhana!\n";
break;
default:
cout << "Pilihan tidak valid. Silakan coba lagi.\n";
}
} while (pilihan != 5);
}
// Program utama
int main() {
menuUtama();
return 0;
}
Penjelasan Kode
- Struktur Data Agenda
struct Agenda
: Menyimpan informasi agenda, termasuk ID, tanggal, waktu, dan deskripsi.
- Vektor
daftarAgenda
- Digunakan untuk menyimpan daftar semua agenda yang dimasukkan ke dalam sistem.
- Fungsi Utama
tambahAgenda()
: Menambahkan agenda baru ke dalam vektor.tampilkanAgenda()
: Menampilkan semua agenda dalam format tabel sederhana.hapusAgenda()
: Menghapus agenda berdasarkan ID dengan menggunakan iterator.cariAgenda()
: Mencari agenda berdasarkan tanggal yang diberikan pengguna.
- Menu Utama
- Menyediakan antarmuka untuk pengguna mengakses fungsi-fungsi pengelolaan agenda.
Contoh Output
=== Agenda Sederhana ===
1. Tambah Agenda
2. Tampilkan Semua Agenda
3. Hapus Agenda
4. Cari Agenda Berdasarkan Tanggal
5. Keluar
Pilih opsi: 1
Masukkan tanggal (YYYY-MM-DD): 2024-01-01
Masukkan waktu (HH:MM): 10:00
Masukkan deskripsi agenda: Rapat awal tahun
Agenda berhasil ditambahkan!
=== Agenda Sederhana ===
1. Tambah Agenda
2. Tampilkan Semua Agenda
3. Hapus Agenda
4. Cari Agenda Berdasarkan Tanggal
5. Keluar
Pilih opsi: 2
Daftar Agenda:
ID Tanggal Waktu Deskripsi
1 2024-01-01 10:00 Rapat awal tahun
Fitur Tambahan
- Simpan dan Baca dari File: Gunakan pustaka
fstream
untuk menyimpan dan memuat data agenda dari file. - Validasi Input: Pastikan input tanggal dan waktu sesuai format yang diinginkan.
- Edit Agenda: Tambahkan fitur untuk mengedit agenda berdasarkan ID.
Jika Anda ingin menambahkan fitur lain atau mengembangkan lebih lanjut, beri tahu saya! 😊
Leave a Reply