Sabtu, 01 Maret 2014

Pointer, Array, and Introduction to Data structure

Array.
   
   Merupakan suatu variabel, terdiri dari sekumpulan data yang memiliki tipe data yang sama. Setiap data di dalam array disimpan dalam alamat memori yang berbeda, dan disebut sebagai Elemen Array. Karena Elemen Array memiliki nilai dan alamat memori yang berbeda, maka tiap Elemen Array diberi nama Nilai Indeks dalam bentuk angka, sesuai dengan urutan datanya.
Dalam beberapa bahasa pemograman, seperti C, C++, Nilai Indeks dimulai dari angka 0. Untuk bahasa pemograman seperti Pascal, Nilai Indeks yang digunakan dimulai dari angka 1. Secara garis besar, menentukan jumah Array yang ingin disiapkan dideklarasi dengan menggunakan bracket ( [] ).
   Jumlah Array dapat kita tentukan sendiri dengan mengisi jumlah yang kita inginkan.
Misalnya int a[5], artinya kita menyiapkan 5 Elemen Array saja, tidak kurang tidak lebih, tidak dapat diubah lagi kecuali kita mengganti angka '5' di dalam bracket tersebut. tetapi ada juga yang seperti :
int a [] ={1,2,3,4}. Arti dari bracket yg kosong tersebut adalah kita menyiapkan Array sebanyak jumlah dari data di dalam kurung kurawal ( {} ), yang tiap datanya dibatasi oleh tanda koma ( , ).

   Dalam penggunaannya, kita dapat menginisialisasikan sendiri isi dari Array, bisa juga menginput datanya,atau bahkan dapat menetapkan nilai tersebut.
Beberapa operasi yang dapat dilakukan menggunakan Array :
1. Tranvesal.
2. Insertion.
3.Searching.
4.Deletion.
5.Merging.
6.Sorting.

   Dengan demikian, dapat disimpulkan juga penggunaan Array sangat penting, jika kita ingin 'bermain-main' dengan sejumlah data.


  Jenis-jenis Array :

1. Array 1 Dimensi
      Seperti namanya, hanya memiliki 1 Dimensi saja. 

      -Syntax :
           tipe_data nama_array [jumlah_elemen];

          contoh:
               int umur [10];
               int nilaimahasiswatetanggasebelah [500];

          cara mengaksesnya :
               umur [4]= 17;  //umur Nilai Indeks ke-4 adalah 17.

2. Array 2 Dimensi
      Sedikit berbeda, Array ini memiliki 2 Dimensi. Untuk mempermudah pemahaman, anggaplah 1 Dimensi mewakilkan Elemen Baris, dan 1 Dimensi lainnya mewakilkan Elemen Kolom. Bayangkan terciptanya sebuah tabel. Total jumlah dari Elemen yang ada adalah Baris x Kolom.

      -Syntax :
           tipe_data nama_array [jumlah_elemen_Baris] [jumlah_elemen_Kolom];

          contoh:
               int X [10] [20];

          cara mengaksesnya :
               X [4][16]= 123;  //Isi tabel X pada baris 4 kolom 16 Nilai adalah 123.

3. Array Multidimensi
      Memiliki banyak Dimensi. Bayangkanlah sebuah kotak, di dalam kotak tersebut tersedia tempat untuk beberapa kotak, dan setiap kotak tersebut memiliki kotak-kotak lagi di dalamnya. Penggambarannya sedikit sulit, tetapi semakin sering anda menggunakannya semakin baik pua pemahaman anda.
      Syntax, dan cara mengaksesnya kurang lebih sama dengan Array 2 Dimensi, hanya lebih banyak bracket ( [] ), sesuai dengan jumlah Dimensi yang diinginkan.  



Pointer.

   Berbeda dari variabel biasa, Pointer merupakan variabel yang berisikan alamat memori sebagai nilainya. Jadi isi nilai pointer adalah alamat dari variabel yang mempunyai nilai tertentu. 
Sebuah gambaran mengenai pointer :
(& adalah alamat, * adalah isi. )

int pointer=6;   //int pointer adalah 6.
int *pointer2 = &pointer; //isi dari int pointer2 adalah alamat dari int pointer, yang nilainya 6.
int *pointer2=6; //isi dari int pointer2 adalah 6.


Struktur Data.

   Adalah penyusunan, penempatan, pengaturan data atau penstrukturan data.
Contoh penstrukturan data :
     1. Array




          Seperti yang sudah dijelaskan di atas, Array merupakan suatu contoh dari Struktur Data. Penyimpanan data oleh Array hanya bisa dilakukan dengan kumpulan dari tipe data yang sama.



     2. Linked List


          Adalah koleksi data yang tersusun secara linear. Penyisipan dan pemindahan data dapat dilakukan di semua tempat dalam sebuah Link List. Pada gambar disamping, Data ( angka 2 )terletak di sebuah lokasi memori yang disebut node/simpul. Setiap node tersebut memiliki pointer ke node berikutnya, sehingga tercipta sebuah garis dengan satu arah yang dinamakan Single Link List. Double Link List adalah ketika node memiliki 2 arah berlainan ( bolak-balik ).


     3.Queues


          Adalah antrian. Artinya yang pertama datang adalah yang pertama keluar. Prinsip ini sering disebut sebagai FIFO ( First In First Out ).
Pada gambar disamping Enqueue adalah memasukkan suatu Elemen kedalam antrian, dan Dequeque adalah mengeluarkan suatu Elemen keluar antrian.
Hanya ada 1 pintu masuk dan pintu keluar, jadi Queues membutuhkan variabel head and tail.


     4. Stacks


 
          Menggunakan prinsip LIFO ( Last In First Out ). Penambahan dan pengurangan data selalu dilakukan di top, yaitu bagian teratas suatu Stack. Bottom adalah bagian terbawah dari suatu stack.




     5. Binary Trees





          Merupakan suatu pohon yang setiap node/simpulnya paling banyak memiliki 2 cabang anak. Secara umum anak setiap node dibedakan menjadi kiri dan kanan.





     6. Hash Table

   


  Digunakan dalam penyimpanan data sementara.Tujuan penggunaannya adalah untuk mempercepat pencarian kembali dari banyaknya data yang disimpan.





Tipe Data.

   Merupakan jenis data yang dapat diolah komputer untuk melakukan suatu jenis operasi, ataupun memenuhi kebutuhan suatu objek dalam pemograman komputer.

Contoh Tipe data pada bahasa C :
Void, Int, Long, Short, Char, Float, Bool, etc


Absctract Data Type.

   Atau ADT, adalah koleksi data dan operasi yang dapat digunakan untuk memanipulasi data tersebut. Dalam bahasa C++, ADT dapat dibuat dalam sebuah class. Class di C++, merupakan pengembangan dari struct bahasa C.

Contoh ADT dibagi menjadi 2 :
Built-in : Boolean, Integer, Array, dll
User-Defined : Stacks,Queues,dll


Struktur.

   Struktur dalam pemograman adalah kumpulan tipe-tipe data yang ditetapkan oleh pengguna, dikumpulkan dan dikemas kedalam suatu paket. Berbeda dengan Array, Struktur mengalokasikan memori dinamis, dan cara mengakses data dari suatu Struktur adalah menggunakan titik ( . ).

Contoh struktur :

struct Pendidikan
{
char tingkat[10];
char sekolah[100];
};


Untuk Nested Structure, sama seperti struktur pada umumnya, hanya saja mereka memiliki struktur lagi, didalamnya.
Contoh Nested Structure :

struct Pendidikan
{
char tingkat[10];
char sekolah[100];
};
struct data
{
char kode[10];
char nama[100];
int index;
Pendidikan pencapaian[4];
};
 siswa data[50];

Contoh Akses menggunakan titik ( . ) :
siswa[0].kode= 007;
siswa[1].pencapaian.sekolah='Maju Lagi';


Memory Allocation.

   Disingkat menjadi Malloc, merupakan fungsi standart untuk pengalokasian memori. Dibagi menjadi 2:
Dynamic : Memori yang dialokasi dapat berubah
Static      : Memori yang dialokasi tidak dapat berubah



Giga Dharmawan Goeij
1701327806
42PFT



www.binus.ac.id  ||  www.skyconnectiva.com

Tidak ada komentar:

Posting Komentar