Wednesday, October 5, 2011

Mengisikan Data dari notepad ke Link List dengan C++

Hallow blogger...
Masih mendalami link list nech,,,
Ada tambahan yaitu membuka file notepad, kemudian file dari notepad tersebut dimasukkan ke link list yang sudah dibuat, jadi kita membuat data di notepad kemudian dapat ditampilkan di program yang sudah dibuat, berikut adalah penjelasan sintaks yang sudah saya bikin sebelumnya...

char buf[30]; //dklarasi buf sebagai variabel global
struct smpn     // pembuatan structbernama smpn yang berisi 2 field
{ char name[30]; //nama dibatasi sampai 20 karakter
  char txt [30];   // deklarasi txt dngn jumlah karakter 30
  smpn *ljt ;    //field ljt yang berisi pointer bertipe smpn
};

ini adalah syntaks untuk pertama kali kita membuat sebuah node, asumsikan sebagai orang yang sedang bermain kereta api, orang dibelakang akan selalu memegang rekan yang ada di depannya dengan tangannya dan dalam program ini tangan kita buat dengan pointer (*ljt).
kemudian kita deklarasikan beberapa pointer yang ber tipe smpn. Variabel tersebut kita gunakan sebagai pembentukan awal dari linked list. Lalu berikan nilai awal NULL pada pointer tersebut,
berikut sintaks nya
smpn *mlai_ptr = NULL; // membuat alamat memori 0000
smpn *pndah;     
Kemudian kita mulai mengisikan data ke node yang sudah kita buat berikut syntaks untuk menambah kan data dan juga membuat node baru berikut nya:
//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;                     //simpan ke memori Fr variabel nama
   strcpy (Fr->txt, buf);               //kopi data buf ke txt
   Fr->ljt = NULL;                      //node berikutnya di set NULL
   if (mlai_ptr == NULL) //jika pointer mulai = NULL 
   { mlai_ptr = Fr;  // transfer data yang ada di Fr ke memori mlai_ptr
   pndah = mlai_ptr; // transfer alamat mlai_ptr ke pndah
}        //Penambahan elemen dibelakang node
else                    
{    Fr1 = mlai_ptr;         // transfer alamat mlai_ptr ke Fr1
// Data tidak sama dengan NULL berarti data tidak kosong
    while (Fr1->ljt != NULL) //lakukan perulangan Jika node tidak sama dengan 0
{    Fr1 = Fr1->ljt;         //transfer alamt memori Fr1->ljt ke Fr1, berfungsi untuk insert node baru
// Pindah ke link berikutnya
}
     Fr1->ljt = Fr  ;  //transfer alamat Fr1->ljt ke Fr
     }
     }
source code di atas sudah saya berikan fungsi dari masing-masing line , kemudian setelah kita buat code untuk menambahkan data, sekarang kita tampilkan data yang sudah dimasukkan di link list, berikut syntaks nya
//Untuk menampilkan data yang sudah dimasukkan
{ smpn *Fr;         // smpn sbgai struct Fr adalah pointer
Fr = mlai_ptr;      //transfer memori dari Fr ke mlai_ptr
cout << endl;
if (Fr == NULL) //jika dimemori/data kosong maka
cout << "kosong\n"; //tampilkan ke layar kalw datanya kosong
else
{ while (Fr != NULL)              //lakukan pengulangan jika memori tidak kosong
{ //Menampilkan rincian data yang disimpan
        cout << "Nama: "<<Fr->name<<"|";  // tampilkan nama kelayar
        cout << Fr->txt;                //Menampilkan data di notepad            
   if (Fr == pndah)                     
   cout << "< data";                    //menampilkan data yang ditunjuk
   cout <<endl;
   Fr = Fr->ljt;                        //transfer memori dari Fr ke Fr->ljt
}
    cout <<"Daftar data terakhir\n\n" ;     //tampilkan jika posisi penunjuk ada di data terakhir
}
}

dari source code diatas kita bisa tampilkan data yang sudah dimasukkan ke node, sekarang kita buat code untuk membuka file yang kita buat di notepad yang nantinya dimasukkan ke list, silahkan perhatikan code yang ada pada penambahan data disana ada syntax strcpy(Fr->txt, buf) berfungsi untuk mengisi memori Fr pada variabel txt dengan data dari buf, data dari buf berasal dari notepad, berikut source codenya:
// Untuk membuka data di notepad
   {
    FILE * pFile;           //Struct File dan pFile sebagai pointer
      //char buf[ 200 ];
      pFile = fopen ("Data.txt","r");    //membuka notepad dengan nama file Data
      cout<<"========================\n\n";
   // if (mlai_ptr == NULL){
     //cout<<"apa";
     if  (pFile!=NULL)         //jika memori pFile tidak sama dengan NULL
  { 
    //fputs ("fopen example",pFile);
      while( !feof( pFile )){  // maka lakukan pengulangan jika pFile tidak kosong
      fgets( buf, 200, pFile );
     // printf( "%s", buf );
    //  cout<<endl;      
    }
      list_data();          //menampilkan data yang ada di list data
      fclose (pFile);
    }
     // return 0; 
}

perhatikan syntax di atas pada pFile = fopen ("Data.txt","r"), maksudnya kita buat file dengan nama Data.txt, jadi nama file yang kita harus sama dengan syntax pada C++ nya, dengan notepad kemudian kita isi data apa saja pada notepad, contoh disi dengan Fahrudin, atau apa aja kemudian save ,Fahrudin akan ditampilkan dilayar, bersama dengan data yang diketik dari program.
Ada sepotong cerita yang menggambarkan tentang linked list yang saya baca, ceritanya tentang Jono yang menemukan teko ajaib, kemudian setelah digosok-gosok ternyata teko tersebut mengeluarkan mbah jin, dan jin dapat mengabulkan dua keinginan jono, "apa permintaan pertama mu!" kata jin, jono meminta mobil lamborgini keluaran terbaru, permintaan jono pun langsung jatuh dari langit, "apa permintaan ke dua mu!" kata jin, jono menjawab "Permintaan kedua saya adalah saya ingin dua permintaan lagi", jadi dari cerita singkat tersebut dapat kita sambungkan dengan linked list, yaitu keinginan tidak akan pernah berhenti sebelum jono inginkan, karena setiap keinginan kedua jono meminta untuk memiliki dua keinginan lagi, begitu halnya dengan konsep linked list, akan terus bertambah sesuai keinginan user atau memori komputernya sudah penuh, karena setiap sampai ke node terakhir kita buat kembali ke node pengalokasian memori lagi begitu seterusnya.
Demikian tentang linked list yang dapat saya posting, kurang lebihnya saya mohon maaf, jika masih kurang,, silahkan download source code lengkapnya, Download
Salam sepuluh ribu jam untuk jadi Expert,,,,,,, ^_^

No comments :

Post a Comment