BlackBoY_

ProjetBesarC++V2

Jun 29th, 2021
280
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 16.36 KB | None | 0 0
  1. #include <iostream>
  2. #include <windows.h>
  3. #include <conio.h>
  4. #include <windows.h>
  5.  
  6. using namespace std;
  7.  
  8. int urut=-1;
  9.  
  10. //(deklarasi prosedur untuk penggunaan gotoxy){
  11. void gotoxy(int x,int y){
  12.     COORD k = {x,y};
  13.     SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), k);
  14. }
  15. //}(sampai sini)
  16.  
  17. //(deklarasi struct untuk fungsi stack atau tumpukan, digunakan untuk menyimpan data nama barang beserta harganya){
  18. struct data{
  19.    string nmBarang;
  20.    int harga;
  21.    int jmlStok;
  22. };
  23.  
  24. struct Stack{
  25.     data dataBarang[100];
  26.     int posisi;
  27. }dataStok;
  28. //}(sampai sini)
  29.  
  30. //(deklarasi struct linkedlist){
  31. struct linkedlist{
  32.     string nmTmbhBrg;
  33.     int bnykTmbhBrg;
  34.     linkedlist* next;
  35. };
  36.  
  37. linkedlist* head;
  38. linkedlist* tail;
  39. linkedlist* simpul;
  40. //}(sampai sini)
  41.  
  42. //(prosedur buat simpul dan tambah data ke simpul untuk linkedlist yang berfungsi untuk menyimpan history penambahan stok barang){
  43. //dibawah ini prosedurnya dipanggil di prosedur tambahinNamaBrg()
  44. void buat_simpul(string dataNamaBrg,int banyaknya){
  45.     simpul = new linkedlist;
  46.     simpul->nmTmbhBrg = dataNamaBrg;
  47.     simpul->bnykTmbhBrg = banyaknya;
  48.     simpul->next = NULL;
  49. }
  50. //dibawah ini prosedurnya dipanggil dalam prosedur lihatstok()
  51. void tambahinNamaBrg(string dataNamaMasuk,int banyakMasuk){
  52.     if(head == NULL && tail == NULL){
  53.         buat_simpul(dataNamaMasuk,banyakMasuk);
  54.         head = simpul;
  55.         tail = simpul;
  56.     }else{
  57.         buat_simpul(dataNamaMasuk,banyakMasuk);
  58.         simpul->next = head;
  59.         head = simpul;
  60.     }
  61. }
  62. //}(sampai sini)
  63.  
  64. //(prosedur untuk fungsi login){
  65. //dibawah ini prosedurnya dipanggil di program inti(int main);
  66. void login(){
  67.     string user,passwd,inuser,inpasswd;
  68.     int salah=3;
  69.     char input;
  70.     user="teamgjls";passwd="admin123";
  71.     char adm;
  72.     anjay:
  73.     if (salah==0){
  74.         system("cls");
  75.         system("color 0c");
  76.         gotoxy(33,12);cout<< "=======================================================";
  77.         gotoxy(33,13);cout<< "ANDA SALAH MEMASUKKAN USERNAME DAN PASSWORD SEBANYAK 3X";
  78.         gotoxy(33,14);cout<< "      SILAHKAN CLOSE APLIKASI KEMUDIAN BUKA LAGI!!     ";
  79.         gotoxy(33,15);cout<< "=======================================================";
  80.         getch();
  81.         exit(0);
  82.     }else{
  83.     system("color 0b");
  84.     system("cls");
  85.     gotoxy(42,3);cout << "=====================================";
  86.     gotoxy(42,4);cout << "[           LOGIN APLIKASI          ]";
  87.     gotoxy(42,5);cout << "=====================================";
  88.     gotoxy(42,7);cout<< "MASUKKAN USERNAME: ";
  89.     gotoxy(42,8);cout<< "MASUKKAN PASSWORD: ";
  90.     gotoxy(42,9);cout<< "Anda Memiliki Kesempatan Salah Sebanyak "<<salah<<"X";
  91.     gotoxy(61,7);cin>> inuser;
  92.     gotoxy(61,8);cin>> inpasswd;
  93.         if (inuser==user){
  94.             if(inpasswd==passwd){
  95.                 system("cls");
  96.                 system("color 0a");
  97.                 gotoxy(46,13);cout<< "============================";
  98.                 gotoxy(46,14);cout<< "[  ANDA BERHASIL LOGIN !!  ]";
  99.                 gotoxy(46,15);cout<< "============================";
  100.                 getch();
  101.             }else{
  102.                 system("cls");
  103.                 system("color 0c");
  104.                 gotoxy(45,13);cout<< "===============================";
  105.                 gotoxy(45,14);cout<< "[ USERNAME / PASSWORD SALAH!! ]";
  106.                 gotoxy(45,15);cout<< "===============================";
  107.                 getch();
  108.                 salah--;
  109.                 goto anjay;
  110.             }
  111.         }else{
  112.             system("cls");
  113.             system("color 0c");
  114.             gotoxy(45,13);cout<< "===============================";
  115.             gotoxy(45,14);cout<< "[ USERNAME / PASSWORD SALAH!! ]";
  116.             gotoxy(45,15);cout<< "===============================";
  117.             getch();
  118.             salah--;
  119.             goto anjay;
  120.         }
  121.     }
  122. }
  123. //}(sampai sini)
  124.  
  125.  
  126. //(prosedur untuk deklarasi nilai awal seluruh barang){
  127. //prosedur ini dipanggil dalam program inti(int main)
  128. void WajibCall(){
  129.  
  130.     dataStok.dataBarang[0].nmBarang="Buku Tulis";
  131.     dataStok.dataBarang[1].nmBarang="Pulpen";
  132.     dataStok.dataBarang[2].nmBarang="Pensil";
  133.     dataStok.dataBarang[3].nmBarang="Penghapus";
  134.     dataStok.dataBarang[4].nmBarang="Tipe-X";
  135.     dataStok.dataBarang[5].nmBarang="kertas HVS";
  136.     dataStok.dataBarang[6].nmBarang="Kertas Folio";
  137.     dataStok.dataBarang[7].nmBarang="Kertas A4";
  138.     dataStok.dataBarang[8].nmBarang="Buku Gambar";
  139.     dataStok.dataBarang[9].nmBarang="Kertas Binder";
  140.     dataStok.dataBarang[10].nmBarang="Kertas A3";
  141.     dataStok.dataBarang[11].nmBarang="Label";
  142.     dataStok.dataBarang[12].nmBarang="Penggaris Biasa";
  143.     dataStok.dataBarang[13].nmBarang="Penggaris Busur";
  144.     dataStok.dataBarang[14].nmBarang="Gunting";
  145.     dataStok.dataBarang[15].nmBarang="Rautan";
  146.  
  147.     dataStok.dataBarang[0].harga=5000;
  148.     dataStok.dataBarang[1].harga=2500;
  149.     dataStok.dataBarang[2].harga=2000;
  150.     dataStok.dataBarang[3].harga=500;
  151.     dataStok.dataBarang[4].harga=2500;
  152.     dataStok.dataBarang[5].harga=100;
  153.     dataStok.dataBarang[6].harga=500;
  154.     dataStok.dataBarang[7].harga=300;
  155.     dataStok.dataBarang[8].harga=4000;
  156.     dataStok.dataBarang[9].harga=10000;
  157.     dataStok.dataBarang[10].harga=1000;
  158.     dataStok.dataBarang[11].harga=3000;
  159.     dataStok.dataBarang[12].harga=3000;
  160.     dataStok.dataBarang[13].harga=5000;
  161.     dataStok.dataBarang[14].harga=5000;
  162.     dataStok.dataBarang[15].harga=3000;
  163.  
  164.     dataStok.dataBarang[0].jmlStok= 10*5;
  165.     dataStok.dataBarang[1].jmlStok= 12*5;
  166.     dataStok.dataBarang[2].jmlStok= 12*5;
  167.     dataStok.dataBarang[3].jmlStok= 40*5;
  168.     dataStok.dataBarang[4].jmlStok= 12*5;
  169.     dataStok.dataBarang[5].jmlStok= 500*5;
  170.     dataStok.dataBarang[6].jmlStok= 100*5;
  171.     dataStok.dataBarang[7].jmlStok= 500*5;
  172.     dataStok.dataBarang[8].jmlStok= 10*5;
  173.     dataStok.dataBarang[9].jmlStok= 50;
  174.     dataStok.dataBarang[10].jmlStok= 100*5;
  175.     dataStok.dataBarang[11].jmlStok= 25*5;
  176.     dataStok.dataBarang[12].jmlStok= 12*5;
  177.     dataStok.dataBarang[13].jmlStok= 12*5;
  178.     dataStok.dataBarang[14].jmlStok= 12*5;
  179.     dataStok.dataBarang[15].jmlStok= 24*5;
  180.     dataStok.posisi=15;
  181. }
  182. //}(sampai sini)
  183.  
  184. //(prosedur untuk menambah stok barang){
  185. //prosedur ini dipanggil pada program ini (int main)
  186. void tambahStok(){
  187.     string nmBrg,konfirm;
  188.     int hrgBrg,stkBrg;
  189.     gotoxy(47,2);cout<< "==========================="<<endl;
  190.     gotoxy(47,3);cout<< "[ MENU TAMBAH STOK BARANG ]"<<endl;
  191.     gotoxy(47,4);cout<< "==========================="<<endl;
  192.     cin.ignore();
  193.     gotoxy(43,6);cout<< "Masukkan Nama Barang           : ";
  194.     gotoxy(43,7);cout<< "Masukkan Harga Barang (Satuan) : ";
  195.     gotoxy(43,8);cout<< "Masukkan Stok Barang           : ";
  196.     gotoxy(76,6);getline(cin,nmBrg);
  197.     gotoxy(76,7);cin>>hrgBrg;
  198.     gotoxy(76,8);cin>>stkBrg;
  199.     konfirmasi:
  200.     gotoxy(60,10);cout<< "Masukkan Barang ke Gudang? (ya/batal) : ";
  201.     gotoxy(100,10);cin>>konfirm;
  202.     if (konfirm=="ya" | konfirm=="YA"){
  203.     dataStok.posisi+=1;
  204.     dataStok.dataBarang[dataStok.posisi].nmBarang = nmBrg;
  205.     dataStok.dataBarang[dataStok.posisi].harga = hrgBrg;
  206.     dataStok.dataBarang[dataStok.posisi].jmlStok = stkBrg;
  207.     system("cls");
  208.     gotoxy(45,12);cout<< "==============================";
  209.     gotoxy(45,13);cout<< "[ DATA BERHASIL DIMASUKKAN!! ]";
  210.     gotoxy(45,14);cout<< "==============================";
  211.     }else if (konfirm=="batal" | konfirm=="BATAL"){
  212.         system("cls");
  213.         gotoxy(46,12);cout<< "=============================";
  214.         gotoxy(46,13);cout<< "[ BERHASIL BATALKAN INPUT!! ]";
  215.         gotoxy(46,14);cout<< "=============================";
  216.     }else{
  217.         gotoxy(45,12);cout<< "===============================";
  218.         gotoxy(45,13);cout<< "[ HARAP PERIKSA KEMBALI INPUT ]";
  219.         gotoxy(45,14);cout<< "[  YANG ANDA  MASUKKAN UNTUK  ]";
  220.         gotoxy(45,15);cout<< "[          KONFIRMASI         ]";
  221.         gotoxy(45,16);cout<< "===============================";
  222.         getch();
  223.         gotoxy(45,12);cout<< "                               ";
  224.         gotoxy(45,13);cout<< "                               ";
  225.         gotoxy(45,14);cout<< "                               ";
  226.         gotoxy(45,15);cout<< "                               ";
  227.         gotoxy(45,16);cout<< "                               ";
  228.         gotoxy(100,10);cout<< "             ";
  229.         goto konfirmasi;
  230.     }
  231. }
  232. //}(sampai sini)
  233.  
  234. //(prosedur lihat stok barang){
  235. //prosedur ini dipanggil pada program inti (int main)
  236. void lihatStok(){
  237.     char tambah;
  238.     int brp,bnyk;
  239.     sini:
  240.     system("cls");
  241.     cout<< "\t\t\t ========================"<<endl;
  242.     cout<< "\t\t\t DAFTAR KETERSEDIAAN STOK"<<endl;
  243.     cout<< "\t\t\t ========================"<<endl;
  244.     for (int i=0;i<=dataStok.posisi;i++){
  245.         cout<< "\t\t Barang ke-"<<i+1<<endl;
  246.         cout<< "\t\t Nama Barang      : "<<dataStok.dataBarang[i].nmBarang<<endl;
  247.         cout<< "\t\t Sisa Stok Barang : "<<dataStok.dataBarang[i].jmlStok<<endl;
  248.         cout<< endl;
  249.     }
  250.     cout<< "Ingin Menambah Stok? (y/t) ";cin>>tambah;
  251.     if (tambah == 'y' | tambah == 'Y'){
  252.         cout<< "Produk Keberapa Yang Ingin Anda Tambah? ";cin>>brp;
  253.         if (brp>dataStok.posisi+1){
  254.             cout<< "MAAF PERIKSA KEMBALI PILIHAN ANDA!!"<<endl;
  255.             getch();
  256.             goto sini;
  257.         }
  258.         cout<< "Ingin Menambah Berapa Banyak? ";cin>>bnyk;
  259.         dataStok.dataBarang[brp-1].jmlStok += bnyk;
  260.         tambahinNamaBrg(dataStok.dataBarang[brp-1].nmBarang, bnyk);
  261.         cout<< "BERHASIL MENAMBAHKAN!!";
  262.         getch();
  263.     }
  264. }
  265. //}(sampai sini)
  266.  
  267. //(deklarasi queue untuk menyimpan history keluaran barang (terbatas hanya sampai 50 antrian)){
  268. struct antrianKeluar{
  269.     string namaBarang[50];
  270.     int bnykKeluar[50];
  271.     int totalPemasukan[50];
  272. }antri;
  273. //}(sampai sini)
  274.  
  275. //(prosedur untuk keluaran barang){
  276. //dipanggil pada program inti (int main)
  277. void produkKeluar(){
  278.     top:
  279.     system("cls");
  280.     int nobar,bnykBar;
  281.     cout<< "\t\t~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"<<endl;
  282.     cout<< "\t\t== MENU BARANG YANG TERSEDIA=="<<endl;
  283.     cout<< "\t\t~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"<<endl;
  284.     for (int i=0;i<=dataStok.posisi;i++){
  285.         cout<< "\t  "<<i+1<<". "<<dataStok.dataBarang[i].nmBarang<<endl;
  286.         cout<< "\t Sisa Barang Tersedia = "<<dataStok.dataBarang[i].jmlStok<<endl;
  287.         cout<< endl;
  288.     }
  289.     cout<< "SILAHKAN MASUKKAN NOMOR BARANG YANG KELUAR : ";cin>>nobar;
  290.     cout<< "MASUKKAN BANYAK BARANG YANG KELUAR         : ";cin>>bnykBar;
  291.     if (urut>49){
  292.         cout<< "HARAP HAPUS BEBERAPA HISTORY TERLEBIH DAHULU, KARENA ANTRIAN HISTORY PENUH"<<endl;
  293.         getch();
  294.         //goto top;
  295.         goto bawah;
  296.     }
  297.     else if (dataStok.dataBarang[nobar-1].jmlStok<bnykBar){
  298.         cout<< "MOHON PERIKSA KEMBALI JUMLAH BARANG KELUAR, KARENA JUMLAH YANG ANDA MASUKKAN TERLALU BESAR"<<endl;
  299.         getch();
  300.         goto top;
  301.     }else if (dataStok.dataBarang[nobar-1].jmlStok==bnykBar){
  302.         for (int i=nobar-1;i<dataStok.posisi;i++){
  303.             dataStok.dataBarang[i].nmBarang=dataStok.dataBarang[i+1].nmBarang;
  304.             dataStok.dataBarang[i].jmlStok=dataStok.dataBarang[i+1].jmlStok;
  305.             dataStok.dataBarang[i].harga=dataStok.dataBarang[i+1].harga;
  306.         }
  307.         dataStok.posisi--;
  308.     }else if(dataStok.dataBarang[nobar-1].jmlStok>bnykBar){
  309.         dataStok.dataBarang[nobar-1].jmlStok-=bnykBar;
  310.     }
  311.     urut+=1;
  312.     antri.namaBarang[urut]=dataStok.dataBarang[nobar-1].nmBarang;
  313.     antri.bnykKeluar[urut]=bnykBar;
  314.     antri.totalPemasukan[urut]=dataStok.dataBarang[nobar-1].harga*bnykBar;
  315.     cout<< endl;
  316.     cout<< "TOTAL PEMASUKKAN UNTUK "<<antri.namaBarang[urut]<<" ADALAH Rp."<<antri.totalPemasukan[urut]<<endl;
  317.     cout<< endl;
  318.     char lgi;
  319.     cout<< "Ingin Input Pengeluaran Lagi? (y/t) ";cin>>lgi;
  320.     if (lgi=='y' | lgi== 'Y'){
  321.         goto top;
  322.     }
  323.     bawah:
  324.     int gatau;
  325. }
  326. //}(sampai sini)
  327.  
  328. //(prosedur untuk tampil history){
  329. //prosedur ini dipanggil pada program inti (int main)
  330. void tampilHistory(){
  331.     char hpshistor,menhap;
  332.     int bnykhps;
  333.     system("cls");
  334.     cout<< "\t =========================="<<endl;
  335.     cout<< "\t DAFTAR HISTORY PENGELUARAN"<<endl;
  336.     cout<< "\t =========================="<<endl;
  337.     if (urut==-1){
  338.         cout<< "\t TIDAK ADA HISTORY PENGELUARAN"<<endl;
  339.     }else{
  340.     for (int i=0;i<=urut;i++){
  341.         cout<< i+1<<". "<<antri.namaBarang[i]<<endl;
  342.         cout<< "\t\t Banyak Keluar    : "<<antri.bnykKeluar[i]<<endl;
  343.         cout<< "\t\t Total Pemasukkan : "<<antri.totalPemasukan[i]<<endl;
  344.         cout<<endl;
  345.     }
  346.     cout<< "Ingin Hapus History? (y/t) ";cin>>hpshistor;
  347.     if (hpshistor=='y' | hpshistor=='Y'){
  348.         cout<< "\t =MENU HAPUS="<<endl;
  349.         cout<< "\t 1. Hapus Seluruhnya Sekaligus"<<endl;
  350.         cout<< "\t 2. Hapus Beberapa Saja"<<endl;
  351.         cout<< "\t MASUKKAN PILIHAN ANDA : ";cin>>menhap;
  352.         if (menhap=='1'){
  353.             urut=-1;
  354.             cout<< "DONE..!!"<<endl;
  355.         }else if (menhap=='2'){
  356.             cout<< "\t Berapa Banyak History Yg Ingin Anda Hapus : ";cin>>bnykhps;
  357.             urut-=bnykhps;
  358.             for (int i=0;i<=urut;i++){
  359.                 antri.namaBarang[i]=antri.namaBarang[bnykhps+i];
  360.                 antri.bnykKeluar[i]=antri.bnykKeluar[bnykhps+i];
  361.                 antri.totalPemasukan[i]=antri.totalPemasukan[bnykhps+i];
  362.             }
  363.             cout<< "\t DONE..!!"<<endl;
  364.         }
  365.     }
  366.     }
  367. }
  368. //}(sampai sini)
  369.  
  370. //(prosedur untuk menampilkan data){
  371. //prosedur ini dipanggil pada program inti(int main)
  372. void tampil_data(){
  373.     int n=1;
  374.     gotoxy(41,2);cout<< "======================================"<<endl;
  375.     gotoxy(41,3);cout<< "Daftar History Penambahan Stock Barang"<<endl;
  376.     gotoxy(41,4);cout<< "======================================"<<endl;
  377.     if(head == NULL && tail == NULL){
  378.         cout<<"\t Tidak ada data"<<endl;
  379.     }else{
  380.         linkedlist* helper;
  381.         helper = head;
  382.         while(helper != NULL){
  383.             cout<<"\t "<<n<<". "<<helper->nmTmbhBrg<<endl;
  384.             cout<< "\t Ditamabah Sebanyak : "<<helper->bnykTmbhBrg<<endl;
  385.             cout<< "====================================================="<<endl;
  386.             helper=helper->next;
  387.             n++;
  388.         }
  389.     }
  390. }
  391. //}(sampai sini)
  392.  
  393. int main()
  394. {
  395.     int pilmen1;
  396.     WajibCall();
  397.     login();
  398.     atas:
  399.     system("color 09");
  400.     system("cls");
  401.     gotoxy(50,28); cout << "Created By GJLS~Team"<<endl;
  402.     gotoxy(42,2);cout << "====================================="<<endl;
  403.     gotoxy(42,3);cout << "[         KOPERASI MAHASISWA        ]"<<endl;
  404.     gotoxy(42,4);cout << "====================================="<<endl;
  405.     gotoxy(42,5);cout << "~ 1. Tambah Produk ~~~~~~~~~~~~~~~~~~"<<endl;
  406.     gotoxy(42,6);cout << "~ 2. Produk Keluar ~~~~~~~~~~~~~~~~~~"<<endl;
  407.     gotoxy(42,7);cout << "~ 3. Lihat Stok Produk ~~~~~~~~~~~~~~"<<endl;
  408.     gotoxy(42,8);cout << "~ 4. Lihat History Keluaran ~~~~~~~~~"<<endl;
  409.     gotoxy(42,9);cout << "~ 5. History Penambahan Stok Barang ~"<<endl;
  410.     gotoxy(42,10);cout <<"~ 6. EXIT ~~~~~~~~~~~~~~~~~~~~~~~~~~~"<<endl;
  411.     gotoxy(42,11);cout <<"masukkan menu yang anda inginkan : ";cin>>pilmen1;
  412.     if (pilmen1==1){
  413.         system("color 0f");
  414.         system("cls");
  415.         tambahStok();
  416.         getch();
  417.         goto atas;
  418.     }else if (pilmen1==2){
  419.         system("color 0e");
  420.         produkKeluar();
  421.         //cout<< "MENUNYA BELUM DIBIKIN BEGO!!";
  422.         goto atas;
  423.     }else if (pilmen1==3){
  424.         system("color 0d");
  425.         lihatStok();
  426.         goto atas;
  427.     }else if (pilmen1==4){
  428.         system("cls");
  429.         system("color 0a");
  430.         //cout<< "MENUNYA BELUM DIBIKIN BEGO!!";
  431.         tampilHistory();
  432.         getch();
  433.         goto atas;
  434.     }else if (pilmen1 == 5){
  435.         system("color 0b");
  436.         system("cls");
  437.         tampil_data();
  438.         getch();
  439.         goto atas;
  440.     }else if (pilmen1==6){
  441.         char keluar;
  442.         system("cls");
  443.         system("color 0c");
  444.         cout<< "ANDA YAKING INGIN KELUAR DARI APLIKASI INI?? (y/t) ";cin>>keluar;
  445.         if (keluar=='y' | keluar=='Y'){
  446.             cout<< "BERHASIL KELUAR DARI APLIKASI"<<endl;
  447.             getch();
  448.         }else{
  449.             goto atas;
  450.         }
  451.     }else{
  452.         system("color 0c");
  453.         cout<< "MENUNYA CUMAN ADA 6 BEGO, PILIH YG BENER DONG!!";
  454.         getch();
  455.         goto atas;
  456.     }
  457.     return 0;
  458. }
  459.  
Add Comment
Please, Sign In to add comment