TUJUAN
Mahasiswa mampu mensimulasikan Insertion pada node awal dan node akhir dari Linked List
Percobaan 1: Insertion 1
Salin dan jalankan coding berikut ini kemudian beri komentar pada setiap baris coding.
#include<stdio.h> #include<conio.h> #include<stdlib.h> struct silsilah { char gen[20]; int umur; struct silsilah *next; }; struct silsilah *buffer, *generasi, *ayah, *kakek; void sisip(); main() { ayah=(struct silsilah*)malloc(sizeof(struct silsilah)); printf("Masukkan nama Ayah :");gets(ayah->gen); printf("Masukkan umur Ayah :");scanf("%d",&ayah->umur);fflush(stdin); generasi=ayah; generasi->next=NULL; buffer=(struct silsilah*)malloc(sizeof(struct silsilah)); generasi->next=buffer; printf("Masukkan nama Anak :");gets(buffer->gen); printf("Masukkan umur anak :");scanf("%d",&buffer->umur);fflush(stdin); generasi=buffer; generasi->next=NULL; //sisip(); while(ayah!=NULL) { printf("%s\t%d\n",ayah->gen,ayah->umur); ayah=ayah->next; } } void sisip() { kakek=(struct silsilah*)malloc(sizeof(struct silsilah)); printf("Masukkan nama kakek :");gets(kakek->gen); printf("Masukkan umur kakek :");scanf("%d",&kakek->umur);fflush(stdin); kakek->next=ayah; ayah=kakek; }
Dari percobaan yang telah dilakukan, jawab pertanyaan berikut ini:
- Tampilkan hasil program setelah dijalankan
- Sebutkan jenis Linked List yang dijalankan pada coding tersebut (LIFO atau FILO) dan jelaskan alasannya.
FIFO, karena data yang diinputkan pertama keluar pertama. - Gambarkan ilustrasi linked list saat ini?
- Ada berapa node dari linked list tersebut?
Ada 2 - Apa isi elemen node head?Nama = Contoh 1
Umur = 50
Next = Anak - Apa isi elemen node tail?Nama = Contoh 2
Umur = 20
Next = NULL - Aktifkan coding baris 32 dan tampilkan hasil program setelah dijalankan
- Gambarkan ilustrasi linked list saat ini?
- Ada berapa node dari linked list tersebut?Ada 3
- Apa isi elemen node head?
Kakek - Apa isi elemen node tail?
Anak - Berdasarkan percobaan yang telah dilakukan pada bagian manakan node baru disisipkan pada linked list?
Node kakek - Bagian coding mana yang memungkinkan node baru bisa disisip dan jelaskan coding tersebut?
Line 32 memanggil penyisipan node baru tepat sebelum diprint. Sedangkan line 41 sampai habis bertanggung jawab dalam melakukan penyisipan.
Percobaan 2: Insertion 2
Salin dan jalankan coding berikut ini kemudian beri komentar pada setiap baris coding.
#include<stdio.h> #include<conio.h> #include<stdlib.h> struct kereta_api { int nomor_gerbong,jumlah_penumpang; struct kereta_api *next; }; struct kereta_api *buffer, *gerbong, *masinis, *penumpang; void sisip(); main() { masinis=(struct kereta_api*)malloc(sizeof(struct kereta_api)); masinis->nomor_gerbong=0; masinis->jumlah_penumpang=2; gerbong=masinis; gerbong->next=NULL; buffer=(struct kereta_api*)malloc(sizeof(struct kereta_api)); gerbong->next=buffer; buffer->nomor_gerbong=1; buffer->jumlah_penumpang=50; gerbong=buffer; gerbong->next=NULL; //sisip(); while(masinis!=NULL) { printf("%d\t%d\n",masinis->nomor_gerbong,masinis->jumlah_penumpang); masinis=masinis->next; } } void sisip() { penumpang=(struct kereta_api*)malloc(sizeof(struct kereta_api)); gerbong->next=penumpang; penumpang->nomor_gerbong=2; penumpang->jumlah_penumpang=100; gerbong=penumpang; gerbong->next=NULL; }
Dari percobaan yang telah dilakukan, jawab pertanyaan berikut ini:
- Tampilkan hasil program setelah dijalankan
- Gambarkan ilustrasi linked list saat ini?
- Ada berapa node dari linked list tersebut?
Ada 2 - Apa isi elemen node head?
Nomor_gerbong = 0
Jumlah_penumpang = 2
Next=Buffer - Apa isi elemen node tail?
Nomor_gerbong = 1
Jumlah_penumpang =50
Next=NULL - Aktifkan coding baris 31 dan tampilkan hasil program setelah dijalankan
- Gambarkan ilustrasi linked list saat ini?
- Ada berapa node dari linked list tersebut?
Ada 3 - Apa isi elemen node head?
Nomor_gerbong = 0
Jumlah_penumpang = 2
Next=Buffer - Apa isi elemen node tail?
Nomor_gerbong = 2
Jumlah_penumpang = 100
Next=NULL - Berdasarkan percobaan yang telah dilakukan pada bagian manakan node baru disisipkan pada linked list?
Node penumpang - Bagian coding mana yang memungkinkan node baru bisa disisip dan jelaskan coding tersebut?
Line 31 memanggil fungsi sisip
Line 40 sampai habis mengganti alamat next dari node terakhir ke penumpang, lalu menyisipkan node baru, lalu mengarahkan next node penumpang ke NULL.
*Bonus (Gunakan Perulangan):
Modifikasi program pada Percobaan 2 sehingga pengguna bisa menginputkan jumlah gerbong penumpang yang ingin ditambahkan. Kemudian, tampilkan data Linked List sesuai dengan jumlah gerbong yang ditambahkan pengguna.
#include<stdio.h> #include<conio.h> #include<stdlib.h> struct kereta_api { int nomor_gerbong,jumlah_penumpang; struct kereta_api *next; }; struct kereta_api *buffer, *gerbong, *masinis, *penumpang; void sisip(); main() { int i=0,x=0; masinis=(struct kereta_api*)malloc(sizeof(struct kereta_api)); masinis->nomor_gerbong=0; masinis->jumlah_penumpang=2; gerbong=masinis; gerbong->next=NULL; buffer=(struct kereta_api*)malloc(sizeof(struct kereta_api)); gerbong->next=buffer; buffer->nomor_gerbong=1; buffer->jumlah_penumpang=50; gerbong=buffer; gerbong->next=NULL; printf("Tambah berapa gerbong?");scanf("%d",&x); sisip(x); while(masinis!=NULL) { printf("%d\t%d\n",masinis->nomor_gerbong,masinis->jumlah_penumpang); masinis=masinis->next; } } void sisip(int x) { int y; for (y=1;y<=x;y++) { penumpang=(struct kereta_api*)malloc(sizeof(struct kereta_api)); gerbong->next=penumpang; penumpang->nomor_gerbong=y+1; penumpang->jumlah_penumpang=50*y+50; gerbong=penumpang; gerbong->next=NULL; } }
Incoming Terms
- Percobaan Program Fifo
- Fifo Dan Lifo Pada Linked List
1 komentar