DESKRIPSI MATERI
MODUL 11  : LINEAR SINGLY LINKED LIST
Mata Kuliah : Struktur Data



PENGANTAR
Linked list adalah sejumlah obyek yang dihubungkan satu dengan yang lainnya sehingga membentuk suatu list/daftar. Obyek itu sendiri merupakan gabungan beberapa elemen data (variabel) yang dijadikan satu kelompok atau struktur atau record yang dibentuk dengan perintah struct.
Untuk menghubungkan obyek satu dengan yang obyek lainnya diperlukan paling tidak satu buah variabel bertipe pointer.
Dikenal ada dua list yaitu Contiguous List atau array dan Linked List. Array bersifat statis sedangkan Linked List bersipat dinamis. Contiguous List (daftar yang bersebelahan/berdampingan) adalah sekumpulan obyek yang bersebelahan satu dengan yang lain sehingga membentuk suatu list/daftar.

TUJUAN PERKULIAHAN
Setelah menyelesaikan perkuliahan, mahasiswa diharapkan mampu:
§  Menyebutkan pengertian linear singly linked list
§  Menyebutkan proses dan langkah dari setiap proses dalam setiap proses
§  Membuat fungsi setiap proses dan program aplikasi sederhana menggunakan Bahasa C++

DESKRIPSI MATERI : LINEAR SINGLY LINKED LIST

Pengertian
Link List: sejumlah obyek yang dilink/dihubungkan satu dengan lainnya.
Obyek : gabungan bebrapaelemen data yg dijadikan satu kelompok/struktur/record
Untuk menghubungkan antar obyek perlu variabel tipe pointer yg merupakan salah satu variabel dalam struktur obyek.
Linear Singly Linked List : Link list lurus dengan pointer tunggal
I. Ilustrasi


  • Ada 4 simpul : 1, 2, 3, 4
  • Setiap simpul terdiri dari 2 elemen/field, yaitu :
    • INFO : bertipe integer
    • LINK  : bertipe pointer
  • Simpul no.1 :
    • Field INFO berisi 10
    • Field LINK berisi alamat simpul no. 2
  • Simpul no.1 ditunjuk oleh pointer FIRST
  • Simpul no.4 ditunjuk oleh pointer LAST

Ilustrasi sebuah simpul :




Untuk mempersiapkan sebuah linked list maka harus dideklarasikan sbb :

struct SIMPUL{
int INFO;
struct SIMPUL *LINK;
};
SIMPUL *P,*Q,*FIRST,*LAST;


II. Proses
  1. Inisialisasi : persiapan pembuatan linked list
  2. Membuat simpul awal
  3. Insert simpul kedalam linked list
  4. Delete simpul dari linked list

II.1. Inisialisasi
FIRST = NULL;
LAST = NULL;

II.2. Pembuatan simpul
Instruksi untuk membuat sebuah simpul :

P=(SIMPUL*) malloc(sizeof(SIMPUL));

Akan terbentuk sebuah simpul yang alamatnya tersimpan dalam pointer P. Ilustrasi :

Fungsi untuk membuat simpul :
void BUAT_SIMPUL(int X)
{
P=(SIMPUL*) malloc(sizeof(SIMPUL));
if(P!=NULL)
{
P->INFO=X;
}
else
cout<<”Pembuatan simpul gagal”;
}


Ilustrasi :           













Contoh :
#include<iostream.h>
#include<stdlib.h>
struct SIMPUL{
          int INFO;
          struct SIMPUL *LINK;
};
SIMPUL *P,*FIRST,*LAST;
void BUAT_SIMPUL(int);
void main(void)
{
          int x;
          cout<<"Masukan Data : ";cin>>x;
          BUAT_SIMPUL(x);
          cout<<"Data : "<<P->INFO<<endl;
}
void BUAT_SIMPUL(int x)
{
          P=(SIMPUL *)malloc(sizeof(SIMPUL));
          if(P!=NULL)
                   P->INFO=x;
          else
                   cout<<"Pembuatan Simpul Gagal"<<endl;
}

II. 3. Pembuatan simpul awal
Menjadikan sebuah simpul menjadi simpul awal dari sebuah linked list. Simpul awal ditunjuk oleh pointer FIRST.

Fungsi :
Void AWAL(void)
{
if(FIRST==NULL)
{
FIRST=P;
LAST=P;
P->LINK=NULL;
}
else
cout<<”Linked List sudah ada””<<endl;
}

Ilustrasi :
Sudah dibuat simpul sbb:

FIRST=P

LAST=P atau
LAST=FIRST
P->LINK=NULL atau
FIRST->LINK=NULL atau
LAST->LINK=NULL


II.4. Insert Kanan
Menyisipkan sebuah simpul baru pada ujung kanan linked list.
Proses :
-      sudah ada linked list
-      buat simpul baru
-      sisipkan simpul baru tsb diujung kanan linked list
Fungsi :
void INSERT_KANAN(void)
{
if(LAST!=NULL)
{
LAST->LINK=P;
LAST=P;
P->LINK=NULL;
}
else
cout<<”Linked List belum ada”;
}

Ilustrasi :
Sudah ada linked list
Buat simpul baru
P=(SIMPUL *)malloc(sizeof(SIMPUL));
LAST->LINK=P atau
FIRST->LINK=P
LAST=P atau
LAST=FIRST->LINK
P->LINK=NULL atau
LAST->LINK=NULL atau
FIRST->LINK->LINK=NULL











II.5. Insert Kiri
Menyisipkan sebuah simpul baru pada ujung kiri linked list.
Proses :
-      sudah ada linked list
-      buat simpul baru
-      sisipkan simpul baru tsb diujung kiri linked list

Fungsi :
void INSERT_KIRI(void)
{
if(FIRST!=NULL)
{
P->LINK=FIRST;
FIRST=P;
}
else
cout<<”Linked List belum ada”;
}

Ilustrasi:
Sudah ada linked list

Buat simpul baru
P=(SIMPUL *)malloc(sizeof(SIMPUL));
P->LINK=FIRST atau
P->LINK=LAST
FIRST=P



II.6. Insert Tengah
Menyisipkan sebuah simpul antara dua buah simpul pada linked list.



setelah diinsert menjadi :

Syarat : simpul no.7 harus sudah ditunjuk oleh pointer Q, caranya :

Q=FIRST;
For(i=1;i<=6;i++)
Q=Q->LINK;

Fungsi :
Void INSERT_TENGAH(void)
{
P->LINK=Q->LINK;
Q->LINK=P;
}


Ilustrasi :
Sudah ada linked list
Buat simpul baru
P=(SIMPUL *)malloc(sizeof(SIMPUL));
P->LINK=Q->LINK



Q->LINK=P





Contoh 1
#include <cstdlib>
#include <iostream>
struct SIMPUL{
     int INFO;
     struct SIMPUL *LINK;
};
SIMPUL *P,*FIRST,*LAST;
void BUAT_SIMPUL(int);
using namespace std;
int main(int argc, char *argv[])
{
   int x;
   cout<<"Masukan Data : ";cin>>x;
   BUAT_SIMPUL(x);
   cout<<"Data : "<<P->INFO<<endl;
    system("PAUSE");
    return EXIT_SUCCESS;
}
void BUAT_SIMPUL(int x)
{
   P=(SIMPUL *)malloc(sizeof(SIMPUL));
   if(P!=NULL)
      P->INFO=x;
   else
      cout<<"Pembuatan Simpul Gagal"<<endl;
}





Contoh 2
#include <cstdlib>
#include <iostream>
#include<conio.h>
using namespace std;
struct SIMPUL{
   char NAMA[10];
     char NIM[10];
     char GENDER;
     int NILAI;
     struct SIMPUL *LINK;
};
SIMPUL *P,*Q,*FIRST,*LAST;
void BUAT_SIMPUL(void);
void INIT(void);
void INSERT(void);
void AWAL(void);
void INSERT_KANAN();
void CETAKLAYAR(void);
void FREE_MEMORY(void);
int PIL;
char PILIHAN[1],HURUF;

int main(int argc, char *argv[])
{
    INIT();
    do{
       system("cls");
         cout<<"LIN. SINGLY LINKED LIST"<<endl;
         cout<<"======================="<<endl;
         cout<<"1. INSERT DATA"<<endl;
         cout<<"3. CETAK DATA"<<endl;
         cout<<"4. EXIT"<<endl<<endl;
         cout<<"PILIHAN (1 - 4): "; cin>>PILIHAN;
         PIL=atoi(PILIHAN);
         switch (PIL)
         {
         case 1:
                 INSERT();
                   break;
         case 3:
                   CETAKLAYAR();
                   break;
         default:
                   cout<<"TERIMA KASIH"<<endl;
              FREE_MEMORY();
                   break;
      }
   }while (PIL<4);

    system("PAUSE");
    return EXIT_SUCCESS;
}
void BUAT_SIMPUL(void)//Buat simpul baru
{
   P=(SIMPUL *)malloc(sizeof(SIMPUL));
   if(P!=NULL)
     {
       cout<<"Nama   : ";cin>>P->NAMA;
       cout<<"NIM    : ";cin>>P->NIM;
       cout<<"GENDER : ";cin>>P->GENDER;
       cout<<"NILAI  : ";cin>>P->NILAI;
   }
     else
     {
        cout<<"Pembuatan Simpul Gagal"<<endl;
          getch();
          exit(1);
   }
}
void INIT(void)//Inisialisasi
{
   FIRST=NULL;
     LAST=NULL;
}
void AWAL(void)//Pembuatan simpul pertama
{
   FIRST=P;
     LAST=P;
     P->LINK=NULL;
}
void INSERT_KANAN(void)
{
   LAST->LINK=P;
   LAST=P;
     P->LINK=NULL;
}
void INSERT(void)//Insert satu simpul diujung kanan
{
   BUAT_SIMPUL();
     if(FIRST==NULL)
      AWAL();
   else
          INSERT_KANAN();
}
void CETAKLAYAR()//Cetak seluruh data linked list
{
     int i=1;
     if(FIRST!=NULL)
     {
       Q=FIRST;
       while(Q!=NULL)
       {
         cout<<"Data ke : "<<i++<<endl;
              cout<<"Nama   : "<<Q->NAMA<<endl;
              cout<<"NIM    : "<<Q->NIM<<endl;
              cout<<"GENDER : "<<Q->GENDER<<endl;
              cout<<"NILAI  : "<<Q->NILAI<<endl;
              Q=Q->LINK;
              cout<<endl;
          }
     }
     else
          cout<<"Data Kosong"<<endl;
     getch();
}
void FREE_MEMORY(void)
{
     while(FIRST!=NULL)
     {
          Q=FIRST->LINK;
          free(FIRST);
          FIRST=Q;
     }
}

REFERENSI BUKU
1.      Abdul kadir, Panduan Pemrograman Visual C++, Penerbit Andi Yogyakarta
2.      Rinaldi Munir, Algoritma dan Pemrograman, Edisi-3, Informatika Bandung
3.      M. Sjukani, Algoritma dan Struktur Data dengan C, C++, dan Java, Mitra Wacana Media
4.      H.M. Deitel, C How To Program, 3rd, Prentice Hall



DESKRIPSI MATERI
MODUL 12  : LINEAR SINGLY LINKED LIST(DELETE)
Mata Kuliah : Struktur Data






PENGANTAR

Linked list adalah sejumlah obyek yang dihubungkan satu dengan yang lainnya sehingga membentuk suatu list/daftar. Obyek itu sendiri merupakan gabungan beberapa elemen data (variabel) yang dijadikan satu kelompok atau struktur atau record yang dibentuk dengan perintah struct.
Untuk menghubungkan obyek satu dengan yang obyek lainnya diperlukan paling tidak satu buah variabel bertipe pointer.
Dikenal ada dua list yaitu Contiguous List atau array dan Linked List. Array bersifat statis sedangkan Linked List bersipat dinamis. Contiguous List (daftar yang bersebelahan/berdampingan) adalah sekumpulan obyek yang bersebelahan satu dengan yang lain sehingga membentuk suatu list/daftar.
Pada modulini akan dibahas proses DELETE.


TUJUAN PERKULIAHAN

Setelah menyelesaikan perkuliahan, mahasiswa diharapkan mampu:
§  Menyebutkan pengertian linear singly linked list
§  Menyebutkan proses dan langkah dari setiap proses dalam setiap proses
§  Membuat fungsi setiap proses dan program aplikasi sederhana menggunakan Bahasa C++



DESKRIPSI MATERI : LINEAR SINGLY LINKED LIST(DELETE)

Delete Kanan/Akhir
Menghapus simpul yang ada pada linked list paling akhir/kanan.

sudah ada sebuah linked list :                                       
 







akan dihapus simpul terakhir menjadi :
 






Syarat agar simpul no.8 dapat dihapus adalah simpul no.7 sudah ditunjuk oleh pointer Q.

Caranya :

Q = FIRST;
while(Q ->LINK != LAST)
      Q = Q -> LINK;

Program diatas pertama-tama menempatkan Q pada simpul awal. Kemudian Q bergerak ke kanan sampai LINK = LAST atau Q menunjuk simpul nomor 7. Pernyataan Q = Q -> LINK artinya Q akan bergerak kearah belakang satu langkah.
Fungsinya :
void DELETE_KANAN(void)
{
      free(LAST);
      LAST = Q;
      LAST -> LINK = NULL;
}



Ilustrasi :

a.    Sudah ada linked list. Q sudah menunjuk simpul nomor 7.
 








b.    free(LAST)





          Pernyataan diatas akan menghapus simpul yang paling akhir. Karena simpul nomor 7 sekarang menjadi simpul paling akir maka pointer LAST harus dipindahkan agar menunjuk simpul nomor 7 dengan pernyataan berikut :



c.    LAST = Q
 






Pointer LAST harus selalu menunjuk simpul yang paling akhir. Dari gamar diatas Nampak bahwa QàLINK belum menunjuk kemana-mana. Pointer pada simpul terakhir harus selalu menunjuk ke NULL, dilakukan dengan pernyataan berikut :



d.    LAST -> LINK = NULL
 







Proses penghapusan telah selesai.







Delete Kiri/Awal
Menghapus simpul yang ada pada linked list paling awal/kiri.
Ilustrasi : sudah ada sebuah linked list

  sudah ada sebuah linked list                                   
 







akan dihapus simpul awal menjadi :

 








Fungsinya :

void DELETE_KIRI(void)
{
      Q = FIRST;
      FIRST = Q -> LINK;
      free(Q);
}

Ilustrasi :


a.    Sudah ada linked list


b.    Q = FIRST
Untuk bias menghapus simpul awal maka perlu bantuan pointer Q menunjuk ke simpul awal. Penghapusan dilakukan menggunakan pointer Q sedangkan pointer FIRST harus pindah ke simpul berikutnya sebelum proses penghapusan dilakukan.


c.    FIRST = Q -> LINK
Perintah c akan memindahkan pointer FIRST ke simpul nomor 2.

d.    free(Q)

Karena FIRST sudah pindah ke belakang maka simpul pertama dapat dengan mudah dihapus. Jika penghapusan dilakukan sebelum ponter FIRST pindah maka pointer FIRST tidak akan bias pindah ke simpul nomor 2.


Cara lain:
Tempatkan Q pada simpulkedua, hapus simpul pertama, pindahkan FIRST ke simpul kedua.















Delete Tengah
Menghapus simpul yang ada diantara dua simpul lain

sudah ada linked list                                   
 








simpul no.7 akan dihapus sehingga menjadi :

 







Syarat agar simpul no.7 bisa dihapus maka simpul no.6 harus sudah ditunjukoleh Q.

Caranya :
Q = FIRST;
For(I = 1; I <= 5; I++)
      Q = Q -> LINK;

Perintah diatas akan memindahkan pointer Q secara terus menerus sebanyak 5 langkah hingga Q menunjuk simpul nomor 6.

Fungsi :
void DELETE_TENGAH(void)
{
       R = Q -> LINK;
      Q -> LINK = R -> LINK;
      free(R);
}


Ilustrasi :
a.    Sudah ada linked list :


b.    R = Q -> LINK


Diperlukan bantuan pointer R untuk menghapus simpul nomor 7 dan untuk menyambungkan pointer LINK pada simpul nomor 6 ke simpul nomor 8.



c.    Q -> LINK = R -> LINK


Dari gambar Nampak bahwa simpul nomor 7 sudah terlepas dari linked list sehingga dapat langsung dihapus dengan menggunakan pointer R.

d.    free(R)


Dengan pernyataan free(R) maka simpul nomor 7 akan hilang dari memori.










Contoh program


#include <cstdlib>
#include <iostream>
#include<conio.h>
using namespace std;
struct SIMPUL{
   char NAMA[10];
     char NIM[10];
     char GENDER;
     int NILAI;
     struct SIMPUL *LINK;
};
SIMPUL *P,*Q,*FIRST,*LAST;
void BUAT_SIMPUL(void);
void INIT(void);
void INSERT(void);
void DELETE(void);
void AWAL(void);
void INSERT_KANAN();
void DELETE_KANAN();
void CETAKLAYAR(void);
void FREE_MEMORY(void);
int PIL;
char PILIHAN[1],HURUF;

int main(int argc, char *argv[])
{
    INIT();
    do{
       system("cls");
         cout<<"LIN. SINGLY LINKED LIST"<<endl;
         cout<<"======================="<<endl;
         cout<<"1. INSERT DATA"<<endl;
         cout<<"2. HAPUS DATA"<<endl;
         cout<<"3. CETAK DATA"<<endl;
         cout<<"4. EXIT"<<endl<<endl;
         cout<<"PILIHAN (1 - 4): "; cin>>PILIHAN;
         PIL=atoi(PILIHAN);
         switch (PIL)
         {
         case 1:
                   INSERT();
                     break;
           case 2:
            DELETE();
                     break;
         case 3:
                     CETAKLAYAR();
                     break;
         default:
                     cout<<"TERIMA KASIH"<<endl;
              FREE_MEMORY();
                     break;
      }
   }while (PIL<4);

    system("PAUSE");
    return EXIT_SUCCESS;
}
void BUAT_SIMPUL(void)//Buat simpul baru
{
   P=(SIMPUL *)malloc(sizeof(SIMPUL));
   if(P!=NULL)
     {
       cout<<"Nama   : ";cin>>P->NAMA;
       cout<<"NIM    : ";cin>>P->NIM;
       cout<<"GENDER : ";cin>>P->GENDER;
       cout<<"NILAI  : ";cin>>P->NILAI;
   }
     else
     {
        cout<<"Pembuatan Simpul Gagal"<<endl;
           getch();
           exit(1);
   }
}
void INIT(void)//Inisialisasi
{
   FIRST=NULL;
     LAST=NULL;
}
void AWAL(void)//Pembuatan simpul pertama
{
   FIRST=P;
     LAST=P;
     P->LINK=NULL;
}
void INSERT_KANAN(void)
{
   LAST->LINK=P;
   LAST=P;
     P->LINK=NULL;
}
void DELETE_KANAN(void)
{
   if(FIRST==LAST)//Baru ada satu simpul
     {
           free(LAST);//Atau free(FIRST)
           INIT();
   }
     else
     {  
           Q = FIRST;
           while(Q ->LINK != LAST)
                Q = Q -> LINK;
           free(LAST);
           LAST = Q;
           LAST -> LINK = NULL;
   }
}
void INSERT(void)//Insert satu simpul diujung kanan
{
   BUAT_SIMPUL();
     if(FIRST==NULL)
      AWAL();
   else
           INSERT_KANAN();
}
void DELETE(void)//Delete satu simpul terakhir
{
   if(LAST==NULL)
     {
           cout<<"Data belum ada"<<endl;
           getch();
   }
   else
   {
      DELETE_KANAN();
      cout<<"Data terakhir dihapus"<<endl;
      getch();
   }
}
void CETAKLAYAR()//Cetak seluruh data linked list
{
     int i=1;
     if(FIRST!=NULL)
     {
       Q=FIRST;
       while(Q!=NULL)
       {
         cout<<"Data ke : "<<i++<<endl;
                cout<<"Nama   : "<<Q->NAMA<<endl;
                cout<<"NIM    : "<<Q->NIM<<endl;
                cout<<"GENDER : "<<Q->GENDER<<endl;
                cout<<"NILAI  : "<<Q->NILAI<<endl;
                Q=Q->LINK;
                cout<<endl;
           }
     }
     else
           cout<<"Data Kosong"<<endl;
     getch();
}
void FREE_MEMORY(void)
{
     while(FIRST!=NULL)
     {
           Q=FIRST->LINK;
           free(FIRST);
           FIRST=Q;
     }
}










REFERENSI BUKU
1.      Abdul kadir, Panduan Pemrograman Visual C++, Penerbit Andi Yogyakarta
2.      Rinaldi Munir, Algoritma dan Pemrograman, Edisi-3, Informatika Bandung
3.      M. Sjukani, Algoritma dan Struktur Data dengan C, C++, dan Java, Mitra Wacana Media
4.      H.M. Deitel, C How To Program, 3rd, Prentice Hall


DESKRIPSI MATERI
MODUL 15  : APLIKASI LINKED LIST PADA QUEUE
Mata Kuliah : Struktur Data







TUJUAN PERKULIAHAN

Setelah menyelesaikan perkuliahan, mahasiswa diharapkan mampu:
§  Memahami proses yang ada pada Queue menggunakan linked list
§  Membuat fungsi-fungsi yang ada dalam Queue menggunakan linked list
§  Membuat fungsi setiap proses dan program aplikasi sederhana menggunakan Bahasa C++



DESKRIPSI MATERI : APLIKASI LINKED LIST PADA QUEUE

Ilustrasi untuk QUEUE tanpa menggunakan Simpul Head :

Proses : FIFO
INSERT : selalu Insert Kanan
DELETE  : selalu Delete Kiri
Bila FRONT = REAR artinya antrian tinggal 1 (simpul awal)
Bila FRONT = NULL artinya antrian kosong


Deklarasi :
struck SIMPUL{
      int INFO;
      struck SIMPUL *LINK;
};
SIMPUL *P,*Q,*FRONT,*REAR;

Inisialisasi
FRONT = NULL;
REAR = NULL;

Pembuatan Simpul Baru :
void BUAT_SIMPUL(int X)
{
      P=(SIMPUL *)malloc(sizeof(SIMPUL));
      if(P!=NULL)
            P->INFO=X;
      else
      {
            cout<<”Membuat simpul gagal”;
            exit(1);
      }
}

INSERT (Insert Kanan atau BuatAwal)
void INSERT(void)
{
      if(FRONT==NULL)
      {
            FRONT=P;
            REAR=P;
            REAR->LINK=NULL;
      }
      else
      {
            REAR->LINK=P;
            REAR=P;
            REAR->LINK=NULL;
      }
}

DELETE (Delete Kiri)
Int DELETE(void)
{
      int X;
      if(FRONT!=NULL)
      {
            X=FRONT->INFO;
            Q=FRONT->LINK;
            free(FRONT);FRONT=Q;
            return(X);
      }
      else
            cout<<”Queue Kosong”;
}
STUDI KASUS :
Buat program animasi Queue menggunakan Linked List tanpa Head untuk mengelola data mahasiswa dengan struktur mahasiswa sbb : NAMA, NIM, GENDER, NILAI STRUKTUR DATA. Program dibuat dalam bentuk menu dengan pilihan : INSERT DATA, HAPUS DATA, CETAK DATA, EXIT.






REFERENSI BUKU
1.      Abdul kadir, Panduan Pemrograman Visual C++, Penerbit Andi Yogyakarta
2.      Rinaldi Munir, Algoritma dan Pemrograman, Edisi-3, Informatika Bandung
3.      M. Sjukani, Algoritma dan Struktur Data dengan C, C++, dan Java, Mitra Wacana Media
4.      H.M. Deitel, C How To Program, 3rd, Prentice Hall



DESKRIPSI MATERI
MODUL 16  : LINEAR DOUBLY LINKED LIST
Mata Kuliah : Struktur Data



PENGANTAR
Linked list adalah sejumlah obyek yang dihubungkan satu dengan yang lainnya sehingga membentuk suatu list/daftar. Obyek itu sendiri merupakan gabungan beberapa elemen data (variabel) yang dijadikan satu kelompok atau struktur atau record yang dibentuk dengan perintah struct.
Untuk menghubungkan obyek satu dengan yang obyek lainnya diperlukan paling tidak satu buah variabel bertipe pointer.
Dikenal ada dua list yaitu Contiguous List atau array dan Linked List. Array bersifat statis sedangkan Linked List bersipat dinamis. Contiguous List (daftar yang bersebelahan/berdampingan) adalah sekumpulan obyek yang bersebelahan satu dengan yang lain sehingga membentuk suatu list/daftar.

TUJUAN PERKULIAHAN
Setelah menyelesaikan perkuliahan, mahasiswa diharapkan mampu:
§  Menyebutkan pengertian linear doubly linked list
§  Menyebutkan proses dan langkah dalam linear doubly linked list
§  Membuat fungsi setiap proses dan program aplikasi sederhana menggunakan Bahasa C++

DESKRIPSI MATERI : LINEAR DOUBLY LINKED LIST







REFERENSI BUKU
1.      Abdul kadir, Panduan Pemrograman Visual C++, Penerbit Andi Yogyakarta
2.      Rinaldi Munir, Algoritma dan Pemrograman, Edisi-3, Informatika Bandung
3.      M. Sjukani, Algoritma dan Struktur Data dengan C, C++, dan Java, Mitra Wacana Media

4.      H.M. Deitel, C How To Program, 3rd, Prentice Hall

Leave a Reply

Nyawiji