Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <stdlib.h>
- using namespace std;
- struct data_barang {
- int harga;
- string namabarang;
- string kode;
- };
- struct node {
- int index,Urutan;
- data_barang data;
- node *next;
- };
- node *baru,*awal=NULL,*akhir=NULL,*bantu,*bantu2;
- int indeks=-1;
- void buatNode(int Urutan,string namabarang,int harga,string kode){
- indeks++;
- baru = new node;
- baru->next = NULL;
- baru->index = indeks;
- baru->Urutan = Urutan;
- baru->data.namabarang = namabarang;
- baru->data.harga = harga;
- baru->data.kode = kode;
- if(awal==NULL){
- awal=akhir=baru;
- }else{
- akhir->next = baru;
- akhir=baru;
- }
- }
- void tambahData(){
- int Urutan,harga;
- string namabarang,kode;
- cout<<"--------------INVENTARIS TOKO ELEKTRONIK---------------"<<endl;
- cout<<"Urutan \t\t: "; cin>>Urutan;
- cout<<"Nama Barang \t\t: "; cin>>namabarang;
- cout<<"Harga \t\t: "; cin>>harga;
- cout<<"Kode \t\t: "; cin>>kode;
- buatNode(Urutan,namabarang,harga,kode);
- }
- void view(){
- if(indeks!=-1){
- bantu = awal;
- for(int i=0;i<=indeks;i++){
- cout << "DATA INVENTARIS TOKO : " << endl;
- cout<<"Urutan \t\t: "<<bantu->Urutan<<endl;
- cout<<"Nama Barang \t\t: "<<bantu->data.namabarang<<endl;
- cout<<"Harga \t\t: "<<bantu->data.harga<<endl;
- cout<<"Kode \t\t: "<<bantu->data.kode<<endl;
- bantu=bantu->next;
- }
- }
- }
- void view(int cari)
- {
- if(indeks!=-1){
- bantu = awal;
- for(int i=0;i<=indeks;i++){
- if(cari == bantu->Urutan)
- {
- cout << "DATA INVENTARIS TOKO : " << endl;
- cout<<"Urutan \t\t: "<<bantu->Urutan<<endl;
- cout<<"Nama Barang \t\t: "<<bantu->data.namabarang<<endl;
- cout<<"Harga \t\t: "<<bantu->data.harga<<endl;
- cout<<"Kode \t\t: "<<bantu->data.kode<<endl;
- }
- bantu=bantu->next;
- }
- system("pause");
- }
- }
- void urutkanMenaik(){
- node *tmp;
- bantu = awal;
- for(int i=0;i<indeks;i++){
- bantu=bantu2=awal;
- while(bantu->next!=NULL){
- if(bantu->Urutan > bantu->next->Urutan){
- tmp = bantu->next;
- bantu->next = bantu->next->next;
- tmp->next = bantu;
- if(bantu==awal){
- awal=bantu2=tmp;
- }else{
- bantu2->next=tmp;
- }
- bantu=tmp;
- }
- bantu2 = bantu;
- bantu = bantu->next;
- }
- }
- }
- node *cariTengah(node *awalNode,node *akhirNode){
- if(awalNode == NULL){
- return NULL;
- }
- node *sekarang = awalNode;
- node *depan = awalNode->next;
- while(depan!=akhirNode){
- depan = depan->next;
- if(depan!=akhirNode){
- sekarang = sekarang->next;
- depan = depan->next;
- }
- }
- return sekarang;
- }
- bool cekUrutMenaik(){
- if(indeks == -1 || indeks == 0){
- return true;
- }
- bantu = awal;
- for(int i=0;i<indeks;i++){
- if(bantu->Urutan> bantu->next->Urutan ){
- return false;
- }
- bantu=bantu->next;
- }
- return true;
- }
- void cari(){
- bantu = awal;
- bantu2 = NULL;
- int carikode;
- cout << "Masukkan Urutan yang mau di cari : ";
- cin >> carikode;
- view(carikode);
- }
- int main()
- {
- int menu;
- do{
- system("cls");
- view();
- cout << "---------------------INVENTARIS TOKO ELEKTRONIK----------------------" <<endl;
- cout << "Menu : " << endl;
- cout << "1. Inputkan data" << endl;
- cout << "2. Mengurutkan " << endl;
- cout << "3. Pencarian" << endl;
- cout << "4. Keluar" << endl;
- cout << "Masukkan menu :";
- cin >> menu;
- if(menu == 1){
- tambahData();
- }else if(menu == 2){
- urutkanMenaik();
- }else if(menu == 3){
- cari();
- }
- }while(menu !=4);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement