Upcoming SlideShare
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Standard text messaging rates apply

# Queue laporan

131

Published on

ini merupakan buku laporan algoritma queue

ini merupakan buku laporan algoritma queue

Published in: Education
0 Likes
Statistics
Notes
• Full Name
Comment goes here.

Are you sure you want to Yes No
• Be the first to comment

• Be the first to like this

Views
Total Views
131
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
3
0
Likes
0
Embeds 0
No embeds

No notes for slide

### Transcript

• 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.