LAPORAN PRAKTIKUM
ALGORITMA DAN STRUKTUR DATA II
MODUL II
DOUBLY LINKED LIST
Disusun Oleh :
Syukur Jaya Mendrofa 201501072
Kelas: C
Dosen Pengampu :
Oskar Ika Adi Nugroho, ST., MT
JURUSAN SISTEM INFORMASI
SEKOLAH TINGGI ILMU KOMPUTER “YOS SUDARSO”
PURWOKERTO
BAB I
DASAR TEORI
Doubly Linked Listnext
... Head prior info
Tiap node memiliki pointer yang menunjuk ke node sesudahnya dan pointer yang menunjuk ke node sebelumnya.
Node Sesudahnya : Next(Node) Node sebelumnya : Prior(Node)
Next(Prior(P)) = P dan P = Prior(next(P))
Doubly Linked List Kosong :
next
prior
head
prior head next Prior(Head) = Head Next(Head) = Head
PEMBAHASAN
LISTING PROGRAM DOUBLY LINKED LIST
#include<iostream>
node *baru, *head = NULL, *tail = NULL, *hapus, *bantu; int pil;
int main() {
do {
cout << "MENU DOUBLE LINKEDLIST" << endl;
cout << "DIBUAT OLEH: SYUKUR JAYA MENDROFA" << endl; cout << "1. Tambah Depan" << endl;
tambah_belakang();
cout << "input nama : "; cin >> baru->nama; cout << "input umur : "; cin >> baru->umur; cout << "input tinggi : "; cin >> baru->tinggi; baru->prev = NULL;
head = baru; }
cout << endl << endl; tampil(); else if (head->next == NULL) {
cout << endl << endl; tampil(); else if (head->next == NULL) {
cout << endl << endl; tampil();
}
if (head == NULL)
cout << "Kosong"; else
{
bantu = head;
while (bantu != NULL) {
cout << " nama : " << bantu->nama; cout << " umur : " << bantu->umur; cout << " tinggi : " << bantu->tinggi<<endl; bantu = bantu->next;
} }
}
#include<iostream> suatu perintah yang digunakan untuk mengatur compiler agar membaca berkas header yang disertakan dibelakang kata include yakni dalam program ini <iostream> saat pelaksanaan kompilasi.
#include<conio.h> file haeder ini tidak berfungsi, program tetap jalan tanpa header ini.
#include<stdio.h> file haeder ini tidak berfungsi, program tetap jalan tanpa header ini.
using namespace std; menyatakan kepada compiler bahwa program menggunakan namespace bernama std; namespace fungsinya untuk mengelompokkan elemen-elemen ke dalam sebuah nama. std adalah nama bawaan yang digunakan pada semua pustaka standar C++. Contohnya untuk menampilkan keluaran berupa cout, endl.
void pilih(); fungsi prototype, jenis fungsi ini menggunakan fungsi void. fungsi void tidak memiliki nilai kembalian.
void buat_baru(); fungsi prototype, jenis fungsi ini menggunakan fungsi void.
fungsi void tidak memiliki nilai kembalian.
void tambah_belakang(); fungsi prototype, jenis fungsi ini menggunakan fungsi void. fungsi void tidak memiliki nilai kembalian.
void tambah_depan(); fungsi prototype, jenis fungsi ini menggunakan fungsi void.
fungsi void tidak memiliki nilai kembalian.
void hapus_belakang(); fungsi prototype, jenis fungsi ini menggunakan fungsi void.
fungsi void tidak memiliki nilai kembalian.
void hapus_depan(); fungsi prototype, jenis fungsi ini menggunakan fungsi void.
fungsi void tidak memiliki nilai kembalian.
void tampil(); fungsi prototype, jenis fungsi ini menggunakan fungsi void. fungsi void tidak memiliki nilai kembalian.
struct node { tipe data struct dengan nama node.
char nama[20]; anggota struct node dengan tipe data char, variable ‘nama’.
int umur; anggota struct node dengan tipe data integer, variable ‘umur’.
float tinggi; anggota struct node dengan tipe data float, variable ‘tinggi’.
struct node* prev; anggota struct dengan tipe data ‘struct node’, variable pointer dengan nama variable pointer prev.
}; batas anggota dari struct
node *baru, *head = NULL, *tail = NULL, *hapus, *bantu; merupakan variable pointer dengan tipe data node dengan nama-nama variable pointer tersebut adalah
baru, head = NULL, tail = NULL, hapus, bantu. Variable-variabel ini juga merupakan variable-variabel global yang bisa dipanggil dimana saja baik di dalam maupun di luar fungsi utama.
int pil; variable pil dengan tipe data integer, Variable ini juga merupakan variabel global yang bisa dipanggil dimana saja baik di dalam maupun di luar fungsi utama.
int main() fungsi utama.
{ awal tubuh fungsi utama.
do perulangan.
{ awal tubuh perulangan do.
cout << "MENU DOUBLE LINKEDLIST" << endl; menampilkan di output string yang berada di dalam tanda kutip.
cout << "DIBUAT OLEH: SYUKUR JAYA MENDROFA" << endl; menampilkan di output string yang berada di dalam tanda kutip.
cout << "1. Tambah Depan" << endl; menampilkan di output string yang berada di dalam tanda kutip.
cout << "2. Tambah Belakang" << endl; menampilkan di output string yang berada di dalam tanda kutip.
cout << "3. Hapus Depan" << endl; menampilkan di output string yang berada di dalam tanda kutip.
cout << "4. Hapus Belakang" << endl; menampilkan di output string yang berada di dalam tanda kutip.
cout << "5. Tampilkan" << endl; menampilkan di output string yang berada di dalam tanda kutip.
cout << "Pilihan Anda : "; menampilkan di output string yang berada di dalam tanda kutip.
cin >> pil; variable untuk menyimpan variable pil yang akan dimasukkan.
pilih(); memanggil fungsi void pilih.
} akhir dari tubuh perulangan do.
while (pil != 6); pernyataan yang akan dihasilkan jika perintah dari do TRUE yaitu ketika variable tidak sama dengan 6.
return 0; Pernyataan bahwa nilai balik program adalah nol. Nol biasa digunakan untuk menyatakan bahwa program berhasil melaksanakan tugas yang diembannya.
} Merupakan akhir dari tubuh fungsi utama int main().
ALGORITMA PROGRAM DIATAS BERDASARKAN HASIL OUTPUTNYA ADALAH
1. Setelah program di ekeskusi program pertama sekali masuk kedalam fungsi int main (fungsi utama) yaitu dengan menampilkan hasil di output seperti pada gambar berikut ini.
3. Karena pilihan saya = 1, maka selanjutnya program masuk pada fungsi void tambah_depan( )
5. Didalam fungsi void tambah_depan( ) program memanggil fungsi void buat_baru ( )
setelah selesai maka selanjutnya memanggil fungsi void tampil ( )
Sehingga menghasilkan output seperti pada gambar :
6. Kemudian kembali ke fungsi utama lagi dikarenakan semua fungsi yang dipanggil adalah
fungsi void tidak memiliki nilai kembalian, harus kembali ke fungsi utama/ int main( ). Oleh sebab itu output menampilkan.
8. Karena pilihan saya = 2, maka selanjutnya program masuk pada fungsi void tambah_belakang( )
9. Didalam fungsi void tambah_belakang( ) program memanggil fungsi void buat_baru ( )
10. Didalam fungsi void tambah_belakang( ) program memanggil fungsi void buat_baru ( ) setelah selesai maka selanjutnya memanggil fungsi void tampil ( )
11. Kemudian kembali ke fungsi utama lagi dikarenakan semua fungsi yang dipanggil adalah
fungsi void tidak memiliki nilai kembalian, harus kembali ke fungsi utama/ int main( ). Oleh sebab itu output menampilkan
12. Setelah itu saya memasukkan pilihan, disini saya memasukkan angka 3 maka selanjutnya program akan menyimpannya kemudian memanggil fungsi void pilih( )
14. Setelah di proses di dalam fungsi void hapus_depan( ) lalu program masuk ke dalam
fungsi void tampil ( )
Sehingga menghasilkan output seperti pada gambar di bawah
15. Kemudian kembali ke fungsi utama lagi dikarenakan semua fungsi yang dipanggil adalah
fungsi void tidak memiliki nilai kembalian, harus kembali ke fungsi utama/ int main( ). Oleh sebab itu output menampilkan
16. Setelah itu saya memasukkan pilihan, disini saya memasukkan angka 6 maka selanjutnya program akan menyimpannya kemudian memanggil fungsi void pilih( )
BAB III
KESIMPULAN
Berdasarkan dari praktikum yang telah saya lakukan saya dapat menyimpulkan tentang doubly linked list :
1. Doubly linked list terdiri dari tiga komponen yaitu :
Previous
Data/nilai
Next
2. Doubly Linked list selalu memiliki pointer petunjuk yang selalu menunjuk pada awal dari list yang disebut Head.
3. Doubly Linked list juga selalu memiliki pointer petunjuk menunjuk pada akhir dari list yang disebut Tail.