Project Peternakan Ayam
Project Peternakan Ayam
Halo Guys! Pada kesempatan kali ini, saya dengan senang hati akan memperkenalkan sebuah program sederhana yang tentunya akan sangat membantu dalam mengelola data ayam kampung di peternakan. Program ini diberi judul "Project Data Peternakan Ayam dengan Menggunakan Operasi File". Oh iya, program ini telah dikembangkan oleh kelompok ALPRO-4 dari kelas 4210. mari kita lihat kode program yang akan kita bahas:
//JUDUL : PROJECT DATA PETERNAKAN AYAM DENGAN MENGGUNAKAN OPERASI FILE
//AUTHOR : KELOMPOK ALPRO-4
//KELAS : 4210
//ANGGOTA :
//A11.2022.14223 (MUHAMMAD GHANI RAHMADANI)
//A11.2022.14176 (VIKTOR WAHYU NUGROHO)
//A11.2022.14814 (FIKRI LUQMAN PRATAMA)
//A11.2022.14812 (MOHAMMAD AVISCENA ZAIDAN)
#include <iostream>//Pustaka header yang menyediakan aliran masukan dan keluaran dasar dalam C++
#include <fstream>//Pustaka header yang menyediakan aliran masukan dan keluaran untuk operasi file
#include <vector>//Pustaka header ang menyediakan struktur data dinamis untuk menyimpan elemen dalam urutan
using namespace std;
class AyamKampung {
private:
int nomorKandang; // Nomor identifikasi kandang ayam.
int jumlahVaksin; // Jumlah vaksin yang telah diberikan kepada ayam.
int umur; // Umur ayam dalam bulan.
public:
// Konstruktor untuk inisialisasi objek AyamKampung.
AyamKampung(int _nomorKandang, int _jumlahVaksin, int _umur) : nomorKandang(_nomorKandang), jumlahVaksin(_jumlahVaksin), umur(_umur) {}
// Mendapatkan nomor kandang ayam.
int getNomorKandang() const {
return nomorKandang;
}
// Mendapatkan jumlah vaksin yang telah diberikan kepada ayam.
int getJumlahVaksin() const {
return jumlahVaksin;
}
// Mendapatkan umur ayam dalam bulan.
int getUmur() const {
return umur;
}
};
// Kelas Peternakan merepresentasikan peternakan yang mengelola data ayam kampung.
class Peternakan {
private:
vector<AyamKampung> dataAyam; // Vektor untuk menyimpan data ayam kampung.
string namaFile; // Nama file untuk penyimpanan data.
public:
// Fungsi untuk menambahkan data ayam ke dalam vektor dataAyam dan menyimpannya ke dalam file.
void tambahAyam() {
int nomorKandang, jumlahVaksin, umur;
// Meminta input dari pengguna untuk nomor kandang, jumlah vaksin, dan umur ayam.
cout << "Masukkan nomor kandang: ";
cin >> nomorKandang;
cout << "Masukkan jumlah vaksin: ";
cin >> jumlahVaksin;
cout << "Masukkan umur ayam (bulan): ";
cin >> umur;
AyamKampung ayam(nomorKandang, jumlahVaksin, umur);
dataAyam.push_back(ayam);
// Membuka file dengan menggunakan objek ofstream dan mode ios::app untuk menambahkan data di akhir file.
ofstream file(namaFile, ios::app);
// Jika file berhasil dibuka, maka data ayam (nomorKandang, jumlahVaksin, umur) ditambahkan ke dalam file dengan menggunakan operator <<.
if (file.is_open()) {
file << nomorKandang << " " << jumlahVaksin << " " << umur << endl;
// Setelah itu, file ditutup dengan menggunakan fungsi close().
file.close();
cout << "Data berhasil ditambahkan dan disimpan ke file " << namaFile << endl;
} else {
cout << "Data berasil ditambahkan " << namaFile << endl;
}
}
void tampilkanData() const {
cout << endl;
cout << "Data Ayam:" << endl;
// Tanda '&' pada parameter 'const AyamKampung& ayam' menunjukkan bahwa 'ayam' adalah referensi ke objek 'AyamKampung'.
for (const AyamKampung& ayam : dataAyam) {
cout << "Nomor Kandang: " << ayam.getNomorKandang() << endl;
cout << "Jumlah Vaksin: " << ayam.getJumlahVaksin() << endl;
cout << "Umur: " << ayam.getUmur() << " bulan" << endl;
cout << endl;
}
}
void tampilkanDataJumlahVaksin() const {
int jumlahVaksin;
cout << "Masukkan jumlah vaksin: ";
cin >> jumlahVaksin;
cout << "Data Ayam dengan Jumlah Vaksin " << jumlahVaksin << ":" << endl;
// Tanda '&' pada parameter 'const AyamKampung& ayam' menunjukkan bahwa 'ayam' adalah referensi ke objek 'AyamKampung'.
for (const AyamKampung& ayam : dataAyam) {
if (ayam.getJumlahVaksin() == jumlahVaksin) {
cout << "Nomor Kandang: " << ayam.getNomorKandang() << endl;
cout << endl;
}
}
}
void tampilkanDataUmur() const {
int umur;
cout << "Masukkan umur ayam: ";
cin >> umur;
cout << "Data Ayam dengan Umur " << umur << " bulan:" << endl;
// Tanda '&' pada parameter 'const AyamKampung& ayam' menunjukkan bahwa 'ayam' adalah referensi ke objek 'AyamKampung'.
for (const AyamKampung& ayam : dataAyam) {
if (ayam.getUmur() == umur) {
cout << "Nomor Kandang: " << ayam.getNomorKandang() << endl;
cout << endl;
}
}
}
//const menunjukkan bahwa parameter _namaFile bersifat konstan, artinya nilainya tidak dapat diubah di dalam fungsi tersebut.
//string& menunjukkan bahwa memanipulasi dan mengakses objek string asli tanpa membuat salinan objek tersebut
void setNamaFile(const string& _namaFile) {
namaFile = _namaFile;
}
void bacaDataDariFile() {
//ifstream digunakan untuk membaca data dari file
ifstream file(namaFile);
if (file.is_open()) {
int nomorKandang, jumlahVaksin, umur;
while (file >> nomorKandang >> jumlahVaksin >> umur) {
AyamKampung ayam(nomorKandang, jumlahVaksin, umur);
dataAyam.push_back(ayam);
}
file.close();
cout << "Data berhasil dibaca dari file " << namaFile << endl;
} else {
cout << "Data berasil ditambahkan " << namaFile << endl;
}
}
};
int main() {
Peternakan peternakan;
int menu;
string namaFile;
cout << "Masukkan nama file untuk menyimpan dan membaca data: ";
getline(cin, namaFile);
peternakan.setNamaFile(namaFile);
// Untuk membaca data dari file saat program dijalankan
peternakan.bacaDataDariFile();
while (true) {
cout << "========== Sistem Informasi Peternakan Ayam Kampung ==========" << endl;
cout << "1. Tambah Data Ayam " << endl;
cout << "2. Tampilkan Data Ayam" << endl;
cout << "3. Tampilkan Data Ayam berdasarkan Jumlah Vaksin" << endl;
cout << "4. Tampilkan Data Ayam berdasarkan Umur" << endl;
cout << "5. Keluar" << endl;
cout << "Pilih menu: ";
cin >> menu;
switch (menu) {
case 1:
peternakan.tambahAyam();
break;
case 2:
peternakan.tampilkanData();
break;
case 3: {
peternakan.tampilkanDataJumlahVaksin();
break;
}
case 4: {
peternakan.tampilkanDataUmur();
break;
}
case 5:
return 0;
default:
cout << "Menu tidak valid!" << endl;
break;
}
cout << endl;
}
return 0;
}
Penjelasan Program :
- Penyimpanan Data Ayam: Setiap data ayam akan disimpan dalam bentuk objek AyamKampung yang memiliki atribut seperti nomor kandang, jumlah vaksin, dan umur ayam. Data-data ini akan dikumpulkan dalam vektor untuk memudahkan pengelolaan dan akses.
- Menambah Data Ayam: Dalam program ini, kita dapat dengan mudah menambahkan data ayam baru. Cukup masukkan nomor kandang, jumlah vaksin, dan umur ayam, dan data ayam baru akan tersimpan dalam file.
- Menampilkan Data Ayam: Program ini memungkinkan kita untuk melihat seluruh data ayam yang telah disimpan dalam file. Informasi mengenai nomor kandang, jumlah vaksin, dan umur ayam akan ditampilkan dengan jelas.
- Pencarian Berdasarkan Jumlah Vaksin atau Umur:Selain menampilkan semua data ayam, kita juga dapat melakukan pencarian berdasarkan kriteria tertentu. Misalnya, jika kita ingin mencari data ayam yang telah divaksin dengan jumlah tertentu, program akan membantu menampilkan data tersebut. Begitu juga jika kita ingin mencari ayam berdasarkan umur mereka.
- Interaktif dan Mudah Digunakan: Program ini sangat interaktif dan mudah digunakan. Saat menjalankan program, kita akan diminta untuk memasukkan nama file untuk menyimpan dan membaca data ayam. Setelah data berhasil dibaca dari file, kita dapat memilih berbagai fitur yang disediakan oleh program dengan mudah.
Contoh Jalannya Program
Menampilkan Data Ayam:
Menampilkan Data Ayam Berdasarkan Jumlah Vaksin:
Terima kasih sudah membaca penjelasan singkat mengenai program "Project Data Peternakan Ayam dengan Menggunakan Operasi File". Semoga penjelasan ini memberikan gambaran yang jelas tentang fitur-fitur yang ada dalam program ini. Jangan ragu untuk mencoba dan manfaatkan program ini sebaik-baiknya.



Komentar
Posting Komentar