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.