Contoh Program Single Linked List C++


Pada kali ini saya ingin memberikan sedikit pengetahuan tentang pengertian linked list dan contoh kodingan single linked list ,oke langsung saja …

LINKED LIST , linked list adalah sekumpulan elemen bertipe sama, yang mempunyai keterurutan tertentu, yang setiap elemennya terdiri dari dua bagian, Linked list juga merupakan suatu cara untuk menyimpan data dengan struktur sehingga dapat secara otomatis menciptakan suatu tempat baru untuk menyimpan data yang diperlukan. Struktur ini lebih dinamis karena banyaknya elemen dengan mudah ditambah atau dikurangi, berbeda dengan array yang ukurannya tetap.

Oke , untuk memahami linked list ini, terlebih dahulu anda harus tahu konsep pointer dan pengalokasian memori.
Coba anda bayangkan apabila anda mendeklarasikan array dari record(array of record) sebanyak 10 elemen. Setiap kali program dijalankan, maka akan memesan memory sebesar 10x ukuran record.
Itu merupakan suatu pemborosan walaupun kita hanya menggunakan 5 elemen record.

Maka dari itu, biasanya para programer lebih memilih menggunakan linked list dalam pemrograman. Linked list dibedakan atas 2 jenis yaitu single linked list dan double linked list.
     1.      Single linked list
Single linked list ini mempunyai satu pointer untuk setiap node yang menunjukan ke node berikutnya, artinya hanya punya satu arah .

     2.      Double linked list
Double linked list ini mempunyai dua pointer yang menunjukan ke node berikut nya dan sebelum nya , artinya punya dua arah .



Double linked list dapat di lihat pada gambar di atas pointer , node pertama tidak mempunyai pendahulu , jadi pointer yang menunjukan ke elemen selanjutnya adalah elemen yang tidak ada ( NIL ) 


Contoh kodingan single linked list

#include <iostream>
#include <conio.h>
#include <stdio.h>
#include <windows.h>
//#include <alloc.h>

using namespace std;
int pil;
int add_pilih_admin1();
int add_baru_admin2();
int add_depan_admin3();
int add_belakang_admin4();
int delete_depan_admin5();
int delete_belakang_admin6();
int add_tampil_admin7();
struct simpul
{
    char admin1[15], admin2 [20];
    int admin3;
    struct simpul *next;
} mhs, *baru, *awal=NULL, *akhir=NULL,*hapus,*bantu;
int clrscr()
{
    system("cls");
}
int main()
{
    do
    {
        clrscr();
        cout<<"MENU SINGLE LINKEDLIST LIMA5ATU"<<endl;
        cout<<"1. Tambah Depan"<<endl;
        cout<<"2. Tambah Belakang"<<endl;
        cout<<"3. Hapus Depan"<<endl;
        cout<<"4. Hapus Belakang"<<endl;
        cout<<"5. Tampilkan"<<endl;
        cout<<"6. Selesai"<<endl;
        cout<<"Inputkan Pilihan Anda : ";
        cin>>pil;
        add_pilih_admin1();
    } while(pil!=6);
    return 0;
}
int add_pilih_admin1()
{
    if(pil==1)
        add_depan_admin3();
    else if(pil==2)
  add_belakang_admin4();
    else if(pil==3)
        delete_depan_admin5();
     else if(pil==4)
        delete_belakang_admin6();
      else if(pil==5)
        add_tampil_admin7();
    else
        cout<<"admin ganteng";
}
int add_baru_admin2()
{
    baru=(simpul*)malloc(sizeof(struct simpul));
    cout<<"input nim   : ";cin>>baru->admin1;
    cout<<"input nama  : ";cin>>baru->admin2;
    cout<<"input umur  : ";cin>>baru->admin3;
    baru->next=NULL;
}
int add_depan_admin3()
{
    add_baru_admin2();
    if(awal==NULL)
    {
        awal=baru;
        akhir=baru;
        akhir->next=NULL;
    }
    else
    {
        baru->next=awal;
        awal=baru;
    }
    cout<<endl<<endl;
    add_tampil_admin7();
}
int add_belakang_admin4()
{
    add_baru_admin2();
    if(awal==NULL)
    {
        awal=baru;
    }
    else
    {
        akhir->next=baru;
    }
    akhir=baru;
    akhir->next=NULL;
    cout<<endl<<endl;
    add_tampil_admin7();
}

int delete_depan_admin5()
{
    if (awal==NULL)
        cout<<"Kosong";
    else
    {
        hapus=awal;
        awal=awal->next;
        free(hapus);
    }
   cout<<endl<<endl;
    add_tampil_admin7();
}
int delete_belakang_admin6()
{
    if (awal==NULL)
        cout<<"Kosong";
    else if(awal==akhir)
    {
         hapus=awal;
         awal=awal->next;
         free(hapus);
    }
    else
    {
        hapus=awal;
        while(hapus->next!=akhir)
             hapus=hapus->next;
        akhir=hapus;
        hapus=akhir->next;
        akhir->next=NULL;
        free(hapus);
    }
    cout<<endl<<endl;
    add_tampil_admin7();
}
int add_tampil_admin7()
{
     if (awal==NULL)
          cout<<"Kosong";
     else
     {
         bantu=awal;
         while(bantu!=NULL)
         {
            cout<<"  nim  : "<<bantu->admin1;
            cout<<"  nama : "<<bantu->admin2;
            cout<<"  umur : "<<bantu->admin3<<endl;
            bantu=bantu->next;
         }
     }
     getch();
}

Untuk kurang lebihnya bisa di Modif sendiri ya sob,, Terimakasih.
Selamat Mencoba, Semoga Berhasil.

Share this

Related Posts

Previous
Next Post »

3 comments

comments
May 11, 2018 at 11:10 PM delete

sangat bermanfaat! terimakasih kak^^

Reply
avatar
March 7, 2019 at 8:15 PM delete

gabisa di run kak programnya

Reply
avatar
May 12, 2019 at 12:01 AM delete

C++ Program To Implement Singly Linked List

Reply
avatar