Selasa, 20 Februari 2018

[2018] 1 - Pointer, Array and Introcution to Data Stuctures and Introduction to Linked List - 2101673042 - Kevin Surya Pranata

KEVIN SURYA PRANATA
2101673042

Sebelumnya saya mengucapkan selamat datang ke blog saya, pada postingan kali ini kita akan membahas mengenai Array, Pointer, Data Stucture, dan Linked List

Seperti yang pernah kita semua pelajari di kelas Algo pada semester satu, Array  adalah sekumpulan data yang homogen atau setipe. Berikut contoh-contoh array yang harusnya sudah familiar di kalangan anak IT Binus

in C language :

int score[5] = { 7 , 8 , 9 , 9 , 6 }; // array of int

float GPA[3] = { 3.99 , 4.00 , 2.98 }; // array of float

char name[3][30] = { "Kevin" , "Evania" , "Pranata" };
// array of Character
// array of String [?]

Pada contoh di atas dapat kita temukan bahwa ada kotak [5], [3], dan [3][30] yang kita temukan di atas, seharusnya ini sudah dijelaskan oleh dosen kita di semester satu tapi saya akan mencoba menjelaskan maksud dari kurung-kurung siku tersebut, kurung-kurung siku tersebut ramah dikenal dengan dimensi dalam suatu array, jadi seperti yang kita ketahui dalam bahasa C kita dapat menginisialisasi suatu tipe data pada saat program belum dijalankan, nah oleh karena itu jika kita ingin membuat suatu array dari data type, kita dapat menambah [ ] setelah nama tipe data yang kita tentukan, berikut syntax sederhananya 

int C language :

<Data Type> <Name of Data Type> [total size] ; // don't forget ( ; )

jadi kalian mungkin bertanya bagaimana cara mengakses data dari suatu array itu, dalam C array dapat diakses dengan menggunakan index, index dari setiap array dimulai dari index ke-0 dan pada index terakhir dari setiap array ada NULL. Oleh karena itu dapat disimpulkan array dengan size N memiliki index dari 0 sampai dengan N-1.

Cara mengakses nilai dari suatu array seperti contoh berikut

in C language :

int score[5] = { 7 , 8 , 9 , 9 , 6 };
float GPA[3] = { 3.99 , 4.00 , 2.98 };
char name[3][30] = { "Kevin" , "Evania" , "Pranata" };
int i;

for(i=0;i<5;i++) printf("%i ",score[i]);
puts(""); for(i=0;i<3;i++) printf("%.2f ",GPA[i]);
puts(""); for(i=0;i<3;i++) puts(name[i]);


Perhatikan contoh array di atas, bisa kita ketahui kalau array merupukan sekumpulan data yang sama.
Muncul pertanyaan ketika kita melihat array of character di atas karena jika diperhatikan ada lebih dari satu [] yang ditemukan pada codingan di atas yaitu yang menjadi pertanyaan dosen saya hari ini,



Berapa jumlah maksimal dimensi yang dapat digunakan dalam array ?
Jawabannya adalah 256 (sumber Internet).

Berikut contoh multidimensi array yang lebih kompleks (dari Resources Binusmaya)

Multi Dimensional Array

Declaration:

int arr[4][3][7][10];

Accessing:
arr[0][2][2][9]= 2;
arr[2][1][6][0]= 9;
arr[3][0][0][6]= 13;
arr[2][1][3][8]= 10;

      Sekarang kita akan membahas bagaimana cara menginisialisasi suatu array, menginput nilai dalam suatu elemen dan mengubah atau mengisi nilai dari suatu array

Diketahui ada beberapa hal yang dapat kamu lakukan dalam array yaitu
1. Transversal
2. Insertion
3. Searching
4. Deleting
5. Merging
6. Sorting

dan akhirnya selesai tentang Array >,<''
      lanjut kita sekarang membahas tentang pointer, tapi sebelumnya saya minta maaf kalau penjelasan saya mengenai pointer akan sedikit kurang efisien karena saya belum paham sepenuhnya apa itu pointer.

Pointer
Pointer is a data type whose value refers to another value stored 
elsewhere in computer memory using its address.

The two most important operators used with pointer type are:
&  the address operator
*   the dereferencing operator

itu materi dari Binusmaya penjelasannya berikut,
pointer itu datatype yang menyimpan isi dari suatu data lain yang disimpan di memori 
komputer dan didapatkan dengan menggunakan alamat dari data tersebut.
Ada 2 operator penting ketika kita menggunakan pointer antara lain:
& adalah alamat datanya
* adalah simbol operator pointer

tadi Bapak Dosen ada memberi pertanyaan, 
Apa perbedaan single pointer dan double pointer
Dan berapa jumlah bintang ** maksimal yang dapat digunakan sebagai pointer?
Jumlah bintang maksimal yang dapat digunakan sebagai pointer ada 12.
Sedangkan perbedaanya single dan double pointer adalah, double pointer sepertinya hanya bisa di assign adress dari single pointer dan single pointer hanya bisa di assign adress dari int atau data type biasa.

===============================Pointer SELESAI >,<======================

Kemudian, kita membahas mengenai Data Structure

Data Sturcture adalah suatu kumpulan (urutan) data
Beberapa contoh umum dari data structure meliputi
- Arrays
- Linked list
- Queues
- Stacks
- Binary trees
- Hash tables
Berikut beberapa penjelasannya
Array itu kumpulan dari data yang satu jenis
Size of Array itu ditentukan sebelum suatu program jalankan dan tidak dapat berubah seringin program berjalan (statis)
Linked List itu, sekumpulan data structure yang sangat dinamis dimana dia tidak menggunakan array sebagai penampung dari data itu melainan data itu dapat berubah ubah seringin program berjalan (dinamis)
Queue atau yang biasa kita dengar antrian,
berarti elemen dari tipe data tersebut bersistem FIFO, yang berarti First In First Out

Stacks biasa direpresentasikan sebagai suatu tumpukan, 
maka berarti tiap tipe data yang terakhir masuk juga tipe data yang pertama diakses, maka data yang pertama diinput pada sistem ini akan menjadi data yang terakhir dikaeluarkan dari tumpukan paling bawah, berikut ilustrasinya
dan terakhir penjelasan dari Binary Trees yakni data structure yang diset sebagai kumpulan elemen yang disebut node
setiap node memiliki pointer kiri, pointer kanan, dan isi data dari node tersebut, ilustrasinya sebagai berikut

Data Types is a collection of objects and a set of operations that act on those objects, artinya data type itu kumpulan dari object dan operator dari data tersebut
contohnya
data type int mengandung 
object      : 0 , +1, +2, +3, -1, -2, etc.
operation : +,-,*,/,%, etc

contoh dari data type seperti int, char, float.

Abstract Data Type
adalah data type yang diatur dalam spesifikasi yang sudah diatur oleh user (user-defined). Biasa akrab dikenal dengan struct dalam bahasa C.

========================================================================
========================================================================

Berakhirlah pembahasan mengenai Pointer, Array and Introduction to Data Structures

Sekarang saya akan menjelaskan mengenai Introduction to Linked List versi Bapak Dosesn tamu tadi dan sedikit modifikasi versi saya >,<''

sebelumnya kita tidak bisa minggalkan materi dari Binusmaya yaitu Struct.
Apa itu Struct, adalah suatu tipe data user-defined yang penggunannya dapat menyimpan banyak tipe data lain dalam suatu struct tersebut, sementara sebuah array hanya dapat menyimpan data dari sejenis(data type-nya).
Setelah nama structnya user defined, nama tersebut dapat menjadi array yang mewakili kumpulan tipe data yang berbeda itu

nah saya ingin bertanya terlebih dahulu, jika saya punya suatu struct berikut
struct Data{
 char nama[40];
 int age;
 char gender[10];
 char NIM[15];
}student[20];

Apa yang terjadi jika ternyata saya memiliki siswa sebanyak lebih dari 20 orang (>20) ?
Akan terjadi break pada applikasi karena ditemukan suatu error, error yang disebabkan oleh biasanya saya tahu dengan stack overflow, yaitu array yang kepenuhan. Maka
Linked List merupakan solusi dari masalah ini dimana kita menentukan size dari data yang kita tentukan seiring dengan kebutuhan kita, tanpa harus diset di awal program sebelum dijalankan, makanya Linked List bersifat dinamis dan direkomendasikan untuk optimisasi dari penggunaan memori yang dibutuhkan dari program yang akan kita jalankan.

Linked List adalah data struct yang mengandung urutan dari data yang terekam(simpan) dan setiap rekanan data yang tersimpan mengandung arah atau sudah terarah untuk menuju ke arah urutan berikutnya
Berdasarkan contoh di atas dapat dilihat bahwa setiap node memiliki sebuah nilai integer dan link untuk menuju ke node berikutnya.
Linked list yang mengandung hanya tepat satu link ke node lainnya disebut single linked list

Maka dapat disimpulkan perbedaan dari array vs linked list sebagai berikut
Array
- Kumpulan dari tipe data sejenis 
- Menyimpan data di memori yang dialokasikan secara berurutan
- Bisa random dalam pengaksesan data

Linked List 
- Kumpulan dari node
- Tidak menyimpan node di memori berurutan
- Dapat diakses dengan cara yang sesuai urutan

KEVIN SURYA PRANATA
2101673042 



Tidak ada komentar:

Posting Komentar

[2018] 5 - Binary Search Tree - 2101673042 - Kevin Surya Pranata

Welcome back to my Blog Now I want to explain you about Binary Search Tree But before that, have you heard about graph? Binary Tree ? Wh...