Selasa, 20 Februari 2018

Pertemuan 1 dan 2-Pengenalan Struktur Data,Array,Pointer dan Linked list-Benedick Asdyo-2101631090

      Dilansir dari wikipedia,  struktur data dalam ilmu komputer adalah cara penyimpanan, penyusunan dan pengaturan data di dalam media penyimpanan komputer sehingga data tersebut dapat digunakan secara efisien. Dengan struktur data dengan baik kita dapat membuat aplikasi atau program yang kita gunakan berjalan lebih efisien serta mempelajari data-data itu dengan mudah. Struktur data ini juga ternyata sangat penting dalam bidang digital marketing, yaitu dengan mempelajari kebiasaan masukan / input pengguna dan menampilkan iklan yang dapat memungkinkan membuat pembaca dari web tersebut tertarik, contoh nya adalah bagaiman iklan-iklan yang di tampilkan di google atau facebook. Selain itu implementasi dari struktur data ini juga erat dengan sistem pencari yang ada di internet karena itu, Ada istilah yang di sebut SEO (Search Engine Optimization) yang erat hubungannya dengan struktur data.
     Tipe-tipe data dalam struktur data ini umumnya di bagi menjadi 3 yaitu tipe data primitif,non primitf dan tipe data abstrak atau ADT(Abstract Data Type).
Contoh tipe data primitif adalah:
  • Boolean (Truth/false)
  • Character/char
  • Floating-point/float
  • Double/ long floaot
  • Integer/ bilangan bulat
  • String / kumpulan dari char
  • Reference (disebut juga pointer)
Contoh tipe data non-primitif adalah:
  • Array
  • Record
  • Union
  • Tagged union 

 Contoh ADT (Abstract Data Type):
  • List
  • Associative array
  • Multimap
  • Set
  • Multiset (Bag)
  • Struct
  • Queue
  • Double-ended queue
  • Priority queue
  • Tree
  • Graf

Array (contoh dan syntax berdasarkan bahasa C/C++)

  • Array adalah sebuah kumpulan elemen data dengan tipe data yang sama(homogen). Elemen-elemen suatu array disimpan dalam memory locations yang berurutan. Setiap elemen array dapat diisi secara terpisah. 
  • Elemen pada array ini memiliki index dimulai dari 0 hingga n-1, dimana n-1 merupakan jumlah data.
  • Syntax: Tipedata arrayName[size];
  • Contoh: int contoh[5] = {1,2,3,4,5); (dimemori disiapakan suatu tempat bernama contoh untuk    5 buah integer dimana pada index ke-0 diisi 1,index ke 1 diisi 2, index ke 2 diisi 3 dst) 
  • Operasi yang bisa dilakukan pada array adalah:
  1. Traversal (passing nilai)
  2. Insertion (memasukkan)
  3. Searching (mencari)
  4. Deletion (menghapus)
  5. Merging (menggabungkan)
  6. Sorting (mengurutkan)
  •  Jenis array : 
  1.  array dimensi satu (untuk contoh dan syntax ada di bagian contoh da syntax diatas)
  2.  array multidimensi
merupakan array berdimensi 2 atau lebih syntax nya mirip denga array dimensi satu hanya di tambah'[ ]' lagi, contoh : int x[3][4]; (artinya akan dibentuk array dengan tipe data int dengan index 2),array berdimensi dua ini jika digambarkan seperti tabel
array ini memiliki dimensi maksimal 256,namun pada umumnya jarang komputer yang dapat dialokasikan memorinya untuk membuat array dengan 256 dimensi, jadi bisa dikatakan batas dimensi array ini di tentukan dari memori yang dimiliki komputer.

Pointer

  • Pointer secara singkat adalah suatu tipe data yang menyimpan alamat dari variabel lain dengan tipe data yang sama. sepertii penunjuk
  • Operator yang digunakan dalam pointer adalah '*'(derefecing operator) dan '&' (untuk mengakses alamat)
  • Syntax :   data-type *ptr_name;
  • batas * pada pointer adalah 12 jika ada 2'*' maka berarti variabel itu adalah penunjuk dari penunjuk.
  • contoh :
int a  = 10;
int *p = &a;
printf( “%d\n”, *p ); /*akan tercetak alamat dari variable a*/
a  = 17;
*p = 20;/*nilai a akan berubah jadi 20 karena pointer p memiliki    alanat a/*
printf( “%d\n”, a );/*tercetak 20*/

Linked List

  •  Lingked list adalah struktur data dinamik yang dimana elemennya dapat di hapus dan ditambahkan sesuka hati atau struktur data yang terdiri dari data records yang berurutan, pada setiap record ada elemen yang mengandung reference menuju record berikutnya
  • Perbedaan Linked List dengan Array:
  1. Letak memory locations acak/tidak berurutan
  2. alokasi memori lebih fleksibel tidak seperti array yang kita deklarasikan (elemen linked list bisa ditambahkan atau dikurangi kapan saja)
  3. Setiap elemen disebut node
  4. Hanya dapat diakses secara berurutan
  • Macam Linked List :
    1. Single linked list adalah linked list yang setiap node-nya hanya memiliki satu link ke node lainnya.
    2. Circular Single linked list adalah single linked list yang node terakhirnya mengandung pointer menuju ke node pertama.
    3. Double linked list adalah linked list yang setiap node-nya memiliki dua link
    4. Circular Doubly linked list mirip dengan circular single linked list, tetapi ada 2 pointer di setiap node, yang satu menuju ke node berikutnya, dan yang satu lagi menuju ke node sebelumnya.
    5. Header Linked List adalah linked list yang mempunyai node header di awal list.
     

Queque (Antrian)

  • Struktur data dimana data yang dimasukan duluan akan keluar duluan dan yang masuk terakhir akan keluar terakhir (First in first out)
  • Elemen terdepan atau yang segera keluar pada queque disebut front dan yang dibelakang atau dimasukan sesudah front disebut rear

Stack (Tumpukan)

  • Stack tipe data yang menganut prinsip LIFO (Last In First Out) / FILO (First In Last Out).
  • Stack juga dapat di representasikan sebagai array satu dimensi.

Binary Tree

Tidak ada komentar:

Posting Komentar