Pendahuluan Data Structure Dan Linked-List
Hallo sobat programmer, Salam Biner hahaha, hari ini kita akan membahas sedikit tentang Data-Structure dan Link-List serta hubungan antara keduanya, semoga postingan mimin kali ini dapat membatu sobat programmer menjadi lebih memahami konsep dasar dari Data-Struture dan Link-List, disimak yah sob.
Bab 1
Dengan kita mengerti konsep dasar struktur data, kita akan dimudahkan dalam praktik rekayasa software engineering dan pemrograman, konsep array, stack, queue, graph, dan trees nantinya nih, bagi kalian yang kuliah di jurusan Computer Since, data struktur juga merupakan salah satu persyaratan yang harus kita kuasai sebelum kita mengenal yang namanya Object Oriented Programming (OOP) yang dimana system yang akan dibuat nantinya sangat erat sekali berhubungan dengan data struktur, namun tenang saja sob, kita tidak akan bahas OOP sekarang kok hehe.
Beberapa contoh yang meliputi tipe-tipe struktur data, diantaranya adalah:
- Arrays
- Linked-Lists
- Queues
- Stacks
- Binary trees
- Hash tables
Data-Structure pada Array, penjelasan singkat:
- Array bersifat homogen yang artinya tipe data pada suatu array harus sejenis, dan index pada array dimulai dari 0.
- Array juga memiliki bentuk lain, seperti: 2 Dimensi dan Mullti Dimensi
Selain itu ada beberapa pendapat lain :
Variabel array dideklarasikan dengan mencantumkan tipe dan nama variable yang diikuti dengan banyaknya lokasi memori yang ingin dibuat. Jadi jika ditanya untuk batas array batas array hanya ada ketika kita memberi batasan untuk inputan array tersebut. Namun untuk batasan array itu sendiri tidak terbatas sampai perintah array itu memenuhi alokasi memori maksimal.
Berikut refrensi yang mimin ambil pada ketentuan JDK java, bahwa batas array tergantung pada requirement memorinya, kalau bawaan dari java sendiri seperti ini.
Mungkin kita dapat mengatakan bahwa maksimum “aman ” pada array adalah 2 147 483 639( Integer.MAX_VALUE – 8 ) jika mengalokasikan array lebih besar dapat mengakibatkan OutOfMemoryError ” .
Jika sobat sekalian punya jawaban atau saran untuk ini silahkan komentar perihal bahasan diatas yh
Contoh array:
- Syntax : Type Name[Size].
- Note : Size pada array N-1 yh sob.
- 1 Dimensi :
int arr[5];
Accessing :
arr[0] = 1;
arr[1] = 2;
arr[2] = 3;
arr[3] = 4;
arr[4] = 5;- 2 Dimensi :
Declaration :
int arr[5][5];
Accessing :
arr[0][4] = 1;
arr[1][3] = 2;
arr[2][2] = 3;
arr[3][1] = 4;
arr[4][0] = 5;
Data-Structure pada Linked-List, penjelasan singkat:
- Sebuah struktur data yang sangat dinamis dimana elemen dapat ditambahkan atau dihapus dari mana saja sesuka hati.
- Setiap elemen disebut node.
- Heterogen
Pada Linked-List terdapat sebuah pointer yang menjadikan Linked-List begitu dinamis.
Pointer umumnya memiliki 2 oprator yang dapat digunakan:
- & : yang merujuk pada alamat data itu berada
- * : yang merujuk pada nilai data itu sendiri
Pada dasarnya Link-List dibuat memang begitu dinamis, sehingga struktur data dapat dibuat demikian mudahnya, seperti contohnya seorang mahasiswa tidak mungkin hanya memiliki tipe data berupa ineteger saja.
Data-Structure pada Queue, penjelasan singkat:
- First In First Out
- Element yang ada didepan disebut front dan element yang ada di belakang disebut rear/back
Data-Structure pada Stact, penjelasan singkat:
Data-Structure pada Binary Tree, penjelasan singkat:
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.
Contohnya:
objects : an integer x
functions :
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
Bab 2
Linked list adalah struktur data yang terdiri dari urutan data record sehingga masing-masing record ada field yang berisi referensi ke record berikutnya dalam urutan.
Bentuk Structur Linked-List saat di deklarasikan :
Declaration :
struct mahasiswa{
char nama[100];
int nim;
float score;
};
mahasiswa mimin; (mimin sekarang sudah jadi mahasiswa)
mahasiswa arr[100]; (mahasiswa dapat membuat variable seperti "mimin" hingga 100)
Declaration :
struct mahasiswa{
char nama[100];
int nim;
float score;
}mimin, sobat;
mahasiswa mimin sudah langsung dideclarasikan.
Bentuk Structur Linked-List saat di assign :
Assignment :
mimin.nim = 1701357885;
strcpy(mimin.nama , "alfred");
mimin.score=85;
Bentuk Structur Linked-List saat di nested :
struct profile{
struct mahasiswa mimin;
char grade;
};
Agar lebih optimal dalam passing data kita memerlukan yang namanya Memory Allocation Dynamic (Malloc) agar tidak banyak data yang terbuang saat passing data.
contohnya :
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);
Sekian dulu dari mimin semoga penjelasan singkat ini bisa menambah pengetahuan bagi sobat programmer yang ingin lebih mendalami ilmunya dan bagi yang memiliki penjelasanyang lebih ditail atau jika ada yang mau mengkoreksi, silakan tulis di kolom komentar, terima kasih, salam biner.
Nama : Alfred Noble Effendi
Nim : 1701357885
Class : CA01




Komentar
Posting Komentar