laporan resmi linked list 201301011
DESCRIPTION
tugas kuliahTRANSCRIPT
-
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.