SlideShare a Scribd company logo
Created by: achmad sayfudin (www.sayfudinblogz.blogspot.com)

LISTING PROGRAM
#include"stdio.h"
#include"stdlib.h"
void awal();
void sebelum();
void setelah();
void akhir();
void cetak();
void menu();
void alokasi();
typedef struct simpul node;
struct simpul{
int data;
node *next;
};
node *p,*head,*after,*before,*prevbefore,*tail;
int x,sisip;
main()
{
char pil;
do{system("cls");
menu();
printf("kembali ke menu>");
fflush(stdin);
pil=getchar();
}while(pil=='y'||pil=='Y');}
void menu()
{ char pil;
printf("masukan pilihan anda > n");
puts("1. awal");
puts("2. sebelum");
puts("3. setelah");
puts("4. akhir");
puts("5. cetak");
puts("6. exit");
printf("masukan pilahan anda>");
fflush(stdin);
scanf("%c",&pil);
switch (pil)
{
case '1':
awal();
break;
case '2':
sebelum();
break;
case '3':
setelah();
break;
case '4':
akhir();
Created by: achmad sayfudin (www.sayfudinblogz.blogspot.com)
break;
case '5':
cetak();
break;
case '6':
exit(0);
break;
}
}
void alokasi()
{
printf("nilai=");//siapkan data
scanf("%d",&x);
p=(node *)malloc(sizeof(node));//alokasi memori
if(p==NULL)
{
puts("!!memmori penuh!!");
exit(1);
}
p->data=x;//tentukan cari posisi//
p->next=NULL;
}
void awal()
{
char pil;
puts("masukan data");
do{
alokasi();
if(head==NULL)
{head=p; tail=p;}
else
{
p->next=head;
head=p;
}
fflush(stdin);
printf("input lagi=");
pil=getchar();
}while(pil=='y'||pil=='Y');
}
void cetak()
{ node *baca;
baca=head;
while(baca!=NULL)
{
printf("hasil = %d n",baca->data);
baca=baca->next;
}
}
void setelah()
{int cari;
alokasi();
fflush(stdin);
printf("data mau disisipkan dimana = ");
Created by: achmad sayfudin (www.sayfudinblogz.blogspot.com)
scanf("%d",&cari);
after=head;
while(after->data!=cari)
{ if(after->next==NULL)
{printf("data tak ketemu");
exit(1);}
else
after=after->next;
}
p->next=after->next;
after->next=p;
}
void sebelum()
{
char pil;
before=head;
do{
printf("sisipkan dimana > ");
scanf("%d",&sisip);
if(head->data==sisip)
{awal();}
Else
{ alokasi();
while(before->data!=sisip)
{
prevbefore = before;
if(before->next == NULL)
{
printf("Nilai %d tdk ada dlm listn", x);
exit(1);}
else
before = before->next;
}
p->next = before;
prevbefore->next = p;
}
printf("sisip lagi > ");
fflush(stdin);
pil=getchar();
}
while(pil=='y'||pil=='Y');
}
void akhir()
{ char jawab;
do{
alokasi();
if(head == NULL) { //list msh kosong
head = p;
//data baru mjd data pertama
tail = p;
//sekaligus data terakhir
}
else {
tail->next = p; //arahkan tail->next ke data baru
tail = tail->next; //update posisi tail
Created by: achmad sayfudin (www.sayfudinblogz.blogspot.com)
}
fflush(stdin);
printf("masih ada data lagi = ");
jawab=getchar();
}while(jawab=='y'||jawab=='Y');
}

HASIL PROGRAM
#Tampilan Awal.

# Sisip di Awal
Created by: achmad sayfudin (www.sayfudinblogz.blogspot.com)

Hasilnya

Inputan lagi di awal angka 1

Inputan sebelum angka 5sebelum angka 3 dan inputan angka 2 setelah angka 3
Created by: achmad sayfudin (www.sayfudinblogz.blogspot.com)

Input setelah 5angka 4 dan inputan di akhir setelah angka 1.

Input di akhir
Created by: achmad sayfudin (www.sayfudinblogz.blogspot.com)

Skema program insert diatas.
Insert dari awal sampai akhir.

1

3

1

5

5

5

5

3

3

2

4

4

1

3

3

1

2

2

1

1

0
Created by: achmad sayfudin (www.sayfudinblogz.blogspot.com)

URAIAN FUNGSI
INSERT DARI HEAD
p

head

1

tail

2

3

INSERT SETELAH DATA TERTENTU
head

after

1

2

tail
3

88
p
INSERT SEBELUM DATA TERTENTU
head
1

prevbefore
2

88

tail
3
before

99
p
INSERT DARI TAIL

head
1

2

88
p

tail
4

4

99

5

3
Created by: achmad sayfudin (www.sayfudinblogz.blogspot.com)

Analisa program
Sebelum membuat linked list single list yaitu:
a. Siapkan data dan alokasikan memory
b. Tentukan dan cari posisi
c. Hubungkan antara node atau simpul.
Node berisi 2 data yaitu :
a. Data
b. Data pointer untuk menyimpan alamat node lain yang di tuju.
c. Karena data berupa homogeny maka gunakan tipe data buatan struct

Pemrograman mengunakan struktur data linked list mempunyai banyak kelebihan yaitu:
1. Data yang dinamis ukuran data dan isi bisa kita ubah sesuka programmer
2. Kemudahan bekerja dengan pointer daripada tipedata primitive karena pointer
menyimpan alamat memori yang dituju bukan isi suatu variable.
Kekurangan:
1. Hanya dapat membaca data satu arah saja dari depan kebelakang INTINYA LAST
IN FIRST OUT seperti tipe data stact.
2. Memori tersusun secara tak teratur
3. Eksekusi lambat berbeda dengan tipe array agak cepat.

More Related Content

Similar to Queue laporan

Laporan program data pemain bola (java)
Laporan program data pemain bola (java)Laporan program data pemain bola (java)
Laporan program data pemain bola (java)Rifqi Syamsul Fuadi
 
program pencarian data dengan bahasa C
program pencarian data dengan bahasa Cprogram pencarian data dengan bahasa C
program pencarian data dengan bahasa Ckir yy
 
Pascal (Pengenalan).pdf
Pascal (Pengenalan).pdfPascal (Pengenalan).pdf
Pascal (Pengenalan).pdfDesaSumbung
 
Laporan3
Laporan3Laporan3
Laporan3Sa Lam
 
Algoritma Perulangan
Algoritma PerulanganAlgoritma Perulangan
Algoritma Perulanganbrigidaarie
 
Program browser java
Program browser javaProgram browser java
Program browser javaAisy Cuyy
 
Struktur dan tipe data
Struktur dan tipe dataStruktur dan tipe data
Struktur dan tipe dataMuhammad Fahmi
 
Laporan4
Laporan4Laporan4
Laporan4Sa Lam
 
C programming language notes (5)
C programming language notes (5)C programming language notes (5)
C programming language notes (5)nakomuri
 
Laporan praktikum web ke 5
Laporan praktikum web ke 5Laporan praktikum web ke 5
Laporan praktikum web ke 5sunubismel13
 
Membuat aplikasi polling dengan php
Membuat aplikasi polling dengan phpMembuat aplikasi polling dengan php
Membuat aplikasi polling dengan phpdikazaim
 
Laporan6
Laporan6Laporan6
Laporan6Sa Lam
 
Tugas C++ - Dian Aditya - 2009/2010
Tugas C++ - Dian Aditya - 2009/2010Tugas C++ - Dian Aditya - 2009/2010
Tugas C++ - Dian Aditya - 2009/2010Dian Aditya
 
modul pemrograman web dengan dreamweaver, sql & php
modul pemrograman web dengan dreamweaver, sql & phpmodul pemrograman web dengan dreamweaver, sql & php
modul pemrograman web dengan dreamweaver, sql & phpIsmi Islamia
 

Similar to Queue laporan (18)

Laporan program data pemain bola (java)
Laporan program data pemain bola (java)Laporan program data pemain bola (java)
Laporan program data pemain bola (java)
 
program pencarian data dengan bahasa C
program pencarian data dengan bahasa Cprogram pencarian data dengan bahasa C
program pencarian data dengan bahasa C
 
Pascal (Pengenalan).pdf
Pascal (Pengenalan).pdfPascal (Pengenalan).pdf
Pascal (Pengenalan).pdf
 
Laporan3
Laporan3Laporan3
Laporan3
 
Algoritma dan Pemrograman
Algoritma dan Pemrograman Algoritma dan Pemrograman
Algoritma dan Pemrograman
 
Algoritma Perulangan
Algoritma PerulanganAlgoritma Perulangan
Algoritma Perulangan
 
Program browser java
Program browser javaProgram browser java
Program browser java
 
M05c perulangan2
M05c  perulangan2M05c  perulangan2
M05c perulangan2
 
Struktur dan tipe data
Struktur dan tipe dataStruktur dan tipe data
Struktur dan tipe data
 
Laporan4
Laporan4Laporan4
Laporan4
 
C programming language notes (5)
C programming language notes (5)C programming language notes (5)
C programming language notes (5)
 
Queue
QueueQueue
Queue
 
Laporan praktikum web ke 5
Laporan praktikum web ke 5Laporan praktikum web ke 5
Laporan praktikum web ke 5
 
Membuat aplikasi polling dengan php
Membuat aplikasi polling dengan phpMembuat aplikasi polling dengan php
Membuat aplikasi polling dengan php
 
Laporan6
Laporan6Laporan6
Laporan6
 
Tugas C++ - Dian Aditya - 2009/2010
Tugas C++ - Dian Aditya - 2009/2010Tugas C++ - Dian Aditya - 2009/2010
Tugas C++ - Dian Aditya - 2009/2010
 
modul pemrograman web dengan dreamweaver, sql & php
modul pemrograman web dengan dreamweaver, sql & phpmodul pemrograman web dengan dreamweaver, sql & php
modul pemrograman web dengan dreamweaver, sql & php
 
Tutor C
Tutor CTutor C
Tutor C
 

More from Achmad Sayfudin

More from Achmad Sayfudin (6)

Tugas dasar linux
Tugas dasar linuxTugas dasar linux
Tugas dasar linux
 
Queue laporan
Queue laporanQueue laporan
Queue laporan
 
Management harddisk dengan dos
Management harddisk dengan dosManagement harddisk dengan dos
Management harddisk dengan dos
 
Konfigurasi web server
Konfigurasi web serverKonfigurasi web server
Konfigurasi web server
 
Karya tulis ilmiah SMS GATEWAY UNTUK SEKOLAH
Karya tulis ilmiah SMS GATEWAY UNTUK SEKOLAHKarya tulis ilmiah SMS GATEWAY UNTUK SEKOLAH
Karya tulis ilmiah SMS GATEWAY UNTUK SEKOLAH
 
Project akhir uas
Project akhir uasProject akhir uas
Project akhir uas
 

Recently uploaded

Form B1 Rubrik Observasi Presentasi Visi Misi -1.docx
Form B1 Rubrik Observasi Presentasi Visi Misi -1.docxForm B1 Rubrik Observasi Presentasi Visi Misi -1.docx
Form B1 Rubrik Observasi Presentasi Visi Misi -1.docxEkoPutuKromo
 
LAPORAN TUGAS TAMBAHAN PEMBINA PRAMUKA..
LAPORAN TUGAS TAMBAHAN PEMBINA PRAMUKA..LAPORAN TUGAS TAMBAHAN PEMBINA PRAMUKA..
LAPORAN TUGAS TAMBAHAN PEMBINA PRAMUKA..widyakusuma99
 
Sapawarga - Manual Guide PPDB Tahun 2024.pdf
Sapawarga - Manual Guide PPDB Tahun 2024.pdfSapawarga - Manual Guide PPDB Tahun 2024.pdf
Sapawarga - Manual Guide PPDB Tahun 2024.pdfTarkaTarka
 
Susi Susanti_2021 B_Analisis Kritis Jurnal.pdf
Susi Susanti_2021 B_Analisis Kritis Jurnal.pdfSusi Susanti_2021 B_Analisis Kritis Jurnal.pdf
Susi Susanti_2021 B_Analisis Kritis Jurnal.pdfSusiSusanti94678
 
Tugas 1 Statistik Pendidikan UT Tahun 2024
Tugas 1 Statistik Pendidikan UT Tahun 2024Tugas 1 Statistik Pendidikan UT Tahun 2024
Tugas 1 Statistik Pendidikan UT Tahun 2024AndrianiWimarSarasWa1
 
KERAJINAN DARI BAHAN LIMBAH BERBENTUK BANGUN RUANG
KERAJINAN DARI BAHAN LIMBAH BERBENTUK BANGUN RUANGKERAJINAN DARI BAHAN LIMBAH BERBENTUK BANGUN RUANG
KERAJINAN DARI BAHAN LIMBAH BERBENTUK BANGUN RUANGEviRohimah3
 
Program Kerja Kepala Sekolah 2023-2024.pdf
Program Kerja Kepala Sekolah 2023-2024.pdfProgram Kerja Kepala Sekolah 2023-2024.pdf
Program Kerja Kepala Sekolah 2023-2024.pdferlita3
 
Modul Ajar Bahasa Indonesia Kelas 2 Fase A Kurikulum Merdeka - abdiera.com
Modul Ajar Bahasa Indonesia Kelas 2 Fase A Kurikulum Merdeka - abdiera.comModul Ajar Bahasa Indonesia Kelas 2 Fase A Kurikulum Merdeka - abdiera.com
Modul Ajar Bahasa Indonesia Kelas 2 Fase A Kurikulum Merdeka - abdiera.comFathan Emran
 
Konflik dan Negosiasi dalam perilaku organisai
Konflik dan Negosiasi dalam perilaku organisaiKonflik dan Negosiasi dalam perilaku organisai
Konflik dan Negosiasi dalam perilaku organisaimuhammadmasyhuri9
 
Pi-2 AGUS MULYADI. S.Pd (3).pptx visi giru penggerak dan prakrsa perubahan bagja
Pi-2 AGUS MULYADI. S.Pd (3).pptx visi giru penggerak dan prakrsa perubahan bagjaPi-2 AGUS MULYADI. S.Pd (3).pptx visi giru penggerak dan prakrsa perubahan bagja
Pi-2 AGUS MULYADI. S.Pd (3).pptx visi giru penggerak dan prakrsa perubahan bagjaagusmulyadi08
 
Teori Profetik Kuntowijoyo (Dosen Pengampu: Khoirin Nisai Shalihati)
Teori Profetik Kuntowijoyo (Dosen Pengampu: Khoirin Nisai Shalihati)Teori Profetik Kuntowijoyo (Dosen Pengampu: Khoirin Nisai Shalihati)
Teori Profetik Kuntowijoyo (Dosen Pengampu: Khoirin Nisai Shalihati)LabibAqilFawaizElB
 
ppt-menghindari-marah-ghadab-membiasakan-kontrol-diri-dan-berani-membela-kebe...
ppt-menghindari-marah-ghadab-membiasakan-kontrol-diri-dan-berani-membela-kebe...ppt-menghindari-marah-ghadab-membiasakan-kontrol-diri-dan-berani-membela-kebe...
ppt-menghindari-marah-ghadab-membiasakan-kontrol-diri-dan-berani-membela-kebe...AgusRahmat39
 
LAPORAN EKSTRAKURIKULER MULYADI.A S.Pd.,M.Pd.pdf
LAPORAN EKSTRAKURIKULER MULYADI.A S.Pd.,M.Pd.pdfLAPORAN EKSTRAKURIKULER MULYADI.A S.Pd.,M.Pd.pdf
LAPORAN EKSTRAKURIKULER MULYADI.A S.Pd.,M.Pd.pdfpkbmattariqpaud
 
Laporan wakil kepala sekolah bagian Kurikulum.pdf
Laporan wakil kepala sekolah bagian Kurikulum.pdfLaporan wakil kepala sekolah bagian Kurikulum.pdf
Laporan wakil kepala sekolah bagian Kurikulum.pdfyuniarmadyawati361
 
VISI MISI KOMUNITAS BELAJAR SDN 93 KOTA JAMBI
VISI MISI KOMUNITAS BELAJAR SDN 93 KOTA JAMBIVISI MISI KOMUNITAS BELAJAR SDN 93 KOTA JAMBI
VISI MISI KOMUNITAS BELAJAR SDN 93 KOTA JAMBIgloriosaesy
 
PPT Aksi Nyata Diseminasi Modul 1.4.pptx
PPT Aksi Nyata Diseminasi Modul 1.4.pptxPPT Aksi Nyata Diseminasi Modul 1.4.pptx
PPT Aksi Nyata Diseminasi Modul 1.4.pptxKurnia Fajar
 
Form B8 Rubrik Refleksi Program Pengembangan Kompetensi Guru -1.docx
Form B8 Rubrik Refleksi Program Pengembangan Kompetensi Guru -1.docxForm B8 Rubrik Refleksi Program Pengembangan Kompetensi Guru -1.docx
Form B8 Rubrik Refleksi Program Pengembangan Kompetensi Guru -1.docxEkoPutuKromo
 
Presentasi visi misi revisi sekolah dasar.pptx
Presentasi visi misi revisi sekolah dasar.pptxPresentasi visi misi revisi sekolah dasar.pptx
Presentasi visi misi revisi sekolah dasar.pptxDWIHANDOYOPUTRO2
 
PRESENTASI OBSERVASI PENGELOLAAN KINERJA KEPALA SEKOLAH.pptx
PRESENTASI OBSERVASI PENGELOLAAN KINERJA KEPALA SEKOLAH.pptxPRESENTASI OBSERVASI PENGELOLAAN KINERJA KEPALA SEKOLAH.pptx
PRESENTASI OBSERVASI PENGELOLAAN KINERJA KEPALA SEKOLAH.pptxmuhammadyudiyanto55
 
Bab 3 Sejarah Kerajaan Hindu-Buddha.pptx
Bab 3 Sejarah Kerajaan Hindu-Buddha.pptxBab 3 Sejarah Kerajaan Hindu-Buddha.pptx
Bab 3 Sejarah Kerajaan Hindu-Buddha.pptxnawasenamerta
 

Recently uploaded (20)

Form B1 Rubrik Observasi Presentasi Visi Misi -1.docx
Form B1 Rubrik Observasi Presentasi Visi Misi -1.docxForm B1 Rubrik Observasi Presentasi Visi Misi -1.docx
Form B1 Rubrik Observasi Presentasi Visi Misi -1.docx
 
LAPORAN TUGAS TAMBAHAN PEMBINA PRAMUKA..
LAPORAN TUGAS TAMBAHAN PEMBINA PRAMUKA..LAPORAN TUGAS TAMBAHAN PEMBINA PRAMUKA..
LAPORAN TUGAS TAMBAHAN PEMBINA PRAMUKA..
 
Sapawarga - Manual Guide PPDB Tahun 2024.pdf
Sapawarga - Manual Guide PPDB Tahun 2024.pdfSapawarga - Manual Guide PPDB Tahun 2024.pdf
Sapawarga - Manual Guide PPDB Tahun 2024.pdf
 
Susi Susanti_2021 B_Analisis Kritis Jurnal.pdf
Susi Susanti_2021 B_Analisis Kritis Jurnal.pdfSusi Susanti_2021 B_Analisis Kritis Jurnal.pdf
Susi Susanti_2021 B_Analisis Kritis Jurnal.pdf
 
Tugas 1 Statistik Pendidikan UT Tahun 2024
Tugas 1 Statistik Pendidikan UT Tahun 2024Tugas 1 Statistik Pendidikan UT Tahun 2024
Tugas 1 Statistik Pendidikan UT Tahun 2024
 
KERAJINAN DARI BAHAN LIMBAH BERBENTUK BANGUN RUANG
KERAJINAN DARI BAHAN LIMBAH BERBENTUK BANGUN RUANGKERAJINAN DARI BAHAN LIMBAH BERBENTUK BANGUN RUANG
KERAJINAN DARI BAHAN LIMBAH BERBENTUK BANGUN RUANG
 
Program Kerja Kepala Sekolah 2023-2024.pdf
Program Kerja Kepala Sekolah 2023-2024.pdfProgram Kerja Kepala Sekolah 2023-2024.pdf
Program Kerja Kepala Sekolah 2023-2024.pdf
 
Modul Ajar Bahasa Indonesia Kelas 2 Fase A Kurikulum Merdeka - abdiera.com
Modul Ajar Bahasa Indonesia Kelas 2 Fase A Kurikulum Merdeka - abdiera.comModul Ajar Bahasa Indonesia Kelas 2 Fase A Kurikulum Merdeka - abdiera.com
Modul Ajar Bahasa Indonesia Kelas 2 Fase A Kurikulum Merdeka - abdiera.com
 
Konflik dan Negosiasi dalam perilaku organisai
Konflik dan Negosiasi dalam perilaku organisaiKonflik dan Negosiasi dalam perilaku organisai
Konflik dan Negosiasi dalam perilaku organisai
 
Pi-2 AGUS MULYADI. S.Pd (3).pptx visi giru penggerak dan prakrsa perubahan bagja
Pi-2 AGUS MULYADI. S.Pd (3).pptx visi giru penggerak dan prakrsa perubahan bagjaPi-2 AGUS MULYADI. S.Pd (3).pptx visi giru penggerak dan prakrsa perubahan bagja
Pi-2 AGUS MULYADI. S.Pd (3).pptx visi giru penggerak dan prakrsa perubahan bagja
 
Teori Profetik Kuntowijoyo (Dosen Pengampu: Khoirin Nisai Shalihati)
Teori Profetik Kuntowijoyo (Dosen Pengampu: Khoirin Nisai Shalihati)Teori Profetik Kuntowijoyo (Dosen Pengampu: Khoirin Nisai Shalihati)
Teori Profetik Kuntowijoyo (Dosen Pengampu: Khoirin Nisai Shalihati)
 
ppt-menghindari-marah-ghadab-membiasakan-kontrol-diri-dan-berani-membela-kebe...
ppt-menghindari-marah-ghadab-membiasakan-kontrol-diri-dan-berani-membela-kebe...ppt-menghindari-marah-ghadab-membiasakan-kontrol-diri-dan-berani-membela-kebe...
ppt-menghindari-marah-ghadab-membiasakan-kontrol-diri-dan-berani-membela-kebe...
 
LAPORAN EKSTRAKURIKULER MULYADI.A S.Pd.,M.Pd.pdf
LAPORAN EKSTRAKURIKULER MULYADI.A S.Pd.,M.Pd.pdfLAPORAN EKSTRAKURIKULER MULYADI.A S.Pd.,M.Pd.pdf
LAPORAN EKSTRAKURIKULER MULYADI.A S.Pd.,M.Pd.pdf
 
Laporan wakil kepala sekolah bagian Kurikulum.pdf
Laporan wakil kepala sekolah bagian Kurikulum.pdfLaporan wakil kepala sekolah bagian Kurikulum.pdf
Laporan wakil kepala sekolah bagian Kurikulum.pdf
 
VISI MISI KOMUNITAS BELAJAR SDN 93 KOTA JAMBI
VISI MISI KOMUNITAS BELAJAR SDN 93 KOTA JAMBIVISI MISI KOMUNITAS BELAJAR SDN 93 KOTA JAMBI
VISI MISI KOMUNITAS BELAJAR SDN 93 KOTA JAMBI
 
PPT Aksi Nyata Diseminasi Modul 1.4.pptx
PPT Aksi Nyata Diseminasi Modul 1.4.pptxPPT Aksi Nyata Diseminasi Modul 1.4.pptx
PPT Aksi Nyata Diseminasi Modul 1.4.pptx
 
Form B8 Rubrik Refleksi Program Pengembangan Kompetensi Guru -1.docx
Form B8 Rubrik Refleksi Program Pengembangan Kompetensi Guru -1.docxForm B8 Rubrik Refleksi Program Pengembangan Kompetensi Guru -1.docx
Form B8 Rubrik Refleksi Program Pengembangan Kompetensi Guru -1.docx
 
Presentasi visi misi revisi sekolah dasar.pptx
Presentasi visi misi revisi sekolah dasar.pptxPresentasi visi misi revisi sekolah dasar.pptx
Presentasi visi misi revisi sekolah dasar.pptx
 
PRESENTASI OBSERVASI PENGELOLAAN KINERJA KEPALA SEKOLAH.pptx
PRESENTASI OBSERVASI PENGELOLAAN KINERJA KEPALA SEKOLAH.pptxPRESENTASI OBSERVASI PENGELOLAAN KINERJA KEPALA SEKOLAH.pptx
PRESENTASI OBSERVASI PENGELOLAAN KINERJA KEPALA SEKOLAH.pptx
 
Bab 3 Sejarah Kerajaan Hindu-Buddha.pptx
Bab 3 Sejarah Kerajaan Hindu-Buddha.pptxBab 3 Sejarah Kerajaan Hindu-Buddha.pptx
Bab 3 Sejarah Kerajaan Hindu-Buddha.pptx
 

Queue laporan

  • 1. Created by: achmad sayfudin (www.sayfudinblogz.blogspot.com) LISTING PROGRAM #include"stdio.h" #include"stdlib.h" void awal(); void sebelum(); void setelah(); void akhir(); void cetak(); void menu(); void alokasi(); typedef struct simpul node; struct simpul{ int data; node *next; }; node *p,*head,*after,*before,*prevbefore,*tail; int x,sisip; main() { char pil; do{system("cls"); menu(); printf("kembali ke menu>"); fflush(stdin); pil=getchar(); }while(pil=='y'||pil=='Y');} void menu() { char pil; printf("masukan pilihan anda > n"); puts("1. awal"); puts("2. sebelum"); puts("3. setelah"); puts("4. akhir"); puts("5. cetak"); puts("6. exit"); printf("masukan pilahan anda>"); fflush(stdin); scanf("%c",&pil); switch (pil) { case '1': awal(); break; case '2': sebelum(); break; case '3': setelah(); break; case '4': akhir();
  • 2. Created by: achmad sayfudin (www.sayfudinblogz.blogspot.com) break; case '5': cetak(); break; case '6': exit(0); break; } } void alokasi() { printf("nilai=");//siapkan data scanf("%d",&x); p=(node *)malloc(sizeof(node));//alokasi memori if(p==NULL) { puts("!!memmori penuh!!"); exit(1); } p->data=x;//tentukan cari posisi// p->next=NULL; } void awal() { char pil; puts("masukan data"); do{ alokasi(); if(head==NULL) {head=p; tail=p;} else { p->next=head; head=p; } fflush(stdin); printf("input lagi="); pil=getchar(); }while(pil=='y'||pil=='Y'); } void cetak() { node *baca; baca=head; while(baca!=NULL) { printf("hasil = %d n",baca->data); baca=baca->next; } } void setelah() {int cari; alokasi(); fflush(stdin); printf("data mau disisipkan dimana = ");
  • 3. Created by: achmad sayfudin (www.sayfudinblogz.blogspot.com) scanf("%d",&cari); after=head; while(after->data!=cari) { if(after->next==NULL) {printf("data tak ketemu"); exit(1);} else after=after->next; } p->next=after->next; after->next=p; } void sebelum() { char pil; before=head; do{ printf("sisipkan dimana > "); scanf("%d",&sisip); if(head->data==sisip) {awal();} Else { alokasi(); while(before->data!=sisip) { prevbefore = before; if(before->next == NULL) { printf("Nilai %d tdk ada dlm listn", x); exit(1);} else before = before->next; } p->next = before; prevbefore->next = p; } printf("sisip lagi > "); fflush(stdin); pil=getchar(); } while(pil=='y'||pil=='Y'); } void akhir() { char jawab; do{ alokasi(); if(head == NULL) { //list msh kosong head = p; //data baru mjd data pertama tail = p; //sekaligus data terakhir } else { tail->next = p; //arahkan tail->next ke data baru tail = tail->next; //update posisi tail
  • 4. Created by: achmad sayfudin (www.sayfudinblogz.blogspot.com) } fflush(stdin); printf("masih ada data lagi = "); jawab=getchar(); }while(jawab=='y'||jawab=='Y'); } HASIL PROGRAM #Tampilan Awal. # Sisip di Awal
  • 5. Created by: achmad sayfudin (www.sayfudinblogz.blogspot.com) Hasilnya Inputan lagi di awal angka 1 Inputan sebelum angka 5sebelum angka 3 dan inputan angka 2 setelah angka 3
  • 6. Created by: achmad sayfudin (www.sayfudinblogz.blogspot.com) Input setelah 5angka 4 dan inputan di akhir setelah angka 1. Input di akhir
  • 7. Created by: achmad sayfudin (www.sayfudinblogz.blogspot.com) Skema program insert diatas. Insert dari awal sampai akhir. 1 3 1 5 5 5 5 3 3 2 4 4 1 3 3 1 2 2 1 1 0
  • 8. Created by: achmad sayfudin (www.sayfudinblogz.blogspot.com) URAIAN FUNGSI INSERT DARI HEAD p head 1 tail 2 3 INSERT SETELAH DATA TERTENTU head after 1 2 tail 3 88 p INSERT SEBELUM DATA TERTENTU head 1 prevbefore 2 88 tail 3 before 99 p INSERT DARI TAIL head 1 2 88 p tail 4 4 99 5 3
  • 9. Created by: achmad sayfudin (www.sayfudinblogz.blogspot.com) Analisa program Sebelum membuat linked list single list yaitu: a. Siapkan data dan alokasikan memory b. Tentukan dan cari posisi c. Hubungkan antara node atau simpul. Node berisi 2 data yaitu : a. Data b. Data pointer untuk menyimpan alamat node lain yang di tuju. c. Karena data berupa homogeny maka gunakan tipe data buatan struct Pemrograman mengunakan struktur data linked list mempunyai banyak kelebihan yaitu: 1. Data yang dinamis ukuran data dan isi bisa kita ubah sesuka programmer 2. Kemudahan bekerja dengan pointer daripada tipedata primitive karena pointer menyimpan alamat memori yang dituju bukan isi suatu variable. Kekurangan: 1. Hanya dapat membaca data satu arah saja dari depan kebelakang INTINYA LAST IN FIRST OUT seperti tipe data stact. 2. Memori tersusun secara tak teratur 3. Eksekusi lambat berbeda dengan tipe array agak cepat.