Pointer, Array and Introduction to Data Structure-fernando-2101637812
Pointer, Array and
Introduction to Data Structure
• Array Review
• Pointer Review
• Types of Data Structures
• Abstract Data Type
1.
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), floating point (angka berkoma), long(angka yang memiliki kapasitas diatas integer - 2^32), dan double (angka berkoma yang memiliki kapasitas yang lebih besar dari floating point).
Array disimpan dalam memori yang statis, artinya alokasi memori dilakukan saat deklarasi sebuah array. Array sendiri dapat diakses lewat indexnya. Indexnya dimulai dari 0, bukan 1.
Array dapat berupa array 1-dimensi, array 2-dimensi, array 3-dimensi, hingga array n-dimensi.
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]
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
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), floating point (angka berkoma), long(angka yang memiliki kapasitas diatas integer - 2^32), dan double (angka berkoma yang memiliki kapasitas yang lebih besar dari floating point).
Array disimpan dalam memori yang statis, artinya alokasi memori dilakukan saat deklarasi sebuah array. Array sendiri dapat diakses lewat indexnya. Indexnya dimulai dari 0, bukan 1.
Array dapat berupa array 1-dimensi, array 2-dimensi, array 3-dimensi, hingga array n-dimensi.
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]
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
Dalam array sendiri mempunyai isi
maksimal pada angka 2 147 483 639(
Integer.MAX_VALUE – 8 ) jika mengalokasikan array lebih besar dapat
mengakibatkan OutOfMemoryError ”
2. Pointer
Pointer adalah tipe data yang memiliki nilai yang menunjuk kepada nilai lain yang disimpan dalam memori komputer, dengan menunjuk pada alamat nilai lain tersebut dalam memori.
Operator yang digunakan antara lain,
1. *, untuk mendefinisikan pointer (deklarasi)
2. &, opeator alamat
contoh: int x;
int *px;
px=&x; (nilai px akan sama dengan x)
3. Struktur Data
Struktur data adalah pengaturan data , baik di memori komputer atau di memori lainnya. Contoh struktur data antara lain:
1. Array.
2. Linked List
3. Queues
4. Stack
5. Binary Trees
6. Hash Tables
Kita akan mengupasnya satu demi satu :)
Array adalah kumpulan dari data yang homogen dan memiliki tipe data yang sama. Penjelasan lebih lanjut dapat kamu dapatkan di bagian atas :)
Linked list, adalah struktur data yang sangat dinamis, dimana elemen dapat ditambahkan dan dihapus dari mana saja sesuai keinginan. Tiap elemen disebut dengan node.
Queue adalah struktur data yang memiliki konsep seperti antrian, dimana data yang pertama kali masuk adalah yang pertama keluar (First In First Out). Contohnya adalah seperti antrian di kasir supermarket, dimana yang pertama mengantre sudah pasti yang pertama keluar. Bagian awal antrian disebut head, sedangkan bagian belakang antrian disebut rear.
Stack, adalah struktur data yang berkebalikan dengan queue dimana stack memiliki konsep LIFO (Last in first out) dan FILO (first in last out). Stack dapat direpresentasikan sebagai array linear. Contohnya adalah tumpukan piring, dimana kita mengambil tumpukan yang paling atas, bukan yang paling bawah untuk menghidari piring pecah.
Binary tree adalah struktur data yang didefinisikan sebagai kumpulan elemen yang disebut node. Tiap node berisi pointer kiri, pointer kanan, dan isi elemen.
4. Abstract Data Types
Abstract data types adalah tipe data yang dibuat oleh user sendiri, dimana dapat didefinisikan sebagai model matematika dari objek data yang menyempurnakan tipe data dengan cara mengaitkannya dengan fungsi-fungsi yang beroprasi pada data yang bersangkutan. Abstract data type disingkat ADT.
ADT di C, disebut struct, sedangkan ADT di c++ disebut class.
5. Introduction To Linked List
A. Structure
Structure adalah tipe data abstrak yang dapat dibuat oleh user. Structure dapat menyimpan informasi dan tipe data yang berbeda (heterogen), dibawah satu nama struct.
Contoh deklarasi struct:
struct tdata {
int age;
char name[100];
float score;
};
void main (){
tdata x;
//gunakan . (dot) untuk mengakses x.
x.age = 17;
strcpy(x.name, “andi”);
x.score = 82.5
}
Nested structure adalah struct didalam struct. Contoh:
struct profile {
int age;
char name[100];
};
struct student {
struct profile p;
int score;
char grade;
};
student x;
x.score = 92;
x.grade = ‘A’;
x.p.age = 20;
strcpy(x.p.name, "Budi");
Array of Struct adalah penggunaan array didalam struct. Contoh:
struct profile {
int age;
char name[100];
};
struct student {
struct profile p;
int score;
char grade;
};
student arr[10];
arr[0].score = 92;
arr[0].grade = ‘A’;
arr[0].p.age = 20;
strcpy(arr[0].p.name,”budi”);
arr[1].score = 83;
arr[1].grade = ‘b’;
arr[1].p.age = 19;
strcpy(arr[1].p.name,”chandra”);
B. Memory Allocation
Memory allocation pada linked list adalah alokasi memori secara dinamis. Pada C atau C++, kita dapat menggunakan malloc untuk mengalokasikan memori dan free untuk dealokasi memori.
Cara alokasi memori adalah sebagai berikut:
int *px = (int *) malloc(sizeof(int));
char *pc = (char *) malloc(sizeof(char));
*px = 205;
*pc = ‘A’;
printf( “%d %c\n”, *px, *pc );
free(px);
free(pc);
C. Linked List
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.
Linked list dibagai 3, yaitu:
1. Single linked list, yaitu linked list yang hanya dapat maju dari head ke tail.
2. Double linked list, yaitu linked list yang dapat maju (next) dan mundur (prev).
3. Multiple linked list, yaitu linked list yang memiliki penunjuk arah lebih dari dua.
Linked list VS array (Perbedaan Linked list dan array)
Array:
1. Koleksi linear dari elemen data.
2. Menyimpan memori berurutan.
3. Bisa diakses dari mana saja(lewat index).
Linked list:
1. Koleksi linear dari nodes.
2. Data disimpan di memori dengan tidak berurut
3. Hanya dapat diakses secara berurutan.
2. Pointer
Pointer adalah tipe data yang memiliki nilai yang menunjuk kepada nilai lain yang disimpan dalam memori komputer, dengan menunjuk pada alamat nilai lain tersebut dalam memori.
Operator yang digunakan antara lain,
1. *, untuk mendefinisikan pointer (deklarasi)
2. &, opeator alamat
contoh: int x;
int *px;
px=&x; (nilai px akan sama dengan x)
3. Struktur Data
Struktur data adalah pengaturan data , baik di memori komputer atau di memori lainnya. Contoh struktur data antara lain:
1. Array.
2. Linked List
3. Queues
4. Stack
5. Binary Trees
6. Hash Tables
Kita akan mengupasnya satu demi satu :)
Array adalah kumpulan dari data yang homogen dan memiliki tipe data yang sama. Penjelasan lebih lanjut dapat kamu dapatkan di bagian atas :)
Linked list, adalah struktur data yang sangat dinamis, dimana elemen dapat ditambahkan dan dihapus dari mana saja sesuai keinginan. Tiap elemen disebut dengan node.
Queue adalah struktur data yang memiliki konsep seperti antrian, dimana data yang pertama kali masuk adalah yang pertama keluar (First In First Out). Contohnya adalah seperti antrian di kasir supermarket, dimana yang pertama mengantre sudah pasti yang pertama keluar. Bagian awal antrian disebut head, sedangkan bagian belakang antrian disebut rear.
Stack, adalah struktur data yang berkebalikan dengan queue dimana stack memiliki konsep LIFO (Last in first out) dan FILO (first in last out). Stack dapat direpresentasikan sebagai array linear. Contohnya adalah tumpukan piring, dimana kita mengambil tumpukan yang paling atas, bukan yang paling bawah untuk menghidari piring pecah.
Binary tree adalah struktur data yang didefinisikan sebagai kumpulan elemen yang disebut node. Tiap node berisi pointer kiri, pointer kanan, dan isi elemen.
4. Abstract Data Types
Abstract data types adalah tipe data yang dibuat oleh user sendiri, dimana dapat didefinisikan sebagai model matematika dari objek data yang menyempurnakan tipe data dengan cara mengaitkannya dengan fungsi-fungsi yang beroprasi pada data yang bersangkutan. Abstract data type disingkat ADT.
ADT di C, disebut struct, sedangkan ADT di c++ disebut class.
5. Introduction To Linked List
A. Structure
Structure adalah tipe data abstrak yang dapat dibuat oleh user. Structure dapat menyimpan informasi dan tipe data yang berbeda (heterogen), dibawah satu nama struct.
Contoh deklarasi struct:
struct tdata {
int age;
char name[100];
float score;
};
void main (){
tdata x;
//gunakan . (dot) untuk mengakses x.
x.age = 17;
strcpy(x.name, “andi”);
x.score = 82.5
}
Nested structure adalah struct didalam struct. Contoh:
struct profile {
int age;
char name[100];
};
struct student {
struct profile p;
int score;
char grade;
};
student x;
x.score = 92;
x.grade = ‘A’;
x.p.age = 20;
strcpy(x.p.name, "Budi");
Array of Struct adalah penggunaan array didalam struct. Contoh:
struct profile {
int age;
char name[100];
};
struct student {
struct profile p;
int score;
char grade;
};
student arr[10];
arr[0].score = 92;
arr[0].grade = ‘A’;
arr[0].p.age = 20;
strcpy(arr[0].p.name,”budi”);
arr[1].score = 83;
arr[1].grade = ‘b’;
arr[1].p.age = 19;
strcpy(arr[1].p.name,”chandra”);
B. Memory Allocation
Memory allocation pada linked list adalah alokasi memori secara dinamis. Pada C atau C++, kita dapat menggunakan malloc untuk mengalokasikan memori dan free untuk dealokasi memori.
Cara alokasi memori adalah sebagai berikut:
int *px = (int *) malloc(sizeof(int));
char *pc = (char *) malloc(sizeof(char));
*px = 205;
*pc = ‘A’;
printf( “%d %c\n”, *px, *pc );
free(px);
free(pc);
C. Linked List
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.
Linked list dibagai 3, yaitu:
1. Single linked list, yaitu linked list yang hanya dapat maju dari head ke tail.
2. Double linked list, yaitu linked list yang dapat maju (next) dan mundur (prev).
3. Multiple linked list, yaitu linked list yang memiliki penunjuk arah lebih dari dua.
Linked list VS array (Perbedaan Linked list dan array)
Array:
1. Koleksi linear dari elemen data.
2. Menyimpan memori berurutan.
3. Bisa diakses dari mana saja(lewat index).
Linked list:
1. Koleksi linear dari nodes.
2. Data disimpan di memori dengan tidak berurut
3. Hanya dapat diakses secara berurutan.
Komentar
Posting Komentar