Pada hari ini saya
merangkum tentang materi Array, Pointer, Types of Data Structures, Abstract
Data Type.
Array
Array adalah kumpulan
data yang mempunyai tipe data yang sama (homogen). Elemen” pada array disimpan
dalam memori dengan lokasi yang berurutan dan direferensikan sebagai indeks. Indeks
array dimulai dari 0. Array mempunyai 2 tipe yaitu single dimensional array dan
multiple dimensional array.
• One Dimensional Array
int angka[5] = { 1, 4, 6, 8, 10};
jika dipanggil
angka[1] = 4
Ingat indeks array dimulai dari 0
maka angka[0] = 1.
jika dipanggil
angka[1] = 4
Ingat indeks array dimulai dari 0
maka angka[0] = 1.
___________________________________________________________________________
• Multi Dimensional
Array
int tabel[2][2] = {1, 2};
{3, 4};
maksud [2][2] disini sama kayak baris dan kolom.
{3, 4};
maksud [2][2] disini sama kayak baris dan kolom.
Storing Array Values
Ada 3 step dalam
menyimpan nilai pada array :
1. Menginisialisasi
element”.
2. Masukan nilai pada
element.
3. Menetapkan nilai pada
element.
Example:
•
Initialization of Arrays
Example: int marks[5] = {90, 82, 78, 95, 88};
•
Inputting Values
Example: int i, marks[10];
for
(i=0; i<10; i++)
scanf(“%d”,
&marks[i]);
•
Assigning Values
Example: int i, arr1[10], arr2[10];
for(i=0;
i<10; i++)
arr2[i]
= arr1[i];
Operations in Array
•
Traversal adalah
proses mengolah seluruh elemen secara sistematik.
•
Insertion adalah
proses menyisipkan (menambahkan) element pada indeks yang dituju.
•
Searching adalah
proses pencarian suatu nilai di array.
•
Deletion adalah proses
menghapus element pada indeks yang dituju.
•
Merging adalah
proses
•
Sorting adalah
proses mengurutkan data pada element di array
Pointer
Pointer adalah variable
yang digunakan sebagai penunjuk alamat dalam memori. Dengan arti lain pointer
berisi alamat dari variable yang dituju.
Ada 2 operator penting
yang digunakan pointer :
•
& = operator alamat
•
* = operator yang mengakses nilai secara langsung
yang terdapat dalam variable berpointer.
Example :
Kita deklarasi dulu :
int x;
int *px;
x tipe datanya integer
dan pointer px juga integer,jika:
px = &x;
maka &x mengambil alamat dari si x dan menetapkan sebagai nilai si px.
Untuk menetapkan nilai si x kita bisa buat :
x = 10;
atau
*px = 10;
Data Structure
Sturktur data adalah
susunan data baik dalam memori computer maupun dalam disk. Struktur data
mempunyai beberapa tipe yaitu arrays, linked lists, queues, stacks, binary
tress, hash tables.
Type
of Data Structure
1.
Arrays
Array adalah kumpulan data yang mempunyai tipe data
yang sama (homogen).
Contohnya ada di line atas.
2.
Linked Lists
Linked lists adalah struktur
data yang sangat dinamis yang dimana element dapat ditambahkan ke atau dihapus
dari mana saja sesuka hati. Dan setiap element disebut sebagai node.
3. Queues
Queue adalah unsur yang pertama masuk itulah yang bakal keluar pertama (seperti system ngantri).
Queue adalah unsur yang pertama masuk itulah yang bakal keluar pertama (seperti system ngantri).
4. Stacks
Stack adalah unsur yang terakhir diletakin itulah yang keluar pertama (seperti shuttlecock yang berada di dalam tabungnya pasti kita mengambilnya dari yang paling terakhir karena tempat mengambilnya cuman ada 1). Setiap stack memiliki variable top yang terkait dengannya.
5. Binary Tress
Binary Tress adalah struktur
data yang didefinisikan sebagai kumpulan element yang disebut node. Setiap node
berisi pointer kiri, pointer kanan, dan element data.
Abstract Data Type
Tipe data abstrak adalah model matematika yang merujuk pada sejumlah
bentuk struktur data yang memiliki kegunaan atau perilaku yang serupa.
Di C/C++ terdapat class
dan struct yang membantu programmer dalam mengimplementasikan tipe data abstrak.
Example :
Kita ingin membuat ADT
bilangan natural yang memiliki bilangan bulat sebagai objek dan beberapa fungsi
sebagai operasi.
structure Number
is
objects : an integer x
functions :
bool is_zero() if ( x == 0 ) return
TRUE else return FALSE
bool equal(y) if ( x == y ) return
TRUE else return FALSE
void set(y) x = y
void add(y) x = x + y
int get () return x
Pertanyaan dari Ko Dosen:
1. Berapa batasan maksimal dimensi array?
Jawaban:
Batasan array itu tergantung dari program compiler yang menyediakan batasan alokasi memori.
Dari sisi lain juga tergantung dari kita yang menginput berapa banyak dimensi dari array
tersebut. Jadi kitalah yang membatasi inputan array tersebut sampai memenuhi alokasi memori.
2. Beda single pointer dengan double pointer?
Jawaban:
Misal:
#include<stdio.h>
int main(){
int x = 50;
int *x1;
int **x2;
x1=&x;
x2=&x1;
printf("%d\n",x);
printf("%d\n",*x1);
printf("%d",**x2);
getchar();
return 0;
}
Hasil output
50
50
50
Jadi maskud single pointer itu adalah dia langsung menuju ke alamat variabel yang dituju
(*x1 ==> x1 = &x ==> x = 50) sedangkan double pointer itu adalah dia menuju ke alamat
variabel yang dituju tetapi dalam alamat tersebut masih terdapat alamat variabel lain,
sehingga bisa diistilahkan pointer to pointer (**x2 ==> x2 = &x1 ==> x1 = &x ==> x = 50).
3. Berapa batas jumlah maksimal * pointer?
Jawaban:
Saya mencoba memberi * sebanyak 5(*****x2) dari contoh program di atas,maka yang terjadi
adalah error,jadi bisa disimpulkan batasan maksimal * pointer tu adalah 4(****x2).
Komentar
Posting Komentar