Rabu, 11 November 2015

Struktur Data



Pengertian dan Penjelasan tentang Struktur Data , Array , Link List , Stack , Queue , Sorting , Searching dan Tree

Struktur data adalah cara menyimpan atau memprentasikan data didalam komputer agar bisa dipakai secara efisien ,sedangkan data adalah refresentasi dari fakta dunia nyata. Fakta atau ketrengan tentang kenyataan yang disimpan ,direkam atau di refresentasikan dalam bentuk tulisan , gambar ,sinyal atau simbol.

Secara garis besar type data dikategorikan menjadi :
type sederhana ,type data sederhana tunggal misalnya integer ,real , boolean dan karakter.
type data sederhana majemuk misalnya String.

Struktur data meliputi ,struktur data sederhana misalnya array dan record.
Struktur data majemuk yang terdiri dari
 Linier : Stack , Queue , List dan Multilist
Non Linier : Graph dan Biner

Pemakaian struktur data yang tepat di dalam proses pemrograman akan menghasilkan algoritma yng lebih jelas dan tepat , sehimgga menjadikan program secara keseluruhan lebih efisien dan lebih sederhana.

Biasanya Struktur Data yang sering digunakan dalam dibidang informatika :
* List Linier 
*  Multilist 
* Queue
* Tree
* Graph

Array :
Sebuah struktur data yang terdiri atas banyak variable dengan type data yang sama dimana masing masing element variable memiliki nilai indeks
Setiap element array mampu untuk menyimpan satu jenis data ( variabel ) .


Cara Pendefinisian :
* cotoh type
A = Array [1....6] of integer ;
* Secara logika pendefinisian Array di atas merupakan sekumpulan otak , dimana tiap kotak mempunyai nilai indeks integer 1,2,3,....6 tiap elemen array di tandai dengan : A[1],A[2],A[3],A[4],A[5],A[6] untuk mengisi elemen array misal A[1];=;4 .Sifat Array merupakan struktur data yang statis, yaitu jumlah elemen yang ada harus di tentukan terlebih dahulu dan tak bisa di ubah saat program berjalan.Untuk menyatakan Array dalam PASCAL kita harus terlebih dahulu :
Mendefinisikan jumlah elemen array .



SINGLE LINK LIST

Linked List adalah salah satu bentuk struktur data , berisi kumpulan data (node)  yang tersusun secara sekuensial , saling sambung menyabung , dinamis , dan terbatas .

-Linked List juga di sebut dengan Senarai Berantai
-Linked List saling terhubung dengan bantuan variable pointer
-Masing - masing data dalam Linked list di sebut dengan node (simpul) yang menempati alokasi  memori secara dinamis dan biasany merupakan struct yang terdiri dari beberapa field .


Single Linked List adalah sebuah LINKED LIST yang menggunakan sebuah variable pointer saja untuk menyimpan banyak data dengan metode menggunakan LINKED LIST  , suatu daftar isi yang salinng berhubungan .


Single Linked List Circular

Single Linked Circular adalah Single Linked  List pointer nextnya menunjuk pada dirinya sendiri . Jika Single Lined List tersebut terdiri dari beberapa node maka pointer next pada beberapa node terakhir akan menunjuk ke node terdepanya .

Single Linked List Non Circular

Artinya field pointernya hanya satu buah saja dan satu arah .
setiap node pada Linked List mempunyai field yang berisi pointer ke node berikutnya dan juga memiliki field yang berisi data .
Pada akhir Linked List node terakhir akan menunjukan ke NULL yang akan digunakan sebagai kondidi berhenti pada saat pembacaan isi Linked List .


Double Linked List

Double artinya field pointernya dua buah dan dua  arah ke node sebelumnya dan sesudahnya . Jadi yang memiliki dua buah pointer yaitu pointer next dan freview . Pointer next menunjukan pada node setelahnya dan pointer freview menunjukan pada node sebelumnya .


STACK

Artinya (tumpukan) adalah kumpulan elemen elemen data yang di simpan dalam satu lajur linier . Konsep utamanya Stack adalah LIFO (Last In First Out) benda yang terakhir masuk dalam stack akan menjadi yang pertama yang di keluarkan tumpukan di sebut juga "Push Down Stack" yaitu penambahan elemen baru dan penghapusn elemen dari tumpukan contoh pada PDA (Push Down Automation) .
Macam macam Stack

1. Stack dengan Array
    Sesuai dengan sifat Stack , pengambilan atau penghapusan elemen dalam stack harus dimulai dari       elemen teratas

2. Double Stack dengan Array
    Metode ini adalah teknik khusus yang di kembangkan untuk menghemat pemakaian memori dalam     pembuatan dua Stack dengan Array intinya adalah penggunaan hanya sebuah array untuk  menampung dua Stack .



QUEUE


Artinya (Antrian) ini merupakan suatu struktur data linier konsepny hampir sama dengan Stack perbedaanya adalah operasi penambahan dan penghapusan pada ujung yang berbeda . Penghapusan dilakukan pada bagian depan (front) dan penambahan berlaku pada bagia belakang (rear) .
Elemen elemen dapat bertipe integer real dan record dalam bentuk sederhana atau tekstur .
Tumpukan disebut juga waiting Line sistem pengaksesan pada Queue menggunakan sistem FIFO (First In First Out) yang artinya elemen yang pertama masuk itu yang akan pertama di keluarkan dari Queue .

Operasi operasi pda Queue :

  1. Create Queue (Q) : membbuat antrian baru Q dengan jumlah elemen kosong
  2. Make  NullQ (Q) : Mengosongkan antrian Q jika ada elemen maka semua elemen di hapus .
  3. En Queue : berfungsi memasukan data dalam antrian .
  4. Deq Queue : Berfungsi mengeluaran data terdepan dari antrian .
  5. Clear : Menghapus seluruh antrian .
  6. Is Empty : memeriksa apakah Antrian kosong .
  7. Is Full  : memeriksa apakah antrian penuh


SORTING

Artinya (Pengurutan) adalah suatu proses menyusun kembali data yang sebelumnya telah di susun dengan suatu pola tertentu sehingga tersusun secara teratur menurut aturan tertentu .

Dua macam pengurutuan :

Ascending (urut naik) merupakan pengurutan dari angka yang nilainya lebih kecil kemudian menuju ke nilainya yang lebih besar . Contoh : 0 1 2  4 7 9

Descending (urut turun) adalah sebaliknya  yaitu pengurutan dari nilainya yang lebih besar kemudian menuju ke nilainya yang lebih kecil . Contoh : 9 7 4 2 1 0

Macam macam Sorting 

  1. Bubble Sort : memindahkan elemen sekarang dengan elemen berikutnya . Jika elemen sekarang itu lebih besar atau lebih kecil dari elemen berikutnya maka di tukar berpindah posisi .
  2. Exchange Sort : sangat mirip dengan Bubble Sort bedanya jika Bubble Sort proses pertukaranya harus sistematis , dari awal atau dari belakang . Sedangkan Exchange Sort nya proses pertukaran hanya akan di lakukan jika di perlukan saja .
  3. Selection sort : memindahkan elemen dengan cara membandingkan elemen sekarang dengan elemen yang berikutnya sampai dengan elemen terakhir . Jika di temukan elemen lain yang lebih kecil atau lebih besar dari elemen sekarang maka di catat posisinya dan kemudian di tukar dan begitu seterusnya .
  4. Insertion Sort : pengurutan yang di lakukan dengan cara membandingkan dengan data ke dua sampai data terakhir .Jika di temukan data yng lebih kecil atau lebih besar maka data tersebut di sisipkan ke depan sesuai posisi yang seharusnya .
  5. Shell Sort ; merupakan proses pengurutan data yang sebelunya acak menjadi data yang terurut dengan cara menentukan jarak antar elemen yang akan di bandingkan .
  6. Merge Sort : merupakan proses pengurutan data yang menggunakan Merging dua Vektor .
  7. Quick Sort : merupakan proses penyusunan elemen yang membandingka suatu elemen dengan elemen yang lain dan menyusunya dengan sedemikian rupa sehingga elemen elemen lain yang lebih kecil dari pivot terletak di sebelah kiri pivot dan elemen yang lebih besar dari pivot terletak di sebelah kanan pivot .



SEARCHING

Artinya pencarian merupakan proses yang fundamental dalam pemrograman guna menemukan data tertentu di dalam sekumpulan data yang bertipe sama . Fungsi pencarian itu sendiri adalah untuk memvalidasi atau mencocokan data .

Metode pencarian di bagindua macam : 
  1. Metode pencarian beruntun konsepyang di gunakan dalam metode ini adalah menbandingkan data data yang ada di dalam kumpulan tersebut mulai dari elemen pertama sampai elemen di temukan atau sampai elemen terakhir .
  2. Metode Pencarian bagi dua (Dinarry Search) metode ini di terapkan pada sekumpulan data yang sudah terurut (manaik atau menurun) metode ini lebih cepat di bandingkan metode pencarian beruntun . Data yang sudah terurut menjadi syarat mutlak untuk menggunakan metode ini .


TREE

Artinya merupakan salah ssatu bentuk struktur data tidak linier yang menggambarkan hubungan yang bersifat hierarkis (hubungan one to many) antar elemen elemen . di definisikan sebagai kumpulan simpul atau mode dalam satu elemen khusus yang di sebut root dan mode lainya terbagi menjadi himpunan himpunan yang saling tak berhubungan satu sama lainya (sutree) .