PROJEK INDIVIDU
Berikut link video youtube berisi penjelasan mengenai projek individu saya :
https://youtu.be/zHQacNp46kY
Source Code :
//Judul : pendataan toko baju
//oleh akfi rozada
#include <iomanip>
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
//kamus
class Barang {
public:
string nama_barang;
string jenis;
string id_barang;
double stock;
double harga;
void input_data() {
cout << "Id Barang : ";
cin >> id_barang;
cout << "Nama Barang : ";
cin.ignore();
getline(cin, nama_barang);
cout << "Jenis Kain : ";
getline(cin, jenis);
cout << "Stock : ";
cin >> stock;
cout << "Harga : ";
cin >> harga;
cout << "Data berhasil ditambahkan." << endl;
}
void edit_data() {
cout << "Data Barang saat ini:" << endl;
cout << "ID Barang : " << id_barang << endl;
cout << "Nama Barang : " << nama_barang << endl;
cout << "Jenis Kain : " << jenis << endl;
cout << "Stock : " << stock << endl;
cout << "Harga : " << harga << endl;
cout << endl;
cout << "Masukkan data baru:" << endl;
cout << "ID Barang : ";
cin >> id_barang;
cout << "Nama Barang : ";
cin.ignore();
getline(cin, nama_barang);
cout << "Jenis Kain : ";
getline(cin, jenis);
cout << "Stock : ";
cin >> stock;
cout << "Harga : ";
cin >> harga;
cout << "Data berhasil diubah." << endl;
}
void hapus_data() {
nama_barang = "";
jenis = "";
stock = 0;
harga = 0;
id_barang = "";
cout << "Data berhasil dihapus." << endl;
}
void tampilkan_data() {
cout << "===========================================================================" << endl;
cout << "| ID Barang | Nama Barang | Jenis Kain | Stock | Harga |" << endl;
cout << "===========================================================================" << endl;
cout << "|" << setw(10) << id_barang << " |" << setw(17) << nama_barang << " |" << setw(13) << jenis << " |" << setw(6) << stock << " |" << setw(6) << harga << " |" << endl;
cout << "---------------------------------------------------------------------------" << endl;
}
bool cari_data(string keyword) {
if (id_barang == keyword || nama_barang == keyword || jenis == keyword) {
return true;
}
return false;
}
static bool compare_nama(const Barang& b1, const Barang& b2) {
return b1.nama_barang < b2.nama_barang;
}
static bool compare_harga(const Barang& b1, const Barang& b2) {
return b1.harga < b2.harga;
}
static bool compare_id(const Barang& b1, const Barang& b2) {
return b1.id_barang < b2.id_barang;
}
};
//deskrispi
int main() {
Barang barang[100];
int jumlah_barang = 0;
int pilihan;
string keyword;
do {
cout << "=== PROGRAM PENDATAAN BARANG ===" << endl;
cout << "1. Input Data" << endl;
cout << "2. Edit Data" << endl;
cout << "3. Hapus Data" << endl;
cout << "4. Tampilkan Data" << endl;
cout << "5. Cari Data" << endl;
cout << "6. Urutkan Data" << endl;
cout << "7. Keluar" << endl;
cout << "Pilih menu (1-7): ";
cin >> pilihan;
cout << endl;
switch (pilihan) {
case 1:
if (jumlah_barang < 100) {
int jml;
cout << "Masukkan jumlah barang: ";
cin >> jml;
int i = 0;
while ( i < jml ) {
barang[jumlah_barang].input_data();
jumlah_barang++;
i =i+1;
}
} else {
cout << "Kapasitas data barang telah penuh." << endl;
}
break;
case 2:
if (jumlah_barang > 0) {
string idBarang;
cout << "Masukkan ID Barang yang akan diubah: ";
cin >> idBarang;
int indeks = -1;
int i = 0;
while( i < jumlah_barang) {
if (barang[i].id_barang == idBarang) {
indeks = i;
break;
} i= i+1;
}
if (indeks != -1) {
barang[indeks].edit_data();
} else {
cout << "ID Barang tidak ditemukan." << endl;
}
} else {
cout << "Belum ada data barang yang tersimpan." << endl;
}
break;
case 3:
if (jumlah_barang > 0) {
string idBarang;
cout << "Masukkan ID Barang yang akan dihapus: ";
cin >> idBarang;
int indeks = -1;
int i = 0;
while ( i < jumlah_barang) {
if (barang[i].id_barang == idBarang) {
indeks = i;
break;
} i= i+1;
}
if (indeks != -1) {
barang[indeks].hapus_data();
jumlah_barang--; // Kurangi jumlah_barang setelah menghapus data
} else {
cout << "ID Barang tidak ditemukan." << endl;
}
} else {
cout << "Belum ada data barang yang tersimpan." << endl;
}
break;
case 4:
if (jumlah_barang > 0) {
bool ada_data = false;
int i = 0;
while ( i < jumlah_barang) {
barang[i].tampilkan_data();
ada_data = true;
i = i+1;
}
} else {
cout << "Belum ada data barang yang tersimpan." << endl;
}
break;
case 5:
if (jumlah_barang > 0) {
cout << "Masukkan kata kunci: ";
cin.ignore();
getline(cin, keyword);
bool ditemukan = false;
int i = 0;
while (i < jumlah_barang) {
if (barang[i].cari_data(keyword)) {
barang[i].tampilkan_data();
ditemukan = true;
} i = i+1;
}
if (!ditemukan) {
cout << "Data tidak ditemukan." << endl;
}
} else {
cout << "Belum ada data barang yang tersimpan." << endl;
}
break;
case 6:
if (jumlah_barang > 0) {
int pilihan_urutan;
cout << "Urutkan data berdasarkan: " << endl;
cout << "1. Id Barang" << endl;
cout << "2. Nama Barang" << endl;
cout << "3. Harga" << endl;
cout << "Pilih menu (1-3): ";
cin >> pilihan_urutan;
switch (pilihan_urutan) {
case 1:
sort(barang, barang + jumlah_barang, Barang::compare_id);
cout << "Data berhasil diurutkan berdasarkan Id Barang." << endl;
break;
case 2:
sort(barang, barang + jumlah_barang, Barang::compare_nama);
cout << "Data berhasil diurutkan berdasarkan Nama Barang." << endl;
break;
case 3:
sort(barang, barang + jumlah_barang, Barang::compare_harga);
cout << "Data berhasil diurutkan berdasarkan Harga." << endl;
break;
default:
cout << "Pilihan tidak valid." << endl;
break;
}
} else {
cout << "Belum ada data barang yang tersimpan." << endl;
}
break;
case 7:
cout << "Terima kasih telah menggunakan program ini." << endl;
break;
default:
cout << "Pilihan tidak valid." << endl;
break;
}
cout << endl;
cout << "Tekan enter untuk melanjutkan...";
cin.ignore();
cin.get();
system("cls");
} while (pilihan != 7);
return 0;
}
Komentar
Posting Komentar