Hellow blogger..........
Posting ini saya akan coba membuat program Linked List yang sudah saya ada pada posting saya sebelumnya, untuk kali ini saya akan membuat programnya dengan Dev Cpp. Dalam program ini akan dibuat aplikasi untuk menyimpan data seseorang dengan format penyimpanan nama, tahun lulus, angkatan, profesi, dan no Hp, juga untuk menghapus data yang sudah disimpan. Jadi inilah keuntungan linked list yang bersifat dinamis, tidak seperti array yang bersifat statis, jadi kalau menggunakan Linked List ini programer akan dimudahkan ketika menyimpan data karena elemen yang disimpan pada memori tidak dibatasi tergantung dari kemampuan memori untuk menyimpan data, Linked List secara otomatis akan menambahkan alamat memori untuk menyimpan data, sistemnya berkesinambungan seperti rantai. Oke sekarang kita langsung ke contoh programnya ya, berikut sourcecode Untuk Linked List...
#include <iostream> using namespace std; struct smpn { char name[10]; //nama dibatasi sampai 20 karakter int thn_lls; // deklarasi thn_lls sbagai integer int angkt; // deklarasi angakatan sbagai integer char prof[15]; // prof dibatasi 15 karakter char no_hp[15]; // no_hp dibatasi 15 karakter smpn *ljt ;// dari struct ke pointer //semua data disimpan dalam alamat memori yang sama ljt }; smpn *mlai_ptr = NULL; // membuat alamat memori 0000 smpn *pndah; // mendeklarasikan pndah sbagai alamat memori int pilihan = 0; void tmbh_data() //fungsi untuk menambah data { smpn *Fr, *Fr1; // struck ke pointer-pointer Fr = new smpn; //pengalokasian memori dengan operator New cout << "\t Masukkan data!\n\a"; cout << "Masukkan nama : "; //memasukkan nama kemudian disimpan cin >> Fr->name; //menyimpan data ke variabel name yang disimpan dilamat memori Fr cout << "Tahun Lulus Kuliah : "; //memasukkan tahun lulus cin >> Fr->thn_lls; //menyimpan data ke variabel thn_lls yang disimpan dialamat memori Fr cout << "Angkatan berapa : ";//memasukkan angkatan cin >> Fr->angkt; //menyimpan ke variabel angkt yang disimpan di almat memori Fr cout << "Profesi Anda : "; cin >> Fr->prof; cout << "Nomer yang bisa dihub : "; cin>>Fr->no_hp; Fr->ljt = NULL; //membuat alamat memori kembali 0000 //mengatur link untuk ke simpul/node berikutnya if (mlai_ptr == NULL) //jika pointer mulai = NULL { mlai_ptr = Fr; pndah = mlai_ptr; } else { Fr1 = mlai_ptr; // Data tidak sama dengan NULL berarti data tidak kosong while (Fr1->ljt != NULL) //Jika tidak sama dengan 0 { Fr1 = Fr1->ljt; // Pindah ke link berikutnya } Fr1->ljt = Fr ; } } void list_data() { smpn *Fr; Fr = mlai_ptr; cout << endl; if (Fr == NULL) //jika dimemori/data kosong maka cout << "Tidak ada data yang disimpan\n"; else { while (Fr != NULL) { //Menampilkan rincian data yang disimpan cout << "Nama: "<<Fr->name<<", "; cout << "Tahun Lls: "<<Fr->thn_lls<<", "; cout << "Angkatan: "<<Fr->angkt<<", "; cout << "Profesi: "<<Fr->prof<<", "; cout << "No.HP : "<<Fr->no_hp; if (Fr == pndah) cout << "< data"; cout <<endl; Fr = Fr->ljt; } cout <<"Daftar data terakhir" << endl; } } void hapus_dta_awl()//untuk menghapus data/node pertama { smpn *Fr; Fr = mlai_ptr; mlai_ptr = mlai_ptr->ljt; delete Fr; } void hapus_dta_akr() //untuk menghapus data/node terakhir {smpn *Fr0, *Fr1; if (mlai_ptr == NULL) //mengecek apakah data kosong, kalo iya maka cout << "Daftar kosong/n"; //keluar jika data kosong else Fr0 = mlai_ptr; if (Fr0->ljt == NULL) {delete Fr0; //data dihapus mlai_ptr = NULL; //kembali ke NULL } else {while (Fr0->ljt != NULL)//while untuk pengulangan {Fr1 = Fr0; Fr0 = Fr0->ljt; } delete Fr0; Fr1->ljt = NULL; } } void pndah_brkt () //untuk memindahkan ke node berikutnya {if (pndah == NULL) cout <<"Kamu berada di baris terakir\n"; else pndah = pndah->ljt; } void move_kmbli() //untuk kembali ke node sebelumnya { if (pndah == mlai_ptr) cout <<"Kamu Berada didata awal\n"; else { smpn *sblm; sblm = mlai_ptr; while (sblm->ljt != pndah) { sblm = sblm->ljt; } pndah = sblm; } } int main() //fungsi utama { mlai_ptr = NULL; do //untuk mengulang instruksi pilihan { list_data(); cout << endl; cout << "Masukkan pilihanmu(ketik angka) : " << endl; cout << "0. Keluar dari program." << endl; cout << "1. Menambahkan node di daftar terkhir." << endl; cout << "2. Hapus data awal node." << endl; cout << "3. Hapus data terakhir pada node." << endl; cout << "4. Pindahkan pointer ke node berikutnya." << endl; cout << "5. Pindahkan pointer ke node sebelumnya." << endl; cout << endl << " kamu mau apa >> "; cin >> pilihan; switch (pilihan) {//membuat pilihan case 1 : tmbh_data(); break; //sesuai dengan baris program diatas yang menggunakan Void case 2 : hapus_dta_awl();break; case 3 : hapus_dta_akr(); break; case 4 : pndah_brkt();break; case 5 : move_kmbli(); } } while (pilihan != 0);//Lakukan pengulangan, pilihan tidak sama dengan 0 return 0; }Berikut adalah tampilan program setelah diCompile & Run:
Agar teman-teman lebih jelas silahkan bikin sendiri programnya,
Selamat belajar dan mencoba.....
Salam sepuluh ribu jam untuk jadi Expert... ^_^
5 comments :
ilmu yang bermanfaat gan.
ditunggu postingan terbarunya iy.
jangan lupa kunjungan balik di berbagi2-ilmu
tankz brow
ha panjang banget pusing dah.....
good code om
Ask: gan klo menambahnya secara otomatis bisa ga tanpa harus pilih tambah awal / akhir,
contoh khasus ketika input NIM degan inputan pertama 111 kemudian akan menginputkan 113 otomatis di akhir dan ketika input nim 112 maka akan menambah diantara 111 dan 113, terimakish sebelumnya, sukes buat blognya, :D
Post a Comment