/*
*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