Laporan Praktikum Struktur Data Modul 7 – Single Linked List FIFO (First In First Out)

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:

  1. Tampilkan hasil program setelah dijalankan
    a
  2. Sebutkan jenis Linked List yang dijalankan pada coding tersebut (LIFO atau FILO) dan jelaskan alasannya.
    FIFO, karena data yang diinputkan pertama keluar pertama.
  3. Gambarkan ilustrasi linked list saat ini?
    untitled
  4. Ada berapa node dari linked list tersebut?
    Ada 2
  5. Apa isi elemen node head?Nama = Contoh 1
    Umur = 50
    Next = Anak
  6. Apa isi elemen node tail?Nama = Contoh 2
    Umur = 20
    Next = NULL
  7. Aktifkan coding baris 32 dan tampilkan hasil program setelah dijalankan
    a
  8. Gambarkan ilustrasi linked list saat ini?
    2
  9.  Ada berapa node dari linked list tersebut?Ada 3
  10. Apa isi elemen node head?
    Kakek
  11. Apa isi elemen node tail?
    Anak
  12. Berdasarkan percobaan yang telah dilakukan pada bagian manakan node baru disisipkan pada linked list?
    Node kakek
  13. 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:

  1. Tampilkan hasil program setelah dijalankan
    a
  2. Gambarkan ilustrasi linked list saat ini?
    2
  3. Ada berapa node dari linked list tersebut?
    Ada 2
  4. Apa isi elemen node head?
    Nomor_gerbong = 0
    Jumlah_penumpang = 2
    Next=Buffer
  5. Apa isi elemen node tail?
    Nomor_gerbong = 1
    Jumlah_penumpang =50
    Next=NULL
  6. Aktifkan coding baris 31 dan tampilkan hasil program setelah dijalankana
  7. Gambarkan ilustrasi linked list saat ini?
    2
  8. Ada berapa node dari linked list tersebut?
    Ada 3
  9. Apa isi elemen node head?
    Nomor_gerbong = 0
    Jumlah_penumpang = 2
    Next=Buffer
  10. Apa isi elemen node tail?
    Nomor_gerbong = 2
    Jumlah_penumpang = 100
    Next=NULL
  11. Berdasarkan percobaan yang telah dilakukan pada bagian manakan node baru disisipkan pada linked list?
    Node penumpang
  12. 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;

    }

}

a

Share Button

By Rinaldo Jonathan

Admin of this site. Artis papan PCB. #zoneRinaldo #Controllerism Studio Demon, Stage Angel, Sleepy Developer, Smoke free. Kalkud SHS 2012, PCR G15.

1 comment

Leave a Reply

Verified by ExactMetrics