Transcript
  • LAPORAN PRAKTIKUM RESMI

    ALGORITMA & STRUKTUR DATA 1

    LINKED LIST

    Disusun oleh :

    Unggul Budi Suryanto

    201301011

    Dosen pengampu :

    Yosef Murya Kusuma Ardhana.S.T., M.Kom

    JURUSAN SISTEM INFORMASI

    SEKOLAH TINGGI ILMU KOMPUTER YOS SUDARSO

    PURWOKERTO

    2014

  • BAB I

    DASAR TEORI

    LINKED LIST

    Linked List adalah struktur data yang paling sederhana yaitu Linked List atau struktur

    Berkait atau Senarai Berantai. Linked List di sebut dengan senarai satu arah karena masing-

    masing komponen dinamakan dengan simpul.

    Linked List mengandung 3 buah simpul/node sebuah pointer. Simpul pada linked list

    terdiri dari 2 komponen yaitu :

    Data yang diisi beberapa atau satu elemen.

    Pointer

    PERBEDAAN ARRAY DENGAN LINKED LIST

    Array dan Linked list hampir serupa tetapi berbeda , berikut perbedaannya

    Array Linked List

    Statis Dinamis

    Random Access Sequential Access

    Penghapusan array tidak mungkin Penghapusan data mudah

    Penambahan data terbatas Penambahan tidak terbatas

    DEKLARASI LINKED LIST

    Struct FileList

    {

    char filename[64];

    struct FileList *next;

    }

    BENTUK NODE LINKED LIST

    Bentuk node pada linked list ada 2 yaitu :

    Bentuk node single linked list NON-CIRCULAR

    Single linked list NON-CIRCULAR menggunakan HEAD

    TEKNIK MENAMBAH & MENGHAPUS NODE

    menambah node di depan menambah node baru di lakukan di node paling depan , namun pada saat pertama kali data

    masih kosong , maka penambahan data dilakukan dengan cara node menggantikan node baru

    tersebut.

    menambah node di belakang Penambahan data dilakukan dibelakang, kemudian node langsung ditunjuk oleh head.

    Penambahan ini membutuhkan pointer bantu untuk mengetahui node terakhir. Kemudian

    dikaitkan dengan node baru untuk mengetahui data terakhir dan dalam penambahan ini perlu

    digunakan teknik perulangan.

    Menghapus node di depan Penghapusan node tidak boleh dilakukan jika keadaan node sedang ditunjuk oleh pointer ,

    dan harus menggunakan pointer lain yang digunakan untuk menunjuk node yang akan

    dihapus, barulah kemudian menghapus pointer , hapus dengan menggunakan perintah delete.

  • Menghapus node di belakang Menghapus node dibelakang membutuhkan pointer baru dan hapus. Pointer hapus digunakan

    untuk menunjuk node yang akan dihapus. Pointer bantu diguanakan untuk menunjuk ke nilai

    NULL.

    BAB II

    PENJELASAN PROGRAM

    Program praktikum list 01 /* * list01.cpp * * Created on: 7 Jun 2014 * Author: unggul budi suryanto */ #include #include #include using namespace std; int main() { int i; struct ListEntry{ int number; struct ListEntry *next; }start, *node; start.next=NULL; node=&start; for(i=1;inext=(struct ListEntry*)malloc(sizeof(struct ListEntry)); node=node->next; node->number=i; node->next=NULL; } node=start.next; while(node) { cout

  • Penjelasan program :

    1. Tanda yang diawali dengan /* dan diakhiri tanda */ merupakan script untuk membuat sebuah komentar pada pemrograman C++ yang jika didalamnya terdapat sebuah

    perintah atau teks maka ketika program dirunning atau dijalankan tidak akan dibaca

    oleh compiler.

    2. #include atau disebut sebagai pengarah preprocessor #include berfungsi untuk menginstruksikan compiler untuk menyertakan berkas C++ sumber yang lain sebelum

    kompilasi dimulai.

    3. berfungsi untuk memanggil fungsi/perintah cin cout didalam program C++.

    4. Malloc.h berfungsi sebagai pengarah suatu library yang digunakan untuk mengalokasikan memori

    5. berfungsi sebagai pengarah untuk melakukan kegiatan linked list. 6. Using name space std; adalah standar deviasi bahasa pemrograman C++. 7. .

    struct ListEntry{ int number; struct ListEntry *next; }start, *node; Maksudnya adalah pendeklarasian tipedata abstrack struct bernama listentry.

    8. Int main() adalah fungsi unruk memulai suatu program. 9. Tanda kurung kurawal {} berfungsi untuk mengawali dan mengakhiri program main 10. while adalah suatu fungsi perulangan. 11. Return 0; digunakan untuk membaca karakter.

    Program praktikum list 02 /* * list02.cpp * * Created on: 8 Jun 2014 * Author: unggul budi suryanto */ #include #include #include #include #define nil NULL #define info(P) P->info #define next(P) P->next #define first(L) (L) typedef int infotype; typedef struct telmtlist *alamat; using namespace std; typedef struct telmtlist { infotype info; alamat next; }elmtlist;

  • typedef alamat list; void buatsenarai(list *L) { first(*L) = nil; } list nodbaru(int m) { list n; n = (list) malloc(sizeof(elmtlist)); if (n!= NULL) { info(n) = m; next(n) = nil; } return n; } void sisipsenarai (list *L, list t, list p) { if(p==nil) { t->next=*L; *L=t; } else { t->next=p->next; p->next=t; } } void cetaksenarai(list L) { list ps; for(ps=L;ps!=nil;ps=ps->next) { cout
  • }

    Output program :

    Penjelasan program :

    1. Tanda yang diawali dengan /* dan diakhiri tanda */ merupakan script untuk membuat sebuah komentar pada pemrograman C++ yang jika didalamnya terdapat sebuah

    perintah atau teks maka ketika program dirunning atau dijalankan tidak akan dibaca

    oleh compiler.

    2. #include atau disebut sebagai pengarah preprocessor #include berfungsi untuk menginstruksikan compiler untuk menyertakan berkas C++ sumber yang lain sebelum

    kompilasi dimulai.

    3. berfungsi untuk memanggil fungsi/perintah cin cout didalam program C++.

    4. Malloc.h berfungsi pengarah suatu library yang digunakan untuk mengalokasikan memori

    5. berfungsi sebagai pengarah untuk melakukan kegiatan linked list. 6. Stdlib.h berfungsi sebagai pengarah suatu library yang digunakan untuk operasi

    artimatika dalam suatu program.

    7. Typedef adalah tipe data abstrak yang berfungsi untuk menggantikan nama variabel yang akan kita gunakan untuk suatu program.

    8. Typedef Struct adalah tipe data abstrak yang merupakan gabungan dari typedef dan struct. Guna untuk menggantikan nama tipe data sesuai yang kita inginkan.

    9. Using name space std; adalah standar deviasi bahasa pemrograman C++. 10. Int main() adalah fungsi unruk memulai suatu program. 11. Tanda kurung kurawal {} berfungsi untuk mengawali dan mengakhiri program main 12. Void adalah sub menu yang akan dipanggil dalam menu utama. 13. Coutvar; adalah pemanggilan var yang diinputkan oleh user. 15. Switch adalah fungsi pemilihan menu sesuai dengan yang di inputkan user. 16. Return 0; digunakan untuk membaca karakter.

    Program praktikum list 03 //============================================================================ // Name : gggg.cpp // Author : unggul budi suryanto // Version : // Copyright : Your copyright notice // Description : Hello World in C++, Ansi-style //============================================================================

  • #include #include class node { public: int x; node *next; }; using namespace std; int main() { int n, i; node*awal, *akhir,*temp; awal=new node; akhir=awal; coutn; for(i=1;inext=NULL; cout
  • Penjelasan program :

    1. Tanda yang diawali dengan /* dan diakhiri tanda */ merupakan script untuk membuat sebuah komentar pada pemrograman C++ yang jika didalamnya terdapat sebuah

    perintah atau teks maka ketika program dirunning atau dijalankan tidak akan dibaca

    oleh compiler.

    2. #include atau disebut sebagai pengarah preprocessor #include berfungsi untuk menginstruksikan compiler untuk menyertakan berkas C++ sumber yang lain sebelum

    kompilasi dimulai.

    3. berfungsi untuk memanggil fungsi/perintah cin cout didalam program C++.

    4. berfungsi sebagai pengarah data string. 5. Using name space std; adalah standar deviasi bahasa pemrograman C++. 6. Int main() adalah fungsi unruk memulai suatu program. 7. Tanda kurung kurawal {} berfungsi untuk mengawali dan mengakhiri program main 8. while adalah suatu fungsi perulangan. 9. For adalah statement dalam program yang berfungsi sebagai perulangan. 10. Coutpil; adalah pemanggilan var yang diinputkan oleh user. 12. Return 0; digunakan untuk membaca karakter.

    BAB III

    TUGAS PRAKTIKUM

    Ubah program diatas dengan menggunakan tipe data abstrack

    Program list 01 /* * list.cpp *

  • * Created on: 8 Jun 2014 * Author: unggul budi */ #include #include #include using namespace std; typedef int satu; int main() { satu i; struct ListEntry{ int number; struct ListEntry *next; }start, *node; start.next=NULL; node=&start; for(i=1;inext=(struct ListEntry*)malloc(sizeof(struct ListEntry)); node=node->next; node->number=i; node->next=NULL; } node=start.next; while(node) { cout
  • 7. typedef int satu; int main() { satu i; struct ListEntry{ int number; struct ListEntry *next; }start, *node; Maksudnya adalah pendeklarasian tipedata abstrack typedef bernama satu untuk mengganti nama type data int.

    8. Int main() adalah fungsi unruk memulai suatu program. 9. Tanda kurung kurawal {} berfungsi untuk mengawali dan mengakhiri program main 10. while adalah suatu fungsi perulangan. 11. Return 0; digunakan untuk membaca karakter.

    Program list 02 /* * tugas.cpp * * Created on: 10 Jun 2014 * Author: acer */ #include #include #include #include #define nil NULL #define info(P) P->info #define next(P) P->next #define first(L) (L) typedef int infotype; typedef struct telmtlist *alamat; using namespace std; typedef struct telmtlist { infotype info; alamat next; }elmtlist; typedef alamat list; void buatsenarai(list *L) { first(*L) = nil; } list nodbaru(int m) { list n; n = (list) malloc(sizeof(elmtlist)); if (n!= NULL) { info(n) = m;

  • next(n) = nil; } return n; } void sisipsenarai (list *L, list t, list p) { if(p==nil) { t->next=*L; *L=t; } else { t->next=p->next; p->next=t; } } void cetaksenarai(list L) { list ps; for(ps=L;ps!=nil;ps=ps->next) { cout
  • Penjelasan program :

    1. Tanda yang diawali dengan /* dan diakhiri tanda */ merupakan script untuk membuat sebuah komentar pada pemrograman C++ yang jika didalamnya terdapat sebuah

    perintah atau teks maka ketika program dirunning atau dijalankan tidak akan dibaca

    oleh compiler.

    2. #include atau disebut sebagai pengarah preprocessor #include berfungsi untuk menginstruksikan compiler untuk menyertakan berkas C++ sumber yang lain sebelum

    kompilasi dimulai.

    3. berfungsi untuk memanggil fungsi/perintah cin cout didalam program C++.

    4. Malloc.h berfungsi pengarah suatu library yang digunakan untuk mengalokasikan memori

    5. berfungsi sebagai pengarah untuk melakukan kegiatan linked list. 6. Stdlib.h berfungsi sebagai pengarah suatu library yang digunakan untuk operasi

    artimatika dalam suatu program.

    7. Typedef adalah tipe data abstrak yang berfungsi untuk menggantikan nama variabel yang akan kita gunakan untuk suatu program.

    8. Typedef Struct adalah tipe data abstrak yang merupakan gabungan dari typedef dan struct. Guna untuk menggantikan nama tipe data sesuai yang kita inginkan.

    9. Using name space std; adalah standar deviasi bahasa pemrograman C++. 10. Int main() adalah fungsi unruk memulai suatu program. 11. struct tugas{

    int i, k, nilai; }tugas;

    Adalah pendeklarasian tipedata abstrak berbentuk struct dengan nama tugas.

    12. Tanda kurung kurawal {} berfungsi untuk mengawali dan mengakhiri program main 13. Void adalah sub menu yang akan dipanggil dalam menu utama. 14. Coutvar; adalah pemanggilan var yang diinputkan oleh user. 16. Switch adalah fungsi pemilihan menu sesuai dengan yang di inputkan user. 17. Return 0; digunakan untuk membaca karakter.

    Program list 03 /* * list.cpp * * Created on: 9 Jun 2014 * Author: unggul budi suryanto */ #include

  • #include class node { public: int x; node *next; }; typedef int list; using namespace std; int main() { list n; list i; node*awal, *akhir,*temp; awal=new node; akhir=awal; coutn; for(i=1;inext=NULL; cout
  • Penjelasan program :

    1. Tanda yang diawali dengan /* dan diakhiri tanda */ merupakan script untuk membuat sebuah komentar pada pemrograman C++ yang jika didalamnya terdapat sebuah

    perintah atau teks maka ketika program dirunning atau dijalankan tidak akan dibaca

    oleh compiler.

    2. #include atau disebut sebagai pengarah preprocessor #include berfungsi untuk menginstruksikan compiler untuk menyertakan berkas C++ sumber yang lain sebelum

    kompilasi dimulai.

    3. berfungsi untuk memanggil fungsi/perintah cin cout didalam program C++.

    4. berfungsi sebagai pengarah data string. 5. typedef int list;

    using namespace std; int main() { list n; list i; node*awal, *akhir,*temp; awal=new node;

    adalah pendeklarasian tipedata abstrak berbentuk typedef dan bernama list.

    Dalam program tipedata int diuah menjadi list.

    6. Using name space std; adalah standar deviasi bahasa pemrograman C++. 7. Int main() adalah fungsi unruk memulai suatu program. 8. Tanda kurung kurawal {} berfungsi untuk mengawali dan mengakhiri program main 9. while adalah suatu fungsi perulangan. 10. For adalah statement dalam program yang berfungsi sebagai perulangan. 11. Coutpil; adalah pemanggilan var yang diinputkan oleh user. 13. Return 0; digunakan untuk membaca karakter.

    BAB IV

  • KESIMPULAN

    Linked List adalah struktur data yang paling sederhana yaitu Linked List atau struktur

    Berkait atau Senarai Berantai.

    Linked List mengandung 3 buah simpul/node sebuah pointer. Simpul pada linked list

    terdiri dari 2 komponen yaitu :

    Data yang diisi beberapa atau satu elemen.

    Pointer

    PERBEDAAN ARRAY DENGAN LINKED LIST

    Array dan Linked list hampir serupa tetapi berbeda , berikut perbedaannya

    Array Linked List

    Statis Dinamis

    Random Access Sequential Access

    Penghapusan array tidak mungkin Penghapusan data mudah

    Penambahan data terbatas Penambahan tidak terbatas

    BENTUK NODE LINKED LIST

    Bentuk node pada linked list ada 2 yaitu :

    Bentuk node single linked list NON-CIRCULAR

    Single linked list NON-CIRCULAR menggunakan HEAD

    DAFTAR PUSTAKA

    1. Ardhana, YM Kusuma. 2013. Struktur Data dalam Ilustrasi Eclups Indigo C ++. Yogyakarta.


Top Related