Kamis, 16 Agustus 2012

LINKED LIST

Pada bab sebelumnya telah dijelaskan mengenai variabel array yang bersifat statis (ukuran dan urutannya sudah pasti). Selain itu, ruang memori yang dipakai olehnya tidak dapat dihapus bila array tersebut sudah tidak digunakan lagi pada saat program dijalankan. Untuk memecahkan masalah di atas, kita dapat menggunakan variabel pointer. Tipe data pointer bersifat dinamis, variabel akan dialokasikan hanya pada saat dibutuhkan dan sesudah tidak dibutuhkan dapat direlokasikan kembali. Setiap ingin menambahkan data, Anda selalu menggunakan variabel pointer yang baru, akibatnya Anda akan membutuhkan banyak sekali pointer. Oleh karena itu, ada baiknya jika Anda hanya menggunakan satu variabel pointer saja untuk menyimpan banyak data dengan metode yang kita sebut Linked List. Linked list adalah sekumpulan elemen bertipe sama, yang mempunyai keterurutan tertentu, yang setiap elemennya terdiri dari dua bagian.

Bentuk Umum:
                        typedef struct telmtlist
                         {
                              infotype info;
                              address next;
                         }elmtlist;

infotype >> sebuah tipe terdefinisi yang menyimpan informasi sebuah elemen list
next      >> address dari elemen berikutnya (suksesor)

Jika L adalah list, dan P adalah address, maka alamat elemen pertama list L dapat diacu
dengan notasi :

                                    first (L)
Sebelum digunakan harus dideklarasikan terlebih dahulu :
                                       #define first (L)    (L)
Elemen yang diacu oleh P dapat dikonsultasi informasinya dengan notasi :
            info (P)      deklarasi             #define info (P)    (P) -> info
            next(P)      deklarasi             #define next(P)    (P) -> next


Beberapa Definisi :
     1. List l adalah list kosong, jika First(L) = Nil
     2. Elemen terakhir dikenali, dengan salah satu cara adalah karena
                   Next(Last) = Nil
Nil adalah pengganti Null, perubahan ini dituliskan dengan                    #define Nil Null



Pembuatan Single Linked List dapat menggunakan 2 metode:
             · LIFO (Last In First Out), aplikasinya : Stack (Tumpukan)
             · FIFO (First In First Out), aplikasinya : Queue (Antrean)

LIFO ( Last In First Out)
Lifo adalah suatu metode pembuatan Linked List di mana data yang masuk paling akhir adalah data yang keluar paling awal. Hal ini dapat dianalogikan (dalam kehidupan sehari-hari) dengan saat Anda menumpuk barang seperti digambarkan dibawah ini. Pembuatan sebuah simpul dalam suatu linked list seperti digambarkan dibawah ini. Jika linked list dibuat dengan metode LIFO, terjadi penambahan / Insert simpul di
belakang, dikenal dengan istilah INSERT.


FIFO (Fisrt In Fisrt Out)
FIFO adalah suatu metode pembuatan Linked List di mana data yang masuk paling awal adalah data yang keluar paling awal juga. Hal ini dapat di analogikan (dalam kehidupan sehari-hari), misalnya saat sekelompok orang yang datang (ENQUEUE) mengantri hendak membeli tiket di loket. Jika linked list dibuat dengan metode FIFO, terjadi penambahan / Insert simpul didepan.


Double Linked List
Salah satu kelemahan single linked list adalah pointer (penunjuk) hanya dapat bergerak satu arah saja, maju/ mundur, atau kanan/kiri sehingga pencarian data pada single linked list hanya dapat bergerak dalam satu arah saja. Untuk mengatasi kelemahan tersebut, anda dapat menggunakan metode double linked list. Linked list ini dikenal dengan nama Linked list berpointer Ganda atau Double Linked List.

Circular Double Linked List
Ini adalah double linked list yang simpul terakhirnya menunjuk ke simpul terakhirnya menunjuk ke simpul awalnya menunjuk ke simpul akhir sehingga membentuk suatu lingkaran.

Operasi-Operasi yang ada pada Linked List:
Insert Istilah Insert berarti menambahkan sebuah simpul baru ke dalam suatu linked list.
IsEmpty Fungsi ini menentukan apakah linked list kosong atau tidak.
Find First Fungsi ini mencari elemen pertama dari linked list
Find Next Fungsi ini mencari elemen sesudah elemen yang ditunjuk now.

Retrieve Fungsi ini mengambil elemen yang ditunjuk oleh now. Elemen tersebut lalu
dikembalikan oleh fungsi.
Update Fungsi ini mengubah elemen yang ditunjuk oleh now dengan isi dari sesuatu.
Delete Now Fungsi ini menghapus elemen yang ditunjuk oleh now. Jika yang dihapus adalah
elemen pertama dari linked list (head), head akan berpindah ke elemen berikut.
Delete Head Fungsi ini menghapus elemen yang ditunjuk head. Head berpindah ke elemen
sesudahnya.
Clear Fungsi ini menghapus linked list yang sudah ada. Fungsi ini wajib dilakukan bila anda
ingin mengakhiri program yang menggunakan linked list. Jika anda melakukannya,
data-data yang dialokasikan ke memori pada program sebelumnya akan tetap tertinggal
di dalam memori.







Rabu, 15 Agustus 2012

STRUCTURE

Structure (struktur) adalah kumpulan elemen-elemen data yang digabungkan menjadi satu kesatuan. Masing-masing elemen data tersebut dikenal dengan sebutan field. Field data tersebut dapat memiliki tipe data yang sama ataupun berbeda. Walaupun field-field tersebut berada dalam satu kesatuan, masing-masing field tersebut tetap dapat diakses secara individual.

Field-field tersebut digabungkan menjadi satu dengan tujuan untuk kemudahan dalam operasinya. Misalnya Anda ingin mencatat data-data mahasiswa dan pelajar dalam sebuah program, Untuk membedakannya Anda dapat membuat sebuah record mahasiswa yang terdiri dari field nim, nama, alamat dan ipk serta sebuah record pelajar yang terdiri dari field-field nama, nonurut, alamat dan jumnilai. Dengan demikian akan lebih mudah untuk membedakan keduanya.

   Bentuk Umum:
                                 struct namastruct;
                                 {
                                        <tipe data field1;
                                        <tipe data field2;
                                        <tipe data field3;
                                 };
 Contoh:
                                struct mahasiswa;
                                 {
                                       char nim[11];
                                       char nama[30];
                                       char alamat[100];
                                       float ipk;
                                  };

Untuk menggunakan struktur, tulis nama struktur beserta dengan fieldnya yang dipisahkan dengan tanda titik (“ . “). Misalnya Anda ingin menulis nim seorang mahasiswa ke layar maka penulisan yang benar adalah sebagai berikut:
                                                         cout<<mahasiswa.nim;

Jika Pmhs adalah pointer bertipe mahasiswa* maka field dari Pmhs dapat diakses dengan mengganti tanda titik dengan tanda panah (“ -> “).
                                                         cout<<mahasiswa->nim;

Contoh program:
  1.    /* Mengisi Biodata dan Nilai IP mahasiswa */
          #include<iostream.h>
             struct mahasiswa
        {
            char nim[11];
            char nama[30];
            char alamat[100];
            fload ipk;
        };
                void main ( )
        {
               mahasiswa mhs;
               cout<<"nim                          : " cin.getline(mhs.nim,11);
               cout<<"nama                       : " cin.getline(mhs.nama,30);
               cout<<"alamat                     : " cin.getline(mhs.alamat,100);
               cout<<"nilai IP                  : " cin>>mhs.ipk;
         
               cout<<endl;
     
                 cout<<"nim anda                          : "<<mhs.nim<<endl;
                 cout<<"nama anda                       : " <<mhs.nama<<endl;
                 cout<<"alamat anda                     : " <<mhs.alamat<<endl;
                 cout<<"nilai IP anda                  : "<<mhs.ipk<<endl;

output:
            NIM          : 11370339
            Nama        : Dessy Andika
           Alamat        : Lubuk pakam
           IP               : 3,66

                 NIM anda          :  11370339
                 Nama anda        :   Dessy Andika
                 Alamat anda       :  Lubuk pakam
                 IPanda               :   3,6         
        


Selasa, 14 Agustus 2012

ARRAY


Array adalah suatu struktur yang terdiri dari sejumlah elemen yang memiliki tipe data yang sama. Elemen-elemen array tersusun secara sekuensial dalam memori komputer. Array dapat berupa satu dimensi, dua dimensi, tiga dimensi ataupun banyak dimensi (multi dimensi).

Array Satu Dimensi

Array Satu dimensi tidak lain adalah kumpulan elemen-elemen identik yang tersusun
dalam satu baris. Elemen-elemen tersebut memiliki tipe data yang sama, tetapi isi dari
elemen tersebut boleh berbeda.

Elemen ke-      0      1        2        3        4       5      6       7      8     9
Nilai               23     34     32      12      25     14     23    12    11    10



Bentuk umum:
<tipe data> NamaArray[n] = {elemen0, elemen1, elemen2,.....,n};
n = jumlah elemen

Array Dua Dimensi

Array dua dimensi sering digambarkan sebagai sebuah matriks, merupakan perluasan dari array satu dimensi. Jika array satu dimensi hanya terdiri dari sebuah baris dan beberapa kolom elemen, maka array dua dimensi terdiri dari beberapa baris dan beberapa kolom elemen yang bertipe sama sehingga dapat digambarkan sebagai berikut:

      0       1       2       3       4       5       6
0   10     21     23     43     45     78     65
1   45     43     65     12     21     12     21
2   32     34     23     56     54     34     45
3   11     12     32     23     56     76     45


Bentuk umum:
<tipe data> NamaArray [m][n];    Atau
<tipe data> NamaArray [m][n] = { {a,b,..z},{1,2,...,n-1} };


Contoh:
double matrix[4][4];
bool papan[2][2] = { {true,false},{true,false} };

Pendeklarasian array dua dimensi hampir sama dengan pendeklarasian array satu dimensi, kecuali bahwa array dua dimensi terdapat dua jumlah elemen yang terdapat di dalam kurung siku dan keduanya boleh tidak sama. Elemen array dua dimensi diakses dengan menuliskan kedua indeks elemennya dalam kurung siku seperti pada contoh berikut:

//papan nama memiliki 2 baris dan 5 kolom 
bool papan[2][5];

papan[0][0] = true;
papan[0][4] = false;
papan[1][2] = true;
papan[1][4] = false;







Senin, 13 Agustus 2012

POINTER

Pointer merupakan tipe data berukuran 32 bit yang berisi satu nilai yang berpadanan dengan alamat memori tertentu. Sebagai contoh, sebuah variabel P bertipe pointer bernilai 0x0041FF2A, berarti P menunjuk pada alamat memori 0041FF2A. Pointer dideklarasikan seperti variabel biasa dengan menambahkan tanda * (asterik) yang mengawali nama variabel.

Bentuk Umum:
<tipe data> namaVariabel;

Contoh:
float * px;


Statement di atas mendeklarasikan variabel px yang merupakan pointer. Penyebutan tipe data float berarti bahwa alamat memori yang ditunjuk oleh px dimaksudkan untuk berisi data bertipe float.

contoh:
#include <iostream.h>
void main ( )
{
    char *nama;

     nama = "Dessy Andika";
     cout<<"Selamat datang" <<nama<<endl;

Outpu:
                     Selamat datang Dessy Andika

Minggu, 12 Agustus 2012

Pacar Anti Photo Box

Dari judulnya pasti udah taukan apa isi dari blog ini. yupsss gue akan nulis cerita tentang pacar gue yang anti banget sama photo box dan sebagainya. oke begini ceritanya (ngedongeng gue ceritanya).
Gue kan termasuk cewek yang demen banget yang nama'a foto, banyak yang bilang gue ini photogenic (astaga jahat banget yang bilang seperti itu *netesairmatanya* jahat jahat jahat dech ciiinnnn....). tapi masih tetep manis kok aslinya *ingat ya manis* #ciihhhh. langsung ke judul>>>>>>

Pacar gue itu orangnya super duper malas kalau di foto maupun di ajak foto, di SmartPhonenya aja semua Foto gue. kebayangkan gak sih loe *FOTO GUE* dan dia selalu aja ngenes kalau gue pegang Handphonenya di pake buat Foto. geleng-geleng macam berdzikir gitu lah, hha. tapi ya gue maklum, dulu aja waktu masih awal kenal ya agak aneh gitu. setiap gue tanya alasannya kenapa, pasti jawabnya "Jangan, nanti kalau banyak yang suka gimana!!" itu lah *narsis banget + PeDean*. pokonya sebel kalau udah bahas itu. di SmartPhone gue aja Foto pacar itu bisa dihitung. tapi ya tetep gue sayang donk ya. lebih Esseeehhh Nemu langsung daripada just Picture. hhhaaa

Kemaren gue habis Buka bersama bareng temen di Waroeng Steak SM.RAJA. ceritanya Tripledate gitu, hha so sweet dech pokoknya. *buatyangjombloMAAFYA* setelah batalin puasa kita bingung mau kemana, secara rumahnya pada di ujung semua, alhasil pacar temen ngajak ke Thamrin Plaza (salah satu Mall di Medan) katanya lagi ada Diskon besar-besaran. Tadinya pacar novi nggak mau ikut, (astaga, cowoknya gak asyik banget. dari awal buka puasa sampai pulang pun dieemmmm aja. tetep hargai donk ya) tapi akhirnya mau juga. sesampainya disana langsung deh naik lift ke lantai 6 tujuan sararan utama. ternyata benar diskonnya gileee bener. setelah selesai pilih-pilih baju dan jalan sama pasangan masing-masing. tepat di samping matahari ada toko kecil taukah apa?? yeahhh PHOTOBOX. 

awalnya gue bujuk-bujuk dia "Kita Fotoan yuk yankkk??", lagi-lagi jawabannya NO. sampek tarik-tarikan pun tetep aja nggak mau. udah ngerengek-rengek pun tetep gak mau, OMG pacarkuuuuuuuuuu (*ketepaaaakk* eits gak denkkkk, mana berani gue gilak). karena nunggu si Tini masih bayar belanjaan dia, dan nunggunya pas di depan PHOTOBOX itu (sumpah, mata gue kesitu aja) alhasil gue masuk dan gue gandengin pacar, kena ghab sama si mbak dan horeeeeeee akhirnya Mister anti PhotoBox mau, karena kasihan lihat gue. (ya gpp lah ya. yang penting dia mau). kita Fotoan berdua, Fasilitasnya gak asyik banget, mana gak ada accesoris'a lagi, huuhhh!!! bener-bener seperti foto pake HandPhone doank lalu di cetak. (astaga kok gue jadi nyesel ya!!. nggakkk nyesel nggak nyesel) Tiga x gaya yang itu-itu aja. karena tempatnya sempit banget, huuh!! tapi gue tetep senang. karena berhasil buat dia masuk di box itu. dan rencana gue selanjutnya engingeng...........

nantikan apa selanjutnya.
Hasil PhotoBoxnya


-DK-

Sabtu, 11 Agustus 2012

FIRST TO POST

Belakangan sering lihat blog orang-orang dan sambil ngebatin "kapan ya gue ngeblog seperti mereka!! (dengan muka pengen)" yeah, dan sekarang gue ngecoba untuk ngeblog seperti mereka. walaupun gue tidak sekreatif senior-senior yang sudah update terlebih dahulu. gpp lah ya kalau blog ini isinya keasyik gue semata *pasangmukamanis*. karena gue masih belajar mencari jati diri gue seperti apa (pohon jati x ya!!! ckckck). keseringan plagiat sama kepribadian orang lain jadi yah gini. tapi tetep I love my self now. gue mulai sadar kalau menjadi orang lain itu nggak enak banget, kesannya banker kibul diri sendiri. *eitsss itu dulu waktu msh ababil*

Dan alasan gue nulis blog ini, gue hanya ingin berbagi cerita kepada kamu kamu kamu yang sedang baca blog gue (siapa tau kan!!! ngarep ngarep guenya) haaaaa. Terserah lah ya, gue sih sik asik sik asik kenal dirimu (waduh!! kok jadi ayu tinting huweweweaaaa) maksud gue, ya kalau loe mau baca monggo silahkan, kalau tidak cukup arahka kursor ke lambang panah merah alias close :P.
Ya segini aja dulu ya isi pertama ngeblog'a, jujur gue bingung mau nulis apa. ntar makin negaltur makin garing (padahal udah gariing ya kan !! hha) yang jelas sesempatnya gue akan isi blog ini everyday. itu yang harus gue ingat "everyday ngepost blog" heahaaaa...

OKey salam kenal dari gue yang termanis :* (cium bibil)

-DK-