Pertemuan 1 - Pointer, Array, Data Structure
Pointer,
Array and
Introduction to Data Structure
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]
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
Posting Komentar