Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <stdlib.h>
- #include <string.h>
- #include <windows.h>
- using namespace std;
- struct produk{
- int laki_laki = 56500;
- int perempuan = 76100;
- int jumlah_kain=0;
- int biaya_tambahan;
- int kain_lebih = 0;
- int total_meter = 0;
- int total=0;
- int total_tambahan=0;
- char nama[20];
- char jenis_baju[15];
- char kualitas[20];
- };
- int top = 0;
- produk data[20];
- bool cek;
- void input(){
- cin.ignore();
- cout<<"Masukan Nama pembeli = ";cin.getline(data[top].nama, 20);
- cout<<"Masukan Jenis baju = ";cin.getline(data[top].jenis_baju, 15);
- if(strcmp(data[top].jenis_baju, "laki-laki")==0){
- cout<<"Masukan Kualitas kain = ";cin.getline(data[top].kualitas, 20);
- if(strcmp(data[top].kualitas, "super")==0){
- cout<<"\nMasukan Jumlah meter kain yang anda beli = ";cin>>data[top].jumlah_kain;
- if(data[top].jumlah_kain >= 1){
- if(data[top].jumlah_kain > 2){
- cout<<"\nAnda membeli jumlah kain lebih dari standart kain laki - laki";
- cout<<"\nAnda dikenakan biaya tambahan = ";cin>>data[top].biaya_tambahan;
- data[top].total_tambahan = ((data[top].jumlah_kain - 2)* 2)* data[top].biaya_tambahan;
- }
- data[top].total_meter = (data[top].jumlah_kain) * 40000;
- }
- data[top].total = data[top].laki_laki + data[top].total_tambahan + data[top].total_meter;
- }
- else if(strcmp(data[top].kualitas, "bagus")==0){
- cout<<"\nMasukan Jumlah meter kain yang anda beli = ";cin>>data[top].jumlah_kain;
- if(data[top].jumlah_kain >= 1){
- if(data[top].jumlah_kain > 2){
- cout<<"\nAnda membeli jumlah kain lebih dari standart kain laki - laki";
- cout<<"\nAnda dikenakan biaya tambahan = ";cin>>data[top].biaya_tambahan;
- data[top].total_tambahan = ((data[top].jumlah_kain -2)*2)* data[top].biaya_tambahan;
- }
- data[top].total_meter = (data[top].jumlah_kain) * 30000;
- }
- data[top].total = data[top].laki_laki + data[top].total_tambahan + data[top].total_meter;
- }
- else if(strcmp(data[top].kualitas, "biasa")==0){
- cout<<"\nMasukan Jumlah meter kain yang anda beli = ";cin>>data[top].jumlah_kain;
- if(data[top].jumlah_kain >= 1){
- if(data[top].jumlah_kain > 2){
- cout<<"\nAnda membeli jumlah kain lebih dari standart kain laki - laki";
- cout<<"\nAnda dikenakan biaya tambahan = ";cin>>data[top].biaya_tambahan;
- data[top].total_tambahan = ((data[top].jumlah_kain - 2) * 2)* data[top].biaya_tambahan;
- }
- data[top].total_meter = (data[top].jumlah_kain) * 25000;
- }
- data[top].total = data[top].laki_laki + data[top].total_tambahan + data[top].total_meter;
- }
- }
- else if(strcmp(data[top].jenis_baju, "perempuan")==0){
- cout<<"Masukan Kualitas kain = ";cin.getline(data[top].kualitas, 20);
- if(strcmp(data[top].kualitas, "super")==0){
- cout<<"\nMasukan Jumlah meter kain yang anda beli = ";cin>>data[top].jumlah_kain;
- if(data[top].jumlah_kain >= 1){
- if(data[top].jumlah_kain > 3){
- cout<<"\nAnda membeli jumlah kain lebih dari standart kain perempuan";
- cout<<"\nAnda dikenakan biaya tambahan = ";cin>>data[top].biaya_tambahan;
- data[top].total_tambahan = ((data[top].jumlah_kain - 2)* 2)* data[top].biaya_tambahan;
- }
- data[top].total_meter = (data[top].jumlah_kain) * 40000;
- }
- data[top].total = data[top].perempuan + data[top].total_tambahan + data[top].total_meter;
- }
- else if(strcmp(data[top].kualitas, "bagus")==0){
- cout<<"\nMasukan Jumlah meter kain yang anda beli = ";cin>>data[top].jumlah_kain;
- if(data[top].jumlah_kain >= 1){
- if(data[top].jumlah_kain > 3){
- cout<<"\nAnda membeli jumlah kain lebih dari standart kain perempuan";
- cout<<"\nAnda dikenakan biaya tambahan = ";cin>>data[top].biaya_tambahan;
- data[top].total_tambahan = ((data[top].jumlah_kain -2)*2)* data[top].biaya_tambahan;
- }
- data[top].total_meter = (data[top].jumlah_kain) * 30000;
- }
- data[top].total = data[top].perempuan + data[top].total_tambahan + data[top].total_meter;
- }
- else if(strcmp(data[top].kualitas, "biasa")==0){
- cout<<"\nMasukan Jumlah meter kain yang anda beli = ";cin>>data[top].jumlah_kain;
- if(data[top].jumlah_kain >= 1){
- if(data[top].jumlah_kain > 3){
- cout<<"\nAnda membeli jumlah kain lebih dari standart kain perempuan";
- cout<<"\nAnda dikenakan biaya tambahan = ";cin>>data[top].biaya_tambahan;
- data[top].total_tambahan = ((data[top].jumlah_kain - 2) * 2)* data[top].biaya_tambahan;
- }
- data[top].total_meter = (data[top].jumlah_kain) * 25000;
- }
- data[top].total = data[top].perempuan + data[top].total_tambahan + data[top].total_meter;
- }
- }
- top++;
- }
- void quickSort(int kiri, int kanan){
- int i = kiri, j = kanan, huruf1, huruf2;
- produk simpan;
- int tengah = (kiri + kanan) / 2;
- while(data[i].nama[0] < data[tengah].nama[0]){
- i++;
- }
- while(data[j].nama[0] > data[tengah].nama[0]){
- j--;
- }
- if(j != tengah && i != j){
- if(data[j].nama[0] == data[tengah].nama[0]){
- int arr = 0;
- bool cek;
- while(data[tengah].nama[arr] != '\0'){
- cek = false;
- while(data[j].nama[arr] > data[tengah].nama[arr]){
- j--;
- arr = 0;
- cek = true;
- }
- if(cek)
- break;
- arr++;
- }
- }
- }
- if(i != tengah && j != i){
- if(data[i].nama[0] == data[tengah].nama[0]){
- int arr = 0;
- bool cek;
- while(data[tengah].nama[arr] != '\0'){
- cek = false;
- while(data[i].nama[arr] < data[tengah].nama[arr]){
- i++;
- arr = 0;
- cek = true;
- }
- if(cek)
- break;
- arr++;
- }
- }
- }
- if(i <= j){
- simpan = data[i];
- data[i] = data[j];
- data[j] = simpan;
- i++;
- j--;
- }
- if(kiri<j){
- quickSort(kiri, j);
- }
- if(i < kanan){
- quickSort(i, kanan);
- }
- }
- void cari(){
- char nama[20];
- bool sub_cek;
- int cari, sub_cari, huruf1, huruf2;
- int ketemu = 0;
- cin.ignore();
- cout<<"Masukan Nama yang ingin Dicari : ";
- cin.getline(nama, 20);
- for(int x = 0; x<top; x++){
- cari = 0;
- bool finded = false;
- sub_cek = false;
- cari = 0;
- sub_cari = 0;
- huruf1 = int(data[x].nama[sub_cari]);
- huruf2 = int(nama[cari]);
- if(huruf1 < 97)
- huruf1 = huruf1 + 32;
- if(huruf2 < 97)
- huruf2 = huruf2 + 32;
- while(data[x].nama[sub_cari]!='\0'){
- huruf1 = int(data[x].nama[sub_cari]);
- huruf2 = int(nama[cari]);
- if(huruf1 < 97)
- huruf1 = huruf1 + 32;
- if(huruf2 < 97)
- huruf2 = huruf2 + 32;
- if(data[x].nama[sub_cari] == nama[cari] || huruf1 == huruf2){
- while(nama[cari]!='\0'){
- huruf1 = int(data[x].nama[sub_cari]);
- huruf2 = int(nama[cari]);
- if(huruf1 < 97)
- huruf1 = huruf1 + 32;
- if(huruf2 < 97)
- huruf2 = huruf2 + 32;
- if(data[x].nama[sub_cari] != nama[cari] || huruf1 != huruf2){
- finded = false;
- break;
- }
- else
- finded = true;
- cari++;
- sub_cari++;
- }
- if(finded){
- sub_cek = true;
- }
- }
- if(!sub_cek)
- sub_cari++;
- else
- break;
- }
- if(sub_cek){
- cout<<"\nNama Pembeli = "<<data[x].nama;
- cout<<"\nJenis Baju = "<<data[x].jenis_baju;
- cout<<"\nKualitas = "<<data[x].kualitas;
- cout<<"\nJenis Kain = "<<data[x].jumlah_kain;
- cout<<"\nBiaya Tambahan = "<<data[x].biaya_tambahan;
- cout<<"\nTotal = "<<data[x].total;
- cout<<endl<<endl;
- ketemu++;
- }
- if(ketemu == 0 && x == top-1){
- cout<<"Data Tidak Ditemukan"<<endl;
- }
- }
- }
- void tampil(){
- for(int i=0; i<top; i++){
- cout<<"\nNama Pembeli = "<<data[i].nama;
- cout<<"\nJenis Baju = "<<data[i].jenis_baju;
- cout<<"\nKualitas = "<<data[i].kualitas;
- cout<<"\nJenis Kain = "<<data[i].jumlah_kain;
- cout<<"\nBiaya Tambahan = "<<data[i].biaya_tambahan;
- cout<<"\nTotal = "<<data[i].total;
- cout<<endl;
- }
- cout<<endl;
- }
- int main()
- {
- bool cek = false;
- int menu;
- char ulang;
- do{
- cout<<"\nMenu";
- cout<<"\n1. Input";
- cout<<"\n2. Sorting";
- cout<<"\n3. Cari";
- cout<<"\n4. View";
- cout<<"\nPilihan anda = ";cin>>menu;
- switch(menu){
- case 1:
- input();
- break;
- case 2:
- quickSort(0, top-1);
- break;
- case 3:
- cari();
- break;
- case 4:
- tampil();
- break;
- }
- cout<<"\n\nUlang = ";cin>>ulang;
- system("cls");
- }while(ulang=='y');
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment