#include <iostream> #include <stdlib.h> using namespace std; struct Data { int nilai; Data *next; }; Data *head; void awal(){ head=NULL; } bool isEmpty(){ if (head==NULL) return true; return false; } void tambahDataDepan(int dataBaru) { Data *baru; baru=(Data*) malloc(sizeof(Data)); baru->nilai=dataBaru; baru->next=baru; if (isEmpty()){ head=baru; head->next=head; } else { Data *bantu; bantu=head; while (bantu->next!=head){ bantu=bantu->next; } baru->next=head; head=baru; bantu->next=head; } } void tambahDataBelakang(int dataBaru){ Data *baru; baru=(Data*) malloc(sizeof(Data)); baru->nilai=dataBaru; baru->next=baru; if (isEmpty()){ head=baru; head->next=head; } else { Data *bantu; bantu=head; while (bantu->next!=head){ bantu=bantu->next; } bantu->next=baru; baru->next=head; //head=baru; //bantu->next=baru; } } void hapusDepan(){ if(!isEmpty()){ int tmp; if(head->next!=head){ Data *hapus; hapus=head; tmp=head->nilai; Data *bantu; bantu=head; while (bantu->next!=head){ bantu=bantu->next; } bantu->next=head->next; head=head->next; delete hapus; } else { tmp=head->nilai; awal(); } cout<<tmp<<" dihapus"<<endl; } else { cout<<"Data kosong\n"; } } void hapusBelakang(){ Data *hapus,*bantu; int tmp; if (!isEmpty()){ hapus=head; if (head->next==head) { tmp=head->nilai; head=NULL; } else { bantu=head; while (bantu->next->next!=head){ bantu=bantu->next; } hapus=bantu->next; bantu->next=head; tmp=hapus->nilai; delete hapus; } cout<<tmp<<" dihapus"<<endl; } else cout<<"data kosong\n"; } void cetak(){ if (!isEmpty()){ Data *bantu; bantu=head; do { cout<<bantu->nilai<<" "; bantu=bantu->next; } while(bantu!=head); cout<<endl; } } int panjang(){ int count=0; if(!isEmpty()) { count=1; Data *bantu; bantu=head; if(bantu->next==head) { count=1; } else { do { count++; bantu=bantu->next; }while(bantu->next!=head); } } else { count=0; } return count; } void swapElement(Data *a, Data *b){ Data *tmp; tmp=a; a=b; b=tmp; } int main(){ awal(); tambahDataBelakang(5); tambahDataDepan(7); tambahDataBelakang(17); tambahDataBelakang(1); tambahDataBelakang(27); tambahDataBelakang(10); hapusDepan(); hapusBelakang(); cetak(); swapElement(head, head->next); cetak(); cout<<endl<<panjang(); return 0; }
Tuesday, October 9, 2012
Single Linked List Non Circular example (Continue)
Tugas: SLLC Insertion sort
(kelompok)
1. Buatlah penyisipan node setelah atau sebelum data tertentu.
2. Proses sorting dengan metode insertion sort menggunakan SLLC
data masuk 6
6
data masuk 7
6 7
data masuk 10
6 7 10
data masuk 2
2 6 7 10
data masuk 8
2 6 7 8 10 (menyisipkan)
Sunday, October 7, 2012
Frustasi: Komen bloggger hilang (belum ketemu obatnya)
Sampai sekarng pun walupun sudah ganti template tetap aja belum nongol kotak komentarnya. Duh... siapa yang bisa bantu ini...?? tolong yang punya solusi kirim email ke didikunila[at]yahoo.com
Ini ngetik sambil berharap ketika di publish komentar di blog ini nongol kembali.....
Friday, October 5, 2012
J2ME: Program Agen Pulsa 0.0.1 (#1)
import javax.microedition.midlet.*; import javax.microedition.lcdui.*; /** * @author Didik Kurniawan * Jurusan Ilmu Komputer FMIPA Universitas Lampung */ public class AgenPulsa extends MIDlet implements CommandListener{ List namaOperator; List telkomsel, indosat,xl,three; Display display; Command ok =new Command("OK",Command.OK,0); Command exit =new Command("Exit",Command.EXIT,0); Command kembali =new Command("Back",Command.BACK,0); Command kirim = new Command("Kirim",Command.OK,0); Form form=new Form("No Tujuan"); TextField noTujuan=new TextField(null,null,32,TextField.PHONENUMBER); public AgenPulsa(){ namaOperator=new List("Operator",List.IMPLICIT); namaOperator.append("Telkomsel", null); namaOperator.append("Indosat", null); namaOperator.append("XL", null); namaOperator.append("Three", null); namaOperator.addCommand(ok); namaOperator.addCommand(exit); namaOperator.setCommandListener(this); telkomsel=new List("Telkomsel",List.IMPLICIT); telkomsel.append("5K",null); telkomsel.append("10K",null); telkomsel.append("20K",null); telkomsel.append("25K",null); telkomsel.append("50K",null); telkomsel.append("100K",null); telkomsel.addCommand(ok); telkomsel.addCommand(exit); telkomsel.addCommand(kembali); telkomsel.setCommandListener(this); indosat=new List("Indosat",List.IMPLICIT); indosat.append("2K",null); indosat.append("5K",null); indosat.append("10K",null); indosat.append("25K",null); indosat.append("50K",null); indosat.append("100K",null); indosat.addCommand(ok); indosat.addCommand(exit); indosat.addCommand(kembali); indosat.setCommandListener(this); xl=new List("XL",List.IMPLICIT); xl.append("1K",null); xl.append("5K",null); xl.append("10K",null); xl.append("25K",null); xl.append("50K",null); xl.append("100K",null); xl.addCommand(ok); xl.addCommand(exit); xl.addCommand(kembali); xl.setCommandListener(this); three=new List("Three",List.IMPLICIT); three.append("1K",null); three.append("2K",null); three.append("3K",null); three.append("4K",null); three.append("5K",null); three.append("10K",null); three.append("20K",null); three.append("30K",null); three.append("50K",null); three.append("100K",null); three.addCommand(ok); three.addCommand(exit); three.addCommand(kembali); three.setCommandListener(this); form.append("Isi Pulsa"); form.append(noTujuan); form.addCommand(ok); form.addCommand(kembali); form.addCommand(kirim); form.addCommand(exit); form.setCommandListener(this); } public void startApp() { if (display==null){ display=Display.getDisplay(this); display.setCurrent(namaOperator); } } public void pauseApp() { } public void destroyApp(boolean unconditional) { } public void commandAction(Command c, Displayable d ){ if (c==exit) { destroyApp(true); notifyDestroyed(); } else if(c==ok && d==namaOperator){ if (namaOperator.getSelectedIndex()==0) { display.setCurrent(telkomsel); } else if (namaOperator.getSelectedIndex()==1){ display.setCurrent(indosat); } else if (namaOperator.getSelectedIndex()==2){ display.setCurrent(xl); } else if (namaOperator.getSelectedIndex()==3){ display.setCurrent(three); } } else if(c==kembali && (d==telkomsel || d==indosat || d==xl || d==three)){ display.setCurrent(namaOperator); } else if(c==kembali && d==form){ display.setCurrent(namaOperator); } else if (c==ok && (d==telkomsel || d==indosat || d==xl || d==three)){ display.setCurrent(form); } } }
Thursday, October 4, 2012
Struktur Data: Single Linked List Non Circular (Final Version) Example
/* @author: Didik Kurniawan **** Ilmu Komputer FMIPA Universitas Lampung ***** */ #include <iostream> #include <stdlib.h> #include <string.h> using namespace std; struct produk { int kode; char nama_produk[100]; produk *next; }; produk *head; void awal(){ head=NULL; } bool isEmpty(){ if (head==NULL) return true; return false; } void tambahDataDepan(int kode, char nama_produk[100]){ produk *baru; baru= (produk*) malloc (sizeof(produk)); baru->kode=kode; strcpy(baru->nama_produk,nama_produk); baru->next=NULL; if (isEmpty()){ head=baru; } else { baru->next=head; head=baru; } } void tambahDataBelakang(int kode, char nama_produk[100]){ produk *baru; produk *bantu; baru= (produk*) malloc (sizeof(produk)); baru->kode=kode; strcpy(baru->nama_produk,nama_produk); baru->next=NULL; if (isEmpty()){ head=baru; } else { bantu=head; while(bantu->next!=NULL){ bantu=bantu->next; } bantu->next=baru; } } void hapusDepan(){ if (!isEmpty()){ produk *hapus; hapus=head; if (head->next!=NULL){ head=head->next; delete hapus; } else { head=NULL; } } else { cout<<"Data masih kosong"; } } void hapusBelakang(){ if (!isEmpty()){ produk *hapus; if (head->next!=NULL){ produk *bantu; while(bantu->next->next!=NULL){ bantu=bantu->next; } hapus=bantu->next; bantu->next=NULL; delete hapus; } else { head=NULL; } } else { cout<<"Data masih kosong"; } } void cetak(){ if (!isEmpty()){ produk *bantu; bantu=head; while(bantu!=NULL){ cout<<bantu->kode<<"\t"<<bantu->nama_produk<<"\n"; bantu=bantu->next; } } else{ cout<<"Data masih kosong"; } } int main(){ awal(); tambahDataDepan(1,"Netbook Asus eeepc 1215"); tambahDataBelakang(2,"Netbook Asus eeepc 1210"); tambahDataDepan(3,"Netbook Asus eeepc 1010"); tambahDataBelakang(4,"Printer Canon Pixma MP 258"); hapusBelakang(); hapusDepan(); cetak(); return 0; }
Tuesday, October 2, 2012
Sytruktur Data: SIngle Linked List Circular
#include <iostream> #include <stdlib.h> using namespace std; struct Data { int nilai; Data *next; }; Data *head; void awal(){ head=NULL; } bool isEmpty(){ if (head==NULL) return true; return false; } void tambahDataDepan(int dataBaru) { Data *baru; baru=(Data*) malloc(sizeof(Data)); baru->nilai=dataBaru; baru->next=baru; if (isEmpty()){ head=baru; head->next=head; } else { Data *bantu; bantu=head; while (bantu->next!=head){ bantu=bantu->next; } baru->next=head; head=baru; bantu->next=head; } } void tambahDataBelakang(int dataBaru){ Data *baru; baru=(Data*) malloc(sizeof(Data)); baru->nilai=dataBaru; baru->next=baru; if (isEmpty()){ head=baru; head->next=head; } else { Data *bantu; bantu=head; while (bantu->next!=head){ bantu=bantu->next; } bantu->next=baru; baru->next=head; //head=baru; //bantu->next=baru; } } void hapusDepan(){ if(!isEmpty()){ if(head->next!=head){ Data *hapus; hapus=head; Data *bantu; bantu=head; while (bantu->next!=head){ bantu=bantu->next; } bantu->next=head->next; head=head->next; delete hapus; } else { awal(); } } } void hapusBelakang(){/* tambah kode program di sini.... */ } void cetak(){ if (!isEmpty()){ Data *bantu; bantu=head; do { cout<<bantu->nilai<<" "; bantu=bantu->next; } while(bantu!=head); } } int main(){ awal(); tambahDataBelakang(5); tambahDataDepan(7); tambahDataBelakang(17); hapusDepan(); hapusDepan(); cetak(); return 0; }
Monday, October 1, 2012
Tugas Struktur Data SLLNC
tugas Struktur Data
Sub pokok bahasan: Single linked non circular
Pada pertemuan terakhir sudah dibahas konsep linked list non circular untuk penambahan data dari depan. Dengan konsep ini setiap data yang masuk akan berada diposisi depan dari data sebelumnya dan data terakhir yang masuk akan menjadi head dr linked list.
Tugas anda sekarang memodifikasi linked list sebelumnya sehingga data yang baru masuk selalu menjadi data diposisi terakhir, Anda boleh menggunakan variabel baru untuk mengidentifikasi data terakhir (misal: tail) atau cukup dengan variabel bantu untuk mencari elemen terakhir dari linked list (untuk SLLNC node terakhir memiliki nilai null untuk element pointer next) lalu arahkan elemen next ke data baru. Program yang dibuat jg harus dapat menampilkan isi linked list.
skema prosesnya sbb:
1. data msh kosong
null
2. masuk data 10
-------
| 10 |: --> null
-------
3. masuk data 20
------- -------
| 10 | --> | 20 | --> null
------- -------
4. dan seterusnya
1. Tugas kelompok (max 3 org tdk boleh 1)
2. Dokumen tugas:
- file cpp program c++ untuk menyelesaikan masalah.
- file ppt berupa penjelasan proses pd program
3. file dicetak dan file dikirim ke email: didikunila@gmail.com dengan subject: Tugas Struktur SLLNC
4. Deadline tugas hari Selasa 2 Okt 2012 pkl 11:30