Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <windows.h>
- using namespace std;
- //============================================================fungsi yang bersifat global========================================================
- //ada fungsi gotoxy dan fungsi kop
- void gotoxy(int x, int y)
- {
- COORD coord;
- coord.X = x;
- coord.Y = y;
- SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);
- }
- void kop(){
- gotoxy(25,1);cout<<"||=========================================================||"<<endl;
- gotoxy(25,2);cout<<"|| ONLINESHOP 04 ||"<<endl;
- gotoxy(25,3);cout<<"|| Jl. Ringroad Utara ||"<<endl;
- gotoxy(25,4);cout<<"|| 0812345678 ||"<<endl;
- gotoxy(25,5);cout<<"||=========================================================||"<<endl;
- }
- //=================================================================deklarasi kelas==============================================================
- //ada class admin, member, dan produk
- //================================================================class admin==================================================================
- class Admin{
- //deklarasi atribut
- public :
- struct admin{
- string username, password;
- }logAdmin, adm;
- //deklarasi method /fungsi
- public :
- int login(string username, string password){
- adm.username="admin";
- adm.password="admin";
- if ((username==adm.username)&&(password==adm.password))
- {
- cout<<"berhasil";
- return 1;
- } else{
- return 0;
- }
- }
- };
- //=====================================================================class member===========================================================
- class Member{
- //deklarasi atribut
- public:
- int size;
- struct dataAlamat{
- string jalan;
- string provinsi;
- string kota;
- string kode_pos;
- };
- struct user{
- string username;
- string password;
- int no_member;
- }log;
- struct dataDasar{
- string nama;
- string email;
- string no_telp;
- };
- struct dataMember{
- int no_user;
- struct dataDasar dtDasar;
- struct user usr;
- struct dataAlamat dtAlamat;
- }member[1000];
- //deklarasi fungsi/method
- int login(string username, string password, int no_member){
- //cek apakah data untuk login sudah benar
- if ((username==member[no_member].usr.username) && (password==member[no_member].usr.password))
- {
- cout<<"login berhasil";
- return 1;
- } else {
- cout<<"Login gagal";
- return 0;
- }
- }
- };
- //===================================================================class produk===============================================================
- class Produk{
- //deklarasi atribut
- public:
- int id_produk;
- struct produk{
- int harga_produk, stok;
- float berat;
- string id_kategori, nama_produk, warna;
- }produkWanita[1000], produkPria[1000];
- //deklarasi method /fungsi
- public:
- int tampilSort(){
- }
- };
- //===========================================================fungsi utama main=========================================================================
- int main(){
- //======================================================deklarasi variable didalam struct==========================================================
- struct menu{
- string ulang, yt;
- int pil, jmlMember, jml, temp;
- }objSMenuAwal, objP, objPr, kategori, tampil;
- //============================================================deklarasi object====================================================================
- Member objMember;
- Admin objAdmin;
- Produk objProduk;
- //==========================================================output dan input=======================================================================
- do{ //perulangan do untuk mengulang program akan di pakai lagi atau tidak --> menu awal
- menuAwal: //label menu awal
- system("cls");
- kop();
- gotoxy(25,7);cout<<"1. Pembeli"<<endl;
- gotoxy(25,8);cout<<"2. Admin"<<endl;
- gotoxy(25,9);cout<<"3. Keluar program"<<endl;
- gotoxy(25,11);cout<<"Siapakah Anda ? : ";
- gotoxy(45,11);cin>>objSMenuAwal.pil;
- //=======================percabangan apabila user memilih 1 pembeli dan 2 admin==============================================================
- if (objSMenuAwal.pil==1){ //jika user adalah pembeli
- system("cls");
- menuPembeli:
- kop();
- gotoxy(25,8);cout<<"Terimakasih sudah berkunjung ke toko OnlineShop"<<endl;
- gotoxy(25,10);cout<<"Sudah Terdaftarkah Anda ? [Y/T] : ";
- gotoxy(60,10);cin>>objSMenuAwal.yt;
- //percabangan jika user memilih y / t --> y = sudah mendaftar dan t = belum mendaftar
- if (objSMenuAwal.yt=="T" || objSMenuAwal.yt=="t"){ //apabila user memilih t atau belum terdaftar --> user harus register
- jmlMember:
- system("cls");
- kop();
- gotoxy(25,7);cout<<"Berapa jumlah member yang ingin anda daftarkan ? "<<endl;
- gotoxy(25,9);cout<<"Jumlah : ";
- gotoxy(35,9);cin>>objSMenuAwal.jmlMember;
- objMember.size=objSMenuAwal.jmlMember;
- inputData: //input data oleh user
- for (int i = 0; i < objMember.size; ++i)
- {
- system("cls");
- kop();
- gotoxy(25,7);cout<<"Masukkan data Member ke - "<<i+1<<endl;
- gotoxy(25,9);cout<<"Masukkan Nama :";
- cin>>objMember.member[i].dtDasar.nama;
- gotoxy(25,10);cout<<"Masukkan Email :";
- cin>>objMember.member[i].dtDasar.email;
- gotoxy(25,11);cout<<"Masukkan No Telp :";
- cin>>objMember.member[i].dtDasar.no_telp;
- gotoxy(25,13);cout<<"Masukkan data alamat :"<<endl;
- gotoxy(25,15);cout<<"Masukkan Jalan :";
- cin>>objMember.member[i].dtAlamat.jalan;
- gotoxy(25,16);cout<<"Masukkan Provinsi :";
- cin>>objMember.member[i].dtAlamat.provinsi;
- gotoxy(25,17);cout<<"Masukkan Kota :";
- cin>>objMember.member[i].dtAlamat.kota;
- gotoxy(25,18);cout<<"Masukkan Kode Pos :";
- cin>>objMember.member[i].dtAlamat.kode_pos;
- gotoxy(25,20);cout<<"Masukkan data untuk Login:"<<endl;
- gotoxy(25,22);cout<<"Masukkan Username :";
- cin>>objMember.member[i].usr.username;
- gotoxy(25,23);cout<<"Masukkan Password :";
- cin>>objMember.member[i].usr.password;
- }
- system("cls");
- kop();
- gotoxy(25,9);cout<<"Berikut adalah data login yang harus anda ingat : "<<endl;
- gotoxy(25,10);cout<<"No member diperlukan pada saat login"<<endl;
- for (int i = 0; i < objMember.size; ++i)
- {
- gotoxy(25,12+i*4);cout<<"Username :"<<objMember.member[i].usr.username;
- gotoxy(25,13+i*4);cout<<"Password :"<<objMember.member[i].usr.password;
- gotoxy(25,14+i*4);cout<<"No Member : "<<i;
- }
- gotoxy(25,7);system("pause");
- goto menuAwal; //kembali ke menu awal atau utama
- } else if (objSMenuAwal.yt=="Y" || objSMenuAwal.yt=="y"){ //apabila user memilih y atau user sudah terdaftar tinggal login
- loginMember:
- system("cls");
- kop();
- gotoxy(25,7);cout<<"Selamat Datang || PEMBELI"<<endl;
- gotoxy(25,8);cout<<"Belanja kini lebih mudah dengan online shop"<<endl;
- gotoxy(25,10);cout<<"Username : ";
- gotoxy(36,10);cin>>objMember.log.username;
- gotoxy(25,11);cout<<"Password : ";
- gotoxy(36,11);cin>>objMember.log.password;
- gotoxy(25,12);cout<<"No Member : ";
- gotoxy(38,12);cin>>objMember.log.no_member;
- if (objMember.login(objMember.log.username, objMember.log.password, objMember.log.no_member)==0) //jika user gagal login
- {
- goto loginMember; //kembali ke menu login
- } else {
- system("cls");
- kop();
- gotoxy(25,7);cout<<"1. Wanita"<<endl;
- gotoxy(25,8);cout<<"2. Pria"<<endl;
- gotoxy(25,9);cout<<"3. Kembali"<<endl;
- gotoxy(25,11);cout<<"Pilih kategori produk untuk dilihat :"<<endl;
- gotoxy(65,11);cin>>objP.pil;
- if (objP.pil==1){ //jika user pilih 1 kategori wanita
- } else if (objP.pil==2){//jika user pilih 2 kategori pria
- } else if(objP.pil==3){
- goto menuAwal;
- }
- }
- }
- } else if (objSMenuAwal.pil==2){ //jika user adalah admin
- loginAdmin:
- system("cls");
- kop();
- gotoxy(25,7);cout<<"Selamat Datang || ADMIN"<<endl;
- gotoxy(25,8);cout<<"Belanja kini lebih mudah dengan online shop"<<endl;
- gotoxy(25,10);cout<<"Username : ";
- gotoxy(36,10);cin>>objAdmin.logAdmin.username;
- gotoxy(25,11);cout<<"Password : ";
- gotoxy(36,11);cin>>objAdmin.logAdmin.password;
- //percabangan apabila admin berhasil login atau gagal
- if (objAdmin.login(objAdmin.logAdmin.username, objAdmin.logAdmin.password)==0){ //apabila user gagal login
- goto loginAdmin; //admin diminta untuk login kembali
- } else { //apabila user berhasil login --> admin akan bisa melihat menu admin
- menuAdmin:
- system("cls");
- kop();
- //daftar menu yang bisa dilakukan oleh admin --> ada 6 menu
- gotoxy(25,7);cout<<"1. Tambah Produk";
- gotoxy(25,8);cout<<"2. Tampil Produk";
- gotoxy(25,9);cout<<"3. Lihat Pesanan";
- gotoxy(25,10);cout<<"4. Konfirmasi Pengiriman";
- gotoxy(25,11);cout<<"5. Kembali";
- gotoxy(25,12);cout<<"6. Keluar program";
- gotoxy(25,14);cout<<"Pilih : ";
- gotoxy(35,14);cin>>objPr.pil;
- //percabangan apabila user memilih salah satu dari menu -- menu ada 6
- if (objPr.pil==1){ //apabila user pilih 1 --> tambah produk
- tambahProduk:
- system("cls");
- kop();
- //daftar menu kategori yang ingin ditambahkan user
- gotoxy(25,7);cout<<"Produk apa yang ingin anda tambahkan ? "<<endl;
- gotoxy(25,9);cout<<"1. Kategori Pria "<<endl;
- gotoxy(25,10);cout<<"2. Kategori Wanita "<<endl;
- gotoxy(25,11);cout<<"3. Kembali "<<endl;
- gotoxy(25,12);cout<<"Pilih : ";
- gotoxy(32,12);cin>>kategori.pil;
- //logika percabangan
- if (kategori.pil==1) //jika yg ingin ditambahkan kategori pria
- {
- tambahPria:
- system("cls");
- kop();
- gotoxy(25,7);cout<<"Berapa jumlah produk yang ingin anda tambahkan ? "<<endl;
- gotoxy(25,9);cout<<"Jumlah : ";
- gotoxy(35,9);cin>>objPr.jml;
- //input data dinamis oleh user admin
- for (int i = 0; i < objPr.jml; ++i)
- {
- system("cls");
- kop();
- gotoxy(25,7);cout<<"Masukkan data Produk ke -"<<i+1<<endl;
- gotoxy(25,9);cout<<"Masukkan Nama Produk :";
- cin>>objProduk.produkPria[i].nama_produk;
- gotoxy(25,10);cout<<"Masukkan Harga Produk :";
- cin>>objProduk.produkPria[i].harga_produk;
- gotoxy(25,11);cout<<"Masukkan Warna Produk :";
- cin>>objProduk.produkPria[i].warna;
- gotoxy(25,12);cout<<"Masukkan Stok Produk :";
- cin>>objProduk.produkPria[i].stok;
- gotoxy(25,13);cout<<"Masukkan Berat Produk :";
- cin>>objProduk.produkPria[i].berat;
- }
- system("pause");
- goto menuAdmin;
- } else if (kategori.pil==2) //jika yang ingin ditambahkan kategori wanita
- {
- tambahWanita:
- system("cls");
- kop();
- gotoxy(25,7);cout<<"Berapa jumlah produk yang ingin anda tambahkan ? "<<endl;
- gotoxy(25,9);cout<<"Jumlah : ";
- gotoxy(35,9);cin>>objPr.jml;
- //input data produk wanita oleh user admin
- for (int i = 0; i < objPr.jml; ++i)
- {
- system("cls");
- kop();
- gotoxy(25,7);cout<<"Masukkan data Produk ke -"<<i+1<<endl;
- gotoxy(25,9);cout<<"Masukkan Nama Produk :";
- cin>>objProduk.produkWanita[i].nama_produk;
- gotoxy(25,10);cout<<"Masukkan Harga Produk : Rp. ";
- cin>>objProduk.produkWanita[i].harga_produk;
- gotoxy(25,11);cout<<"Masukkan Warna Produk :";
- cin>>objProduk.produkWanita[i].warna;
- gotoxy(25,12);cout<<"Masukkan Stok Produk [1-100] :";
- cin>>objProduk.produkWanita[i].stok;
- gotoxy(25,13);cout<<"Masukkan Berat Produk [0.0 - 100] : ";
- cin>>objProduk.produkWanita[i].berat;
- }
- system("pause");
- goto menuAdmin;
- } else if (kategori.pil==3){ //kembali ke menu admin
- goto menuAdmin;
- } else {
- goto tambahProduk;
- }
- } else if (objPr.pil==2){ //apabila user pilih 2 --> --> oleh admin
- tampil:
- system("cls");
- kop();
- gotoxy(25,7);cout<<"1. Tampilkan seluruh produk";
- gotoxy(25,8);cout<<"2. Cari produk";
- gotoxy(25,9);cout<<"3. Sorting Produk";
- gotoxy(25,10);cout<<"4. Tampilkan Produk Terbaru";
- gotoxy(25,11);cout<<"5. Tampilkan Produk Terlama";
- gotoxy(25,12);cout<<"6. Kembali";
- gotoxy(25,13);cout<<"7. Keluar Program";
- gotoxy(25,15);cout<<"Pilih : ";
- gotoxy(35,15);cin>>tampil.pil;
- if (tampil.pil==1){ //tampilkan seluruh produk //admin
- system("cls");
- kop();
- gotoxy(25,8);cout<<"Data Seluruh Produk : "<<endl;
- for (int i = 0; i < objPr.jml; ++i)
- {
- gotoxy(25,9+i*7);cout<<"ID Produk :"<<i;
- gotoxy(25,10+i*7);cout<<"Nama Produk :"<<objProduk.produkWanita[i].nama_produk;
- gotoxy(25,11+i*7);cout<<"Harga Produk : Rp. "<<objProduk.produkWanita[i].harga_produk;
- gotoxy(25,12+i*7);cout<<"Warna Produk :"<<objProduk.produkWanita[i].warna;
- gotoxy(25,13+i*7);cout<<"Stok Produk :"<<objProduk.produkWanita[i].stok;
- gotoxy(25,14+i*7);cout<<"Berat Produk :"<<objProduk.produkWanita[i].berat;
- }
- gotoxy(25,7);system("pause");
- goto tampil;
- } else if (tampil.pil==2){ //cari produk //admin
- system("cls");
- kop();
- gotoxy(25,7);cout<<"Cari produk berdasarkan : "<<endl;
- gotoxy(25,9);cout<<"1. Harga "<<endl;
- gotoxy(25,10);cout<<"2. Warna "<<endl;
- gotoxy(25,11);cout<<"3. Nama Barang "<<endl;
- gotoxy(25,12);cout<<"4. Kembali "<<endl;
- gotoxy(25,13);cout<<"5. Keluar Program "<<endl;
- gotoxy(25,14);cout<<"Pilih : "<<endl;
- } else if (tampil.pil==3){ //sorting produk
- sort:
- system("cls");
- kop();
- gotoxy(25,7);cout<<"Sorting produk berdasarkan : "<<endl;
- gotoxy(25,9);cout<<"1. Termurah ke Termahal : "<<endl;
- gotoxy(25,10);cout<<"2. Termahal ke Termurah : "<<endl;
- gotoxy(25,11);cout<<"3. Kembali "<<endl;
- gotoxy(25,13);cout<<"4. Keluar "<<endl;
- gotoxy(25,14);cout<<"Pilih : ";
- gotoxy(33,14);cin>>tampil.pil;
- //logika
- if (tampil.pil==1){ //sort termurah
- system("cls");
- kop();
- gotoxy(25,7);cout<<"Pilih kategori produk yang akan di sort : "<<endl;
- gotoxy(25,8);cout<<"1. Produk Wanita "<<endl;
- gotoxy(25,9);cout<<"2. Produk Pria "<<endl;
- gotoxy(25,10);cout<<"3. Kembali "<<endl;
- gotoxy(25,11);cout<<"4. Keluar Program "<<endl;
- gotoxy(25,12);cout<<"Pilih : ";
- gotoxy(34,12);cin>>tampil.pil;
- if (tampil.pil==1){ //sort termurah wanita
- system("cls");
- kop();
- gotoxy(25,7);cout<<"Hasil Sorting harga dari yang termurah hingga termahal kategori wanita:"<<endl;
- for(int index=0; index<objPr.jml; index++){ //looping untuk akses array
- for(int j=0; j<objPr.jml-index; j++){ //looping untuk pencocokan
- if(objProduk.produkWanita[j].harga_produk>objProduk.produkWanita[j+1].harga_produk){ //checking data yang satu dengan sebelahnya
- tampil.temp=objProduk.produkWanita[j].harga_produk; //nilai array yang akan dipindah ditampung ke temp
- objProduk.produkWanita[j].harga_produk=objProduk.produkWanita[j+1].harga_produk; //free space array lama diisi dengan data baru
- objProduk.produkWanita[j+1].harga_produk=tampil.temp; //posisi array baru ditukar dengan yg lama
- }
- }
- }
- } else if (tampil.pil==2){ //sort termurah pria
- /* code */
- } else if (tampil.pil==3){ //kembali
- goto menuAdmin;
- } else if (tampil.pil==4){ //keluar
- system("exit");
- }
- } else if (tampil.pil==2){ //sort termahal
- system("cls");
- kop();
- gotoxy(25,7);cout<<"Pilih kategori produk yang akan di sort : "<<endl;
- gotoxy(25,8);cout<<"1. Produk Wanita "<<endl;
- gotoxy(25,9);cout<<"2. Produk Pria "<<endl;
- gotoxy(25,10);cout<<"Pilih : ";
- gotoxy(34,10);cin>>tampil.pil;
- if (tampil.pil==1){ //sort termurah wanita
- } else if (tampil.pil==2){ //sort termurah pria
- /* code */
- } else if (tampil.pil==3){ //kembali
- goto menuAdmin;
- } else if (tampil.pil==4){ //keluar
- system("exit");
- }
- } else if (tampil.pil==3){ //kembali
- goto tampil;
- } else if (tampil.pil==4){ //keluar program
- system("exit");
- }
- } else if (tampil.pil==4){ //tampil terbaru
- /* code */
- } else if (tampil.pil==5){ //tampil terlama
- } else if (tampil.pil==6){ //kembali
- goto menuAdmin;
- } else if (tampil.pil==7) //keluar program
- {
- system("exit");
- }
- } else if (objPr.pil==3){ //apabila user pilih 3 --> lihat pesanan --> oleh admin
- /* code */
- } else if (objPr.pil==4){//apabila user pilih 4 --> konfirmasi pengiriman --> oleh admin
- /* code */
- } else if (objPr.pil==5){//apabila user pilih 5 -- kembali ke menu sebelumnya login admin --> oleh admin
- goto loginAdmin;
- } else if(objPr.pil==6){ //apabila user pilih 6 --> keluar program --> oleh admin
- system("exit");
- } else { //handle apabila user memilih selain menu yang disediakan --> oleh admin
- }
- }
- } else if(objSMenuAwal.pil==3){ //jika user memilih 3 --> keluar dari program
- system("exit");
- }else { //handle apabila user menginputkan key selain 1 pembeli dan 2 admin // user akan diminta untuk kembali ke menu Awal
- system("cls");
- kop();
- gotoxy(25,7);cout<<"Masukkan pilihan anda dengan benar";
- gotoxy(25,8);system("pause");
- goto menuAwal;
- }
- //=====================================statement untuk menanyakan apakah user akan menggunakan program kembali/mengulang=====================
- system("cls");
- kop();
- gotoxy(25,7);cout<<"Apakah anda masih ingin berbelanja ? [y/t]";
- cin>>objSMenuAwal.ulang;
- }while(objSMenuAwal.ulang=="y" || objSMenuAwal.ulang=="Y");
- return 0;
- }
Add Comment
Please, Sign In to add comment