C++ single linked list

Contoh Program C++ Single Linked List

Taufiksi – Yoo, kali ini kita akan membahas mengenai single linked list yang merupakan materi struktur data di dalam C++.

Linked list adalah sebuah struktur yang berupa rangkaian elemen saling berkaitan dimana tiap elemen dihubungkan ke elemen lain melalui pointer.

Apa itu pointer ? Pointer adalah alamat elemen, penggunaan pointer mengacu pada elemen berakibat elemen yang bersebelahan secara logik walaupun tidak bersebelahan secara fisik maupun memory.

Penyimpanan dan pengolahan data dari sekelompok data yang telah terorganisir dalam sebuah urutan tertentu bisa dilakukan dengan menggunakan array. Namun ada cara lain untuk menyimpan dan mengolah sekumpulan data yaitu menggunakan pointer.

Penggunaan pointer sangat mendukung dalam pembentukan struktur data dinamis. Salah satu sturktur data dinamis adalah linked list.

Mulai Online-kan Projectmu

Udah ngodingnya capek, tapi masih di localhost ? tenang, yang kamu perlukan hanya uploud project ke hosting agar bisa diakses orang lain. Beli hosting sekarang dan dapatkan domain gratis.

Beli Hosting

Artinya adalah linked list adalah kumpulan dari komponen yang saling berkaitan satu sama lain melalui pointer. Masing masing komponen sering disebut dengan simpul atau node atau juga verteks.

Setiap simpul pada dasarnya dibagi dua bagian. Bagian pertama disebut dengan bagian isi atau informasi dan data berisi nilai yang disimpan oleh simpul.

Kemudian bagian kedua disebut juga bagian pointer yaitu berisi alamat dari simpul berikutnya atau sebelumnya.

Linked list bisa dibuat dengan dua bagian besar yaitu single linked list dan double linked list. Baik keduanya bisa dibuat secara melingkar.

Untuk lebih dalam dan nantinya kita akan membuat program C++ single linked list maka kita harus tau dulu pengertiannya dulu.

Pengertian Single Linked List

Single linked list adalah linked list yang paling sederhana. Jadi setiap simpul menjadi dua bagian yaitu bagian isi dan bagian pointer.

Bagian isi adalah bagian yang berisi data yang di simpan oleh simpul sedangkan bagian pointer merupakan bagian yang berisi alamat dari simpul berikutnya.

Single linked list C++

Simpelnya single linked list adalah sebuah linked list yang menggunakan variabel pointer untuk menyimpan banyak data dengan metode linked list.

Program C++ untuk Menambahkan Simpul Single Linked List

Kita mencoba menambahkan simpul di posisi tertentu. Penyisipan simpul bisa dilakukan dari posisi depan, belakang bahkan di tengah juga bisa.

Menambah Simpul Depan

Operasi ini akan menyisipkan simpul baru dan selalu berada di posisi pertama atau depan dari single linked list.

Bentuk dari programnya C++ single linked list akan seperti berikut ini :

void insertDepan(int databaru)
{
    TNode *baru;
    baru = new TNode;
    baru->data = databaru;
    baru->next = NULL;
    if(isEmpty()==1)
    {
        head=tail=baru;
        tail->next=NULL;
    }else
    {
        baru->next = head;
        head=baru;
    }
    cout<<"Data masuk\n";
}

Menghapus Simpul Depan

Cara ini akan menghapuskan simpul yang selalu dari depan linked list. Program ini akan menghapus data dari depan.

void hapusDepan()
{

    TNode *hapus;
    int d;
    if (isEmpty()==0)
    {
        if(head!=tail)
        {
            hapus=head;
            d=hapus->data;
            head=head->next;
            delete hapus;
        }else
        {
            d=tail->data;
            head=tail=NULL;
        }
    cout<<d<<" terhapus";
    }else cout<<"Masih kosong\n";
}

Menampilkan Data

Kemudian kita akan menampilkan data yang sudah di inputkan. Berikut adalah programnya.

void tampil(){
    TNode *bantu;
    bantu=head;
        if(isEmpty()==0)
        {
            while(bantu!=NULL)
            {
                cout<<bantu->data<<" ";
                bantu=bantu->next;
            }
        }else cout <<"Masih kosong\n";
}

Program Full C++ Single Linked List

Untuk full source codenya seperti berikut ini .

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

using namespace std;

struct TNode{
    int data;
    TNode *next;
};

TNode *head, *tail;

void init (){
    head = NULL;
    tail = NULL;
}

int isEmpty(){
    if(tail==NULL)return 1;
    else return 0;
}

void insertDepan(int databaru)
{
    TNode *baru;
    baru = new TNode;
    baru->data = databaru;
    baru->next = NULL;
    if(isEmpty()==1)
    {
        head=tail=baru;
        tail->next=NULL;
    }else
    {
        baru->next = head;
        head=baru;
    }
    cout<<"Data masuk\n";
}

void tampil(){
    TNode *bantu;
    bantu=head;
        if(isEmpty()==0)
        {
            while(bantu!=NULL)
            {
                cout<<bantu->data<<" ";
                bantu=bantu->next;
            }
        }else cout <<"Masih kosong\n";
}

void hapusDepan()
{

    TNode *hapus;
    int d;
    if (isEmpty()==0)
    {
        if(head!=tail)
        {
            hapus=head;
            d=hapus->data;
            head=head->next;
            delete hapus;
        }else
        {
            d=tail->data;
            head=tail=NULL;
        }
    cout<<d<<"terhapus";
    }else cout<<"Masih kosong\n";
}

void clear()
{
    TNode *bantu, *hapus;
    bantu =head;
    while(bantu!=NULL)
    {
        hapus=bantu;
        bantu=bantu->next;
        delete hapus;
    }
    head = NULL;
    printf("clear");
}

main()
{
    int pil, databaru;
    do
    {
        system("cls");
        cout<<endl;
        cout<<" ============================"<<endl;
        cout<<" =   PROGRAM LINKED LIST    ="<<endl;
        cout<<" ============================"<<endl;
        cout<<" = 1. Insert Depan          ="<<endl;
        cout<<" = 2. Delete Depan          ="<<endl;
        cout<<" = 3. Tampil Data           ="<<endl;
        cout<<" = 4. Clear                 ="<<endl;
        cout<<" = 5. Exit                  ="<<endl;
        cout<<" ============================"<<endl;
        cout<<" Masukan Pilihan : ";cin>>pil;
        switch (pil)
        {
            case 1: system("cls");{
                cout<<"Masukan Data = ";cin>>databaru;
                insertDepan(databaru);
                break;
            }
            case 2: system("cls");{
                hapusDepan();
                break;
            }
            case 3: system("cls");{
                tampil();
                break;
            }
            case 4: system("cls");{
                clear();
                break;
            }
            case 5: system("cls");{
                return 0;
                break;
            }
            default : system("cls");
            {
                cout<<"\n Maaf, Pilihan yang anda pilih tidak tersedia!";
            }
        }
        getch();
    }
    while (pil!=7);
}

Penutup

Okelah kita sudahi dulu untuk contoh program kali ini, semoga bermanfaat sampai jumpa di artikel berikutnya babai.

Baca Juga nih :
Contoh Program C++ Menghitung Nilai Faktorial
Contoh Program C++ Mencari Bilangan Palindrome
Contoh Program C++ Segitiga Bintang
Contoh Program C++ Mencari Huruf Vokal Dan Konsonan
Contoh Program C++ Mencari Tahun Kabisat
Program C++ Konversi Suhu Celcius, Fahrenheit, Reamur, Kelvin
Contoh Program C++ Switch Case, Mudah Dimengerti
Contoh Program Selection Sort C++, Algoritma Struktur Data
Contoh Program C++ Mencari Angka Fibonacci
Program C++ Mencari Nilai Max (Terbesar) Array
Contoh Program Algoritma C++ Sequential Search
Contoh C++ Untuk Mencari Akar Persamaan Kuadrat
Contoh Program C++ Hitung Bilangan Prima
C++ Menghitung Keliling Luas Segitiga Disertai Penjelasan
Contoh Program Sederhana C++ Keliling dan Luas Persegi




Terima kasih sudah membaca artikelnya, tetap semangat jalani harimu. Jangan lupa ngopi ☕.
Sampai jumpa lagi di artikel lainnya ya. Jangan bosan-bosan membaca.

Tertanda Sayang

👨🏻‍🎓

Taufik Nurhidayah
Traktir Kopi

Leave a Reply

Your email address will not be published. Required fields are marked *