Senin, 27 Mei 2013

CONTOH PROGRAM & SOURCE CODE "LINKED LIST" DI C++


CONTOH PROGRAM & SOURCE CODE "LINKED LIST" DI C++


1.Program Linked List 1
#include<stdio.h>//deklarasi file header c
#include<stdlib.h>
#include<malloc.h>
#include<conio.h>// deklarasi file header untuk tampilan pada c++

typedef struct nod
//definisi type adalah struct nod
{
            int data;
            struct nod *next;
            //deklarasi variable bertipe integer dan struct
}
NOD, *NODPTR;

void CreateSenarai (NODPTR *s)
//deklarasi untuk membuat Seranai kosong yang baru
{
    *s = NULL;
            //mendeklarasikan bahwa Seranai baru masih kosong
}
NODPTR NodBaru(int m)
//membuat Nod baru bertipe integer dengan variabel m.
{
            NODPTR n;
            n= (NODPTR) malloc(sizeof(NOD));
            if (n !=NULL)
            /*kondisi jika n tidak sama dengan NULL
            maka program akan menjalankan pernyataan pada kurung kurawal dibawah ini*/
            {
                        n-> data = m;
                        n-> next = NULL;
            }
            return n;
            //mendeklarasikan program untuk kembali ke n.
}
void InsertSenarai (NODPTR *s, NODPTR t, NODPTR p)
//deklarasi untuk menyisipkan data kedalam seranai
{
            if (p==NULL)
            /*kondisi jika p sama dengan NULL
            maka pernyataan dalam kurung kurawal diawah ini akan dijalankan,
            jika lainnya maka pernyataan dalam kurung kurawal dibawah else
            yang akan dijalankan.*/
            {
                        t -> next = *s;
                        *s = t;
            }
            else
            {
                        t -> next = p -> next;
                        p -> next = t;
    }
}

void DisplaySenarai(NODPTR s)
//deklarasi untuk menampilkan Seranai
{
            NODPTR ps;
            for (ps = s; ps != NULL; ps = ps -> next)
            printf("%d  --> ",ps -> data);
            printf("NULL\n");
            getch();
            /*deklarasi untuk ps=s; ps!=NULL; ps=ps-> next
            kemudian program akan menampilkan nilai ps data diikuti NULL pada akhir data*/
}



int main()
{
          
            //deklarasi menghapus layar
    NODPTR pel;
    NODPTR n;
    int i,k, nilai;
            //deklarasi variabel bertipe integer

    CreateSenarai(&pel);
            printf("=================================\n");
            printf("====== Program Linked List ======\n");
            printf("=================================\n");
    printf(" Masukan banyak data Seranai : ");
    scanf ("%d", &k);
            //deklarasi untuk menginput data seranai
            printf("\n=================================\n\n");
    for(i=1;i<=k;i++)
            //deklarasi untuk i=1; i lebih kecil sama dengan k; kemudian i melakukan penambahan 1
    {
                        printf ("Masukan data senarai ke- %d : ",i);
                        scanf ("%d", &nilai);
                        //deklarasi untuk menginput data seranai
                        n = NodBaru (nilai);
                        InsertSenarai (&pel, n, NULL);
                        //deklarasi untuk menyisipkan sebuah seranai
    }
            printf("=================================\n");
            DisplaySenarai (pel);
                        //deklarasi untuk mencetak seranai yang telah dibuat tadi
            return 0;
            //deklarasi untuk kembali pada fungsi 0.
}

2.Program Linked List 2
#include <iostream>
#include <conio.h>
#include <stdio.h>
#include <windows.h>
//#include <alloc.h>

using namespace std;

int pil;
void pilih();
void buat_baru();
void tambah_belakang();
void tambah_depan();
void hapus_belakang();
void hapus_depan();
void tampil();

struct simpul
{
    char nim[8], nama [20];
    int umur;
    struct simpul *next;
} mhs, *baru, *awal=NULL, *akhir=NULL,*hapus,*bantu;

void clrscr()
{
    system("cls");
}


int main()
{
    do
    {
        clrscr();
        cout<<"MENU SINGLE LINKEDLIST"<<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<<"Pilihan Anda : ";
        cin>>pil;
        pilih();
    } while(pil!=6);
    return 0;
}

void pilih()
{
    if(pil==1)
        tambah_depan();
    else if(pil==2)
        tambah_belakang();
    else if(pil==3)
        hapus_depan();
     else if(pil==4)
        hapus_belakang();
      else if(pil==5)
        tampil();
    else
        cout<<"selesai";
}

void buat_baru()
{
    baru=(simpul*)malloc(sizeof(struct simpul));
    cout<<"input nim   : ";cin>>baru->nim;
    cout<<"input nama  : ";cin>>baru->nama;
    cout<<"input umur  : ";cin>>baru->umur;
    baru->next=NULL;
}

void tambah_belakang()
{
    buat_baru();
    if(awal==NULL)
    {
        awal=baru;
    }
    else
    {
        akhir->next=baru;
    }
    akhir=baru;
    akhir->next=NULL;
    cout<<endl<<endl;
    tampil();
}

void tambah_depan()
{
    buat_baru();
    if(awal==NULL)
    {
        awal=baru;
        akhir=baru;
        akhir->next=NULL;
    }
    else
    {
        baru->next=awal;
        awal=baru;
    }
    cout<<endl<<endl;
    tampil();
}

void hapus_depan()
{
    if (awal==NULL)
        cout<<"Kosong";
    else
    {
        hapus=awal;
        awal=awal->next;
        free(hapus);
    }
   cout<<endl<<endl;
    tampil();
}

void hapus_belakang()
{
    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;
    tampil();
}

void tampil()
{
     if (awal==NULL)
          cout<<"Kosong";
     else
     {
         bantu=awal;
         while(bantu!=NULL)
         {
            cout<<"nim : "<<bantu->nim;
            cout<<"  nama : "<<bantu->nama;
            cout<<"  umur : "<<bantu->umur<<endl;
            bantu=bantu->next;
         }
     }
     getch();
}


9 komentar:

  1. makasih om ngebantu juga nih hehe

    BalasHapus
  2. makasih gan sangat membatu ini ane lagi ujian lab... kebetualan open google....
    thansk

    BalasHapus
  3. makasi gan, ane juga lagi ujian wkwkw :v

    BalasHapus
  4. sip gan membantu pas ujian gan

    BalasHapus
  5. minta penjelasan program linked kist yang kedua dong...

    BalasHapus
  6. makasih gan sangat membantu :)

    BalasHapus
  7. XCODEPLUS - The Best Resource to Learn to Code

    C++ & C# Tutorials and more...

    http://www.xcodeplus.net/

    Website Seputar Programing Indonesia

    BalasHapus
  8. makasih bang,sangat membantu sekali

    BalasHapus