Kamis, 23 Juni 2016

Contoh Source Code Single Linked List

Contoh Source Code Linked List
Compiler : Code Block

Di dalamnya terdapat Hapus Data dan Tukar Data, bila anda ingin menghapus data terdapat Hapus Depan, Hapus Tengah, Hapus Akhir, dan ingin menukar data keinginan anda untuk menukar data dari data ke... dan data ke...

selamat mencoba....

#include <iostream>
#include <stdlib.h>

using namespace std;

struct tgl {
    int tanggal;
    int bulan;
    int tahun;
 };

struct data_penjualan {
    string meja;
    string bahan;
    string alat;
    string cat;
    int no;
    data_penjualan *next;
    tgl produksi;
 }penjualan[20];

data_penjualan *awal,*akhir,*baru,*bantu,*hapus,*before,*x,*y;

main ()
{
    int data,i,j=0,k1,k2,jum=0;

    cout<<"Masukkan batas Data : "; cin>>data;

    system ("cls");
    do{
        int k1;
        cout<<"\tMENU\n\n";
        cout<<"1. Inputkan Data \n";
        cout<<"2. Lihat Semua Data \n";
        cout<<"3. Input yang dipilih \n";
        cout<<"4. Hapus Data \n";
        cout<<"5. Tukar Data \n";
        cout<<"6. Keluar \n\n";
        cout<<"Masukkan pilihan : ";
        cin>>k1;

    system("cls");
    switch (k1) {

    case 1 :

        if (jum<1 && jum<data){
            i = 0;
        }else {
            i=jum;
        }

        if(jum<data){
            do{
                cout<<"\nData Meja ke-"<<i+1<<endl;
                    baru = new data_penjualan;
                cout<<"Pilih Meja Khusus : "; cin>>penjualan[i].meja;
                    baru->meja = penjualan[i].meja;
                cout<<"Pilih Bahan : "; cin>>penjualan[i].bahan;
                    baru->bahan = penjualan[i].bahan;
                cout<<"Pilih Alat : "; cin>>penjualan[i].alat;
                    baru->alat = penjualan[i].alat;
                cout<<"Pilih Cat : "; cin>>penjualan[i].cat;
                    baru->cat = penjualan[i].cat;
                cout<<"No Urutan Meja : "; cin>>penjualan[i].no;
                    baru->no = penjualan[i].no;
                    baru->next = NULL;

                if (awal==NULL) {
                        awal = baru;
                        akhir = baru;
                    } else {
                        akhir->next = baru;
                    }
                        akhir = baru;
                i++;

                if(i==data){
                    i++;
                } else {
                    cout<<"imputkan data lagi ketik [1] jika tidak [0] : ";cin>>k1;
                }
                jum=jum+1;
            }while(i<=data && k1==1);
        } else{
        cout<<"data kosong";
        }

    break;

    case 2:

        if(jum<1){
            cout<<"data kosong";
        } else{
            cout<<"\n-------- DATA MEJA --------"<<endl<<endl;

            i=0;
            bantu=awal;
            while(i<jum && awal!=NULL){
                cout<<"\nData Meja  Ke-"<<i+1<<" ";
                cout<<"\nMeja       : " <<bantu->meja;
                cout<<"\Bahan       : " <<bantu->bahan;
                cout<<"\nAlat       : " <<bantu->alat;
                cout<<"\nCat        : " <<bantu->cat;
                cout<<"\nNo Urut    : " <<bantu->no;
                cout<<"\n";
                bantu = bantu->next;
                i++;
            }
        }

    break;

    case 3:

        if(jum<1){
            cout<<"data kosong";
        } else{
            cout<<"masukkan data yang ingin di lihat : ";
            cin>>k1;

            if(i>data || i>jum){
                cout<<" data kosong ";
            } else {
                if(i<1) {
                    cout<<" data kosong ";
                } else {
                    bantu=awal;

                    while (bantu->no!=k1){
                        bantu=bantu->next;
                    }
                    cout<<endl<<endl;
                    cout<<"Meja         : " <<bantu->meja;
                    cout<<"Bahan        : " <<bantu->bahan;
                    cout<<"Alat         : " <<bantu->alat;
                    cout<<"Cat          : " <<bantu->cat;
                    cout<<"\nNo Urut    : " <<bantu->no;
                }
            }
        }

    break;

    case 4:

        if(k1<1){
            cout<<"data kosong";
        } else{
            cout<<"=== HAPUS DATA === \n\n";
            cout<<"1. Hapus Data Awal\n";
            cout<<"2. Hapus Data Tengah\n";
            cout<<"3. Hapus Data Akhir\n";
            cout<<"Pilihan: ";
            cin>>k1;
        }
        switch (k1) {

        case 1 :

            hapus = awal;
            awal = hapus->next;
            hapus = NULL;
            jum--;
            cout<<"Data berhasil dihapus";

        break;

        case 2 :

            cout<<"Hapus No Meja : "; cin>>i;
            hapus=awal;
            while (hapus->no!=i)
            {
                bantu=hapus;
                hapus=hapus->next;
            }
            bantu->next=hapus->next;
            hapus=NULL;
            jum--;
            cout<<"Data berhasil di hapus";

        break;

        case 3 :

            bantu=awal;
            while (bantu->next->next!=NULL)
            {
                bantu=bantu->next;
            }
            akhir=bantu;
            bantu->next=NULL;
            jum --;
            cout<<"Data berhasil dihapus";

            break;

                default: cout<<"Pilihan tidak tersedia";

            break;
            }

        break;

    case 5:

        if (data<2) {
                    cout<<"Tidak dapat menukar data.\nJumlah data: "<<data;
                } else {
                    do {
                        system("cls");
                        cout<<"=== TUKAR DATA === \n\n";

                        if (data==2) {
                            cout<<"Data tersisa 2.\n";
                            bantu = awal;
                            akhir->next = awal;
                            awal->next = NULL;
                            awal = akhir;
                            akhir = bantu;
                        } else if (data>2) {
                            cout<<"Masukkan No urut Pertama: "; cin>>k1;

                            i = 1;
                            x = awal;
                            while (x!=NULL && x->no!=k1) {
                                if (x->next==NULL) {
                                    i = 0;
                                    break;
                                } else {
                                    x = x->next;
                                }
                            }

                            if (i==0) {
                                cout<<"Masukkan No urut Pertama "<<k1<<" tidak ada.\n";
                            } else {
                                i==1;
                                y = awal;
                                cout<<"Masukkan No urut Kedua: "; cin>>k2;
                                while (y!=NULL && y->no!=k2) {
                                    if (y->next==NULL) {
                                        i = 0;
                                        break;
                                    } else {
                                        y = y->next;
                                    }
                                }

                                if (i==0) {
                                    cout<<"Masukkan No urut Kedua"<<k2<<" tidak ada.\n";
                                } else {
                                    //PENUKARAN DATA
                                    baru = new data_penjualan;
                                    baru->meja = x->meja;
                                    baru->bahan = x->bahan;
                                    baru->alat = x->alat;
                                    baru->cat = x->cat;
                                    baru->no = x->no;

                                    baru->next = NULL;

                                    x->meja = y->meja;
                                    x->bahan = y->bahan;
                                    x->alat = y->alat;
                                    x->cat = y->cat;
                                    x->no = y->no;

                                    y->meja = baru->meja;
                                    y->bahan = baru->bahan;
                                    y->alat = baru->alat;
                                    y->cat = baru->cat;
                                    y->no = baru->no;

                                    baru = NULL;
                                    cout<<"Data sukses ditukar!\n";
                                }
                            }

                        }
                        cout<<"\nTukar data lagi tekan 1! "; cin>>k1;
                    } while(k1==1);
                }
    break;

    case 6:{return 6;};

    break;

    }
    cout<<"\nKetik angka sembarang untuk kembali ke MENU : ";
    cin>>k1;
    system("cls");
    }while(k1);
}

Tidak ada komentar: