Single LinkList Tutorial



/*
*Pendeskripsian Scripts 100% dibuat oleh Taufiq Abdullah
*Gunakan file ini untuk pembelajaran LinkList
*Bebas untuk di ubah, dimodifikasi dan di sebarluaskan
*Info lebih lanjut kunjungi www.tabstudio.ml
*/

/*
*disini kita akan belajar tentang :
* 1. membuat struck untuk data dan pointer
* 2. membuat pointer head
* 3. membuat pointer baru
* 4. fungsi init, untuk mengechek/memastikan
* 5. membuat fungsi iskosong, untuk mengecheck apakah linklist kosong/tidak
* 6. membuat fungsi tampil, untuk menampilkan isi dari linklist
* 7. membuat fungsi isidepan, untuk mengisi data dari depan/head
* 8. membuat menu "isi depan" , "tampil" , "exit"
*/

#include <iostream>
using namespace std;

struct tnode //struktur tnode

    int data; //memiliki data
    tnode *next; //dan pointer untuk menunjuk ke node selanjutnya
};
tnode *head; //membuat head berupa tnode dari struck yg kita buat di atas

/*
tnode *baru; // membuat baru berupa tnode
baru=new tnode; //memastikan bahwa baru itu adalah tnode yg new/baru
baru->data=databaru; //data si "baru" berupa "databaru" yg kita input nanti
baru->next=NULL; //dan :baru" next adalah NULL untuk menunjuk ke node NULL
*/

void init() //untuk memastikan bahwa head masih NULL / kosong berarti linklist masih kosong
{
        head=NULL; //membuat head tidak menuju kemana" alias null
}

int iskosong() //membuat fungsi pengecheckan "IsKosong" manfaatnya untuk mengecheck apakah si link list ada isinya apa nggak
{
    if(head==NULL) // jika head = null
    {
        return 1; // maka isKosong menjadi 1
    }
    else  // kecuali
    {
        return 0; //jika head tidak null/berisi maka IsKosong menjadi 0
    }
}

void tampil() //membuat fungsi tampil
{
    tnode *bantu; //membuat tnode baru bernama bantu
    bantu=head; //bantu diletakan di depan, bantu = head posisi bantu ada di head sekarang !
   
    if (iskosong()==0) //jika iskosong == return 0 (berisi)
    {
        while (bantu!=NULL) //maka dilakukan pengulangan
        {
            cout<<"["<<bantu->data<<"]"; //mencetak data bantu->data
            bantu=bantu->next; //lalu bantu pindah ke bantu->next maksudnya pindah ke node berikutnya, (kemudian balik ke atas lagi selama while/ looping belum selesai
        }
    }
    cout<<"[Kosong]"<<endl;// maka akan mencetak "[Kosong]"
}

void isidepan(int databaru) //membuat fungsi isi depan dengan int databaru
{
    tnode *baru; //membuat tnode baru
    baru=new tnode; //baru = new tnode dari struck
    baru->data=databaru; // baru data = databaru yang nnti akan kita input
    baru->next=NULL; // baru -> next = null aritnya menunjuk ke null
   
    if(iskosong()==1) //jika iskosong == 1 (tidak berisi) maka :
    {
        head=baru; // head = baru, kita mengisi si Head dengan data si *baru
        head->next=NULL; // merubah head->next menjadi null
    }
    else //bila iskosong berisi maka
    {
        baru->next=head; //si baru next menunjuk ke head
        head=baru; // lalu si head di isi dengan data si baru
    }
    cout<<"data Masuk"<<endl;
}

int main() //membuat Main
{
    int pil, databaru; //membuat int pil untuk menyimpan pilihan dan databaru untuk menyimpan databaru
    do//membuat looping do
    {
        cout<<"1. isi depan"<<endl; //cout menu 1
        cout<<"2. tampil"<<endl;// cout menu 2
        cout<<"3. exit"<<endl; //cout menu 3
        cin>>pil; //menyimpan pilihan dalam int pil
        switch (pil) //melakukan switch untuk "pil"
        {
            case 1: //case 1, bila kita masukan pil = 1
            {
                cout<<"Masukan Data : "; //melakukan pencetakan untuk perintah memasukan data
                cin>>databaru; //menyimpan data yang di input ke databaru
                isidepan(databaru); //memanggil function isidepan
                break; //break, berhenti dari case 1
            }
            case 2: //case 2, bila kita masukan pil = 2
            {
                tampil(); //memanggil fungsi tampil
                break; //break, berhenti dari case 2
            }
        }
    }
    while(pil!=3);//jika si pil tidak = 3, maka dia akan ngeLoop si "DO while" diatas
}

0 comments:

Post a Comment

 

Ads

RoundNesia Developer

Ads

Twitter Updates

Ads

Taufiq Abdullah

Smiley face
- 3D/2D Artist
- Animator
- Little Programer
- Graphic Designer