Pertemuan 1 - Pointer, Array, Data Structure

Pointer, Array and
Introduction to Data Structure



ARRAY

Array adalah kumpulan elemen data yang sama, dimana data tersebut memiliki tipe data yang sama (homogen). Tipe data tersebut dapat berupa integer(angka), char(karakter), float (angka berkoma). Array adalah sekumpulan variable yang bertipe data sama yang dibedakan oleh indeks. Suatu Array mempunyai jumlah komponen yang banyaknya tetap. Banyaknya komponen dalam suatu larik ditunjukan oleh suatu indek untuk membedakan variabel yang satu dengan variabel yang lainnya. Dalam bahasa C, index dari array dimulai dengan 0 (zero).

Array dapat berupa array 1-dimensi, array 2-dimensi, array 3-dimensi, hingga array n-dimensi. 


Bentuk Umum pendeklarasian array : Tipe-Data Nama_Variabel[Ukuran];
Contoh penulisannya : int IPK[5];


Deklarasi sebuah array dapat dilakukan dengan cara sebagai berikut:

Array 1 Dimensi: tipe nama[ukuran], contoh: int arr[10]
Array 2 Dimensi: tipe nama[ukuran1][ukuran2], contoh: int arr[10][10]
Array 3 Dimensi: tipe nama[ukuran1][ukuran2][ukuran3], contoh: int arr[10][10][10]

Arr[0][2] = 2; ini maksudnya adalah baris ke 0 kolom ke 2.

Index array sendiri dimulai dari 0 hingga ukuran-1. Misalnya int arr[10], maka akan memiliki index dari 0 hingga 9. Index juga berarti array memesan tempat di memori sejumlah index tersebut. Misalnya int arr [10] akan memesan sepuluh tempat di memori.


 Cara menyimpan nilai dalam array :

1. Inisialisasi elemen terlebih dahulu.
2. Menginput nilai dari eleme tersebut (user defined).
3. Mendefinisikan nilai dari array terlebih dahulu.


Operasi yang dapat dilakukan di Array antara lain:

1. Traversal
2. Insertion
3. Searching
4. Deletion
5. Merging
6. Sorting




POINTER

Pointer (variabel penunjuk) adalah suatu variabel yang berisi alamat memori dari suatu variabel lain. Alamat ini merupakan lokasi dari obyek lain (biasanya variabel lain) di dalam memori.

Operator Pointer ada dua, yaitu :
  •        Operator & = Operator & menghasilkan alamat dari operandnya.
  •        Operator  * = Operator * menghasilkan nilai yang berada pada sebuah alamat.


Deklarasi Pointer :

Seperti halnya variabel yang lain, variabel pointer juga harus dideklarasikan terlebih dahulu sebelum digunakan.
Bentuk Umum: Tipe_data *nama_pointer;
Contoh :
int a  = 10;
int *p = &a;
printf( “%d\n”, *p );


STRUKTUR DATA

Struktur data adalah susunan data, baik di memori komputer atau memori lainnya. Beberapa contoh umum dari struktur data meliputi:
       Arrays
       Linked lists
       Queues
       Stacks
       Binary trees
       Hash tables

Berikut adalah penjelasan dari struktur data diatas :
·       Array

ü  Set item data yang disusun secara baik menjadi rangkaian dan diacu atau ditunjuk oleh satu identifier
ü  Contoh : Nilai = (56 42 89 65 48)
ü  Item data individual dalam array bisa ditunjuk secara terpisah dengan menyatakan posisinya dalam array itu
§  Nilai(1) menunjuk 56
§  Nilai(2) menunjuk 42
ü  Bilangan yang ditulis dalam tanda kurung menandakan posisi item individual dalam array (disebut juga subscript / indeks)
ü  Klasifikasi Array
§  Array 1 dimensi
§  Array multi dimensi
ü  Mempunyai elemen-elemen yang disusun ke dalam baris dan kolom dan digunakan sebagai tabel data


·       Linked Lists

ü  Linked list adalah struktur data yang terdiri dari data record terurut, dimana setiap record memiliki field yang berisi reference ke record berikutnya secara berurutan. Bagian depan linked list disebut head, sedangkan bagian belakang atau akhir disebut tail. Tiap nodes(bagian linked list) menunjuk ke alamat data selanjutnya, sedangkan yang terakhir menunjuk ke NULL atau 0. 
ü  Struktur data yang sangat dinamis dimana elemen dapat ditambahkan ke atau dihapus dari mana saja sesuka hati
ü  Setiap elemen disebut node


·       Queues

ü  struktur data yang memiliki konsep seperti antrian, dimana data yang pertama kali masuk adalah yang pertama keluar (First In First Out). Contohnya adalah seperti mengantri tiket bioskop, dimana yang pertama mengantri sudah pasti yang pertama keluar. Bagian awal antrian disebut front, sedangkan bagian belakang antrian disebut rear.

·        Stacks

ü  adalah struktur data yang memiliki konsep LIFO (Last in first out) dan FILO (first in last out). Stack dapat direpresentasikan sebagai array linear. Contohnya adalah tumpukan shuttlecock, dimana kita mengambil tumpukan yang paling atas, bukan yang paling bawah.


·       Binary Trees

ü  Struktur data yang didefinisikan sebagai kumpulan elemen yang disebut node
ü  Setiap node berisi pointer kiri, pointer kanan, dan elemen data
ü  Digunakan pada mata kuliah matematika diskrit
ü  Sering digunakan di multilevel



ABSTRACT DATA TYPE (ADT)

Abstract Data Type (ADT) adalah tipe data yang disusun sedemikian rupa sehingga spesifikasi objek dan spesifikasi operasi pada objek dipisahkan dari representasi objek dan pelaksanaan operasi.

C / C ++ memiliki konsep yang disebut class dan struct yang membantu programmer dalam mengimplementasikan tipe data abstrak.




 Pertanyaan:
1.    Berapa banyak maximal dimensi array?

2.    Berapa maximal * pointer?

3.    Apa bedanya single pointer dan double pointer?


Jawaban:
1.    Jawaban: 256 dimensi

2.    maximal 12 * pointer

3.   Contoh single : push(root,50);
Contoh double : push2(&root,50);
Jika dilihat dari code di atas, code double pointer terlihat lebih pendek karena dengan menggunakan double pointer, kita bisa melakukan passing by address. Sehingga ketika kita melakukan malloc atau memanggil new Node pada fungsi push2, maka root yang aslinya akan kena malloc juga. Berbeda dengan single pointer, jika kita melakukan node = newNode(a), maka root yang asli tidak akan ikut kena malloc, Karena ini merupakan passing by value.







                                                                                                                              Afrina Safira Dianirani
                                                                                                                             2101706772

Komentar

Postingan populer dari blog ini

Pertemuan 5 - Binary Search Tree