Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <string>
- #include <vector>
- #include <algorithm>
- using namespace std;
- void input_barang();
- void tampil_barang();
- void cari_barang();
- struct barang_baru
- {
- string id;
- string nama_barang;
- string harga;
- string satuan;
- string jml_stok;
- string cari;
- };
- vector<barang_baru> rs;
- int main()
- {
- int pilihan;
- char menus;
- do
- {
- cout << " |====================|\n";
- cout << " | MENU PILIHAN |\n";
- cout << " |====================|\n";
- cout << " | |\n";
- cout << " | 1. Input Barang |\n";
- cout << " | |\n";
- cout << " | 2. Tampil Barang |\n";
- cout << " | |\n";
- cout << " | 3. Cari Barang |\n";
- cout << " |====================|\n";
- cout << "\nMasukkan pilihan anda : "; cin >> pilihan;
- switch (pilihan)
- {
- case 1:
- input_barang();
- break;
- case 2:
- tampil_barang();
- break;
- case 3:
- cari_barang();
- break;
- default:
- cout << "Menu Pilihan Tidak ada\n";
- }
- cout << "\nCoba Lagi[Y/T] : "; cin >>menus;
- menus = tolower(menus);
- } while (menus != 't');
- }
- void input_barang()
- {
- int x, y;
- cout << "\n1. Input Barang\n\n";
- cout << "Masukkan Berapa Data Yang akan diinput : "; cin >> x;
- for (y = 0; y<x; y++)
- {
- barang_baru tmp;
- cout << "ID Barang : "; cin >> tmp.id;
- cout << "Nama Barang : "; cin >> tmp.nama_barang;
- cout << "Harga : "; cin >> tmp.harga;
- cout << "Satuan : "; cin >> tmp.satuan;
- cout << "Jumlah Stok : "; cin >> tmp.jml_stok;
- rs.push_back(tmp);
- }
- sort(rs.begin(), rs.end(), [](barang_baru& a, barang_baru& b){
- return a.id < b.id;
- });
- }
- void tampil_barang()
- {
- cout << "Outputnya ";
- cout << "\nID \t Nama Barang \t\t Harga \t\t Satuan\t Jumlah Stok \n";
- for (auto&& item : rs)
- {
- cout << "\n" << item.id << "\t" << item.nama_barang << "\t\t" << item.harga << "\t\t" << item.satuan << "\t\t" << item.jml_stok;
- }
- }
- void cari_barang(){
- cout << "Masukkan id yang dicari : ";
- string id;
- cin >> id;
- size_t max_idx = rs.size();
- size_t min_idx = 0;
- while (max_idx > min_idx){
- size_t midpoint = min_idx + ( (max_idx - min_idx) / 2);
- if (rs[midpoint].id < id){
- min_idx = midpoint + 1;
- }
- else {
- max_idx = midpoint;
- }
- }
- if (min_idx < rs.size() && rs[min_idx].id == id){
- auto item = rs[min_idx];
- cout << "\nID \t Nama Barang \t\t Harga \t\t Satuan\t Jumlah Stok \n";
- cout << "\n" << item.id << "\t" << item.nama_barang << "\t\t" << item.harga << "\t\t" << item.satuan << "\t\t" << item.jml_stok;
- }
- else {
- cout << "Item not found\n";
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement