Minggu, 15 Juli 2012

Rangkuman Struktur Data:

Nama: Try permadi
NRP: 6311018
Alamat: Jln.Panyileukan
Mata kuliah: T.Struktur Data
Nama Dosen: Dadan Nurdin Bagenda
Kampus : PKN STIMIK LPKIA BANDUNG

Gambar Pemetaan:

 
CONTOH SOURCE CODE SINGLE LINKED LIST:


Contoh source code single linked list linear:
#include <iostream>
using namespace std;
struct Node{
        int data;
        Node* next;
};
Node* NodePtr;
 
PENJELASAN:

Linked List: Adalah koleksi data item yang tersusun dalam sebuah barisan secara Linear, dengan 
penyisipan dan pemindahan dapat di lakukan dalam semua tempat di Linked List tersebut.
 
Single Linked List: Adalah Sebuah Linked List yang menggunakan sebuah variabel pointer saja
untuk menyimpan banyak data dengan metode Linked List, suatu daftar isi yang saling berhubungan.
 
Linked List Circural: Double / Single Linked List yang simpul terakhirnya menunjuk ke simpul awal
dan simpul awal nya menunjuk ke simpul akhir atau dapat disebut Linked List yang dibuat seakan-akan
merupakan sebuah lingkaran dengan titik awal dan titik akhir saling bersebelahan jika Linked List 
tersebut masih kosong ilustrasi Circural Linked List. 

STRUKTUR DATA:
Struktur data adalah cara menyimpan atau merepresentasikan data dari dalam komputer agar bisa dipakai secara efisien Sedangkan data adalah representasi dari fakta dunia nyata.
Fakta atau keterangan tentang kenyataan yang disimpan, direkam atau direpresentasikan dalam bentuk tulisan, suara, gambar, sinyal atau symbol.
Secara garis besar type data dapat dikategorikan menjadi :

1. Type data sederhana
a. Type data sederhana tunggal, misalnya Integer, real, boolean dan karakter
b. Type data sederhana majemuk, misalnya String
2. Struktur Data, meliputi
a. Struktur data sederhana, misalnya array dan record
b. Struktur data majemuk, yang terdiri dari
Linier : Stack, Queue, serta List dan Multilist
Non Linier : Pohon Binary dan Graph




STRUKTUR DATA LINEAR: 

Struktur data linear adalah struktur data yang menggambarkan hubungan tentang elemen-elemen yang berdekatan. Terdiri dari :
1. ARRAY :    a. dimensi satu (vektor matriks)
                        b. dimensi dua (matriks)
                        c. multi dimensi


 
STRUKTUR DATA NON LINEAR:

Penyelesaian persamaan non linear adalah penentuan akar-akar persamaan non linear. Dimana akar sebuah persamaan f(x) =0 adalah nilai-nilai x yang menyebabkan nilai f(x) sama dengan nol. Dengan kata lain akar persamaan f(x) adalah titik potong antara kurva f(x) dan sumbu X. Dalam hal ini saya menggunakan metode Tabel untuk menyelesaikan persamaan ini.
Secara sederhana, untuk menyelesaikan persamaan non linier dapat dilakukan
dengan menggunakan metode table atau pembagian area.Dimana untuk x = [ ] b a, atau x di antara a dan b dibagi sebanyak N bagian dan pada masing-masing bagian dihitung nilai f(x) sehingga di peroleh tabel :

 

Dari tabel ini, bila ditemukan f(xk)=0 atau mendekati nol maka dikatakan
bahwa xk adalah penyelesaian persamaan f(xk)=0.Bila tidak ada f(xk) yang sama dengan nol, maka dicari nilai f(xk) dan f(xk+1) yang berlawanan tanda, bila tidak ditemukan maka dikatakan tidak mempunyai akar untuk x = [ ], ,b a dan bila ditemukan maka ada 2 pendapat untuk menentukan akar persamaan, yaitu :
  1. Akar persamaan ditentukan oleh nilai mana yang lebih dekat, bila |f(xk)| ≤ |f(xk+1)| maka akarnya xk, dan bila |f(xk+1)|<|f(xk)| maka akarnya xk+1.
  2. Akarnya perlu di cari lagi, dengan range x = [ xk,xk+1].




FIFO AND LIFO:

FIFO (first in first out) memiliki pengertian Masuk Pertama, Keluar Pertama, yang abstak dalam cara mengatur dan manipulasi data yang relatif terhadap waktu dan prioritas. Ungkapan ini menjelaskan prinsip dari teknik pemrosesan atau melayani permintaan bertentangan dengan memesan proses pertama datang, pertama-dilayani (FCFS) perilaku: apa yang masuk pertama adalah menangani pertama, apa yang datang di depan menunggu sampai pertama selesai, dll

LIFO (Last In First Out) memiliki pengertian terakhir masuk, pertama keluar. Dalam ilmu komputer dan teori queueing ini merujuk kepada cara item disimpan dalam beberapa jenis struktur data yang diproses. Dengan definisi, dalam sebuah struktur LIFO linear daftar, elemen dapat ditambahkan atau diambil dari satu akhirnya, yang disebut "atas". LIFO struktur dapat digambarkan dengan contoh yang sempit, ramai lift dengan pintu kecil . Ketika lift mencapai tujuan, yang terakhir untuk mendapatkan orang harus pertama untuk turun.


SINGLE LINKED LIST:

       Single Linked List adalah pointer next nya menunjuk pada dirinya sendiri.  Jika Single Linked List tersebut terdiri dari beberapa node, maka pointer next pada node terakhir akan menunjuk ke node terdepannya.
         Pengertian:
         Single : artinya field pointer-nya hanya satu buah saja dan satu arah.
         Linked List : artinya node-node tersebut saling terhubung satu sama lain.
   Circular : artinya pointer next-nya akan menunjuk pada dirinya sendiri sehingga berputar
         Non Circural : artinya node-node tersebut saling terhubung satu sama lain.

DOUBLE LINKED LIST:

Double adalah elemen-element yang dihubungkan dengan dua pointer dengan satu element dan list dapat melintas baik di depan atau belakang.
Element double linked list terdiri dari tiga bagian:
·         Bagian data informasi
·         Pointer next yang menunjuk ke element berikutnya
·         Pointer prev yang menunjuk ke element sebelumnya
Untuk menunjuk head dari double linked list, pointer prev dari element pertama menunjuk NULL, Sedankan untuk menunjuk tail, pointer next dari element terakhir menunjuk NULL.
Contoh membuat TDA (Tipe Data Abstrak) dari Double Linked Circural List tersebut:

         Pengertian:
    Double : artinya field pointer-nya dua buah dan dua arah, ke node sebelum dan sesudahnya.
         Linked List : artinya node-node tersebut saling terhubung satu sama lain.
         Non Circular : artinya pointer prev dan next-nya akan menunjuk pada NULL.
         Circural: pointer next dan prev nya menunjuk kedirinya sendiri secara circular.


ARRAY:

Array merupakan koleksi data dimana setiap elemen memakai nama dan tipe yang sama serta setiap elemen diakses dengan membedakan indeks array-nya. Berikut adalah contoh variable bernama c yang mempunyai lokasi memori yang semuanya bertipe int.
C[0] -45
C[1] 6
C[2] 0
C[3] 72
C[4] 1543
C[5] 43
C[6] 4
Masing-masing nilai dalam setiap lokasi mempunyai identitas berupa nama c dan nomor indeks yang dituliskan di dalam tanda kurung ‘[..]’. sebagai contoh, 72 adalah nilai dari c[3].
Deklarasi Array
Variable array dideklarasikan dengan mencantumkan tipe dan nama variable yang diikuti dengan banyaknya lokasi memori yang ingin dibuat. Dengan demikian, deklarasi untuk variablearray c di atas adalah :
int c[7];
Perlu diperhatikan bahwa C++ secara otomatis menyediakan lokasi memori yang sesuai dengan yang dideklarasikan, dimana nomor indeks selalu dimulai dari 0. Nilai suatu variablearray dapat juga diinisialisasi secara langsung pada saat deklarasi, misalnya;
Int c[7] = {-45, 0, 6, 72, 1543, 43, 4}
Berarti setiap lokasi memori dari variable array c langsung diisi dengan nilai-nilai yang dituliskan didalam tanda kurung kurawal.
Banyaknya lokasi memori dapat secara otomatis disediakan sesuai degan banyaknya nilai yang akan dimasukkan, seperti contoh berikut yang tentunya membuat variable array dengan 10 lokasi memori:
Int x []={10, 15 12, 5, 13, 9, 6, 17, 25, 31};
Untuk memperjelas gambaran anda tentang array perhatikan contoh aplikasi variable array, yaitu program untuk menghitung jumlah setiap elemen dalam suatu array.


POINTER:

Pointer (variabel penunjuk) adalah suatu variabel yang berisi alamat lokasi suatu memori tertentu. Jadi isi dari variabel pointer merupakan alamat dari lokasi memori yang digunakan untuk menyimpan data dan bukan nilai data itu sendiri. Misalnya X adalah suatu variabel biasa yang berisi nilai karakter ‘J’. X bukan variabel pointer. Nilai dari X ini oleh kompiler C++ akan diletakkan di suatu lokasi memori tertentu. Nilai ini dapat diakses jika diketahui alamat memorinya. Untuk mengetahui alamat memori yang digunakan oleh variabel X dalam menyimpan nilai datanya dapat diketahui dengan ungkapan &X. Alamat tersebut dapat ditulis dengan mengambil sebuah variabel lagi yang disebut dengan variabel pointer, misalnya: Alamat_X = &X. Alamat_X adalah variabel pointer karena variabel ini menunjuk ke lokasi memori di mana nilai data dari variabel X disimpan.


PENAMBAHAN DATA:

Penambahan node baru akan dikaitan di node paling depan, namun pada daat pertama kali (data masih kosong), maka penambahan data dilakukan dengan cara : node head ditunjukan ke node baru tersebut
Prinsipnya adalah mengkaitkan node baru dengan head, kemudian head akan menunjuk pada data baru tersebut sehingga head akan tetap sekaku menjadi data terdepan.

Menambah Node Di Belakang
Penambahan dilakukan di belakang, namin pada saat pertama kali, node langsung ditunjuk oleh head, membutuhkan pointer bantu untuk mengetahui node terbelakang kemudian dikaitkan dengan node baru, perlu digunakan perulangan.

PENGHAPUSAN DATA:

Menghapus Node Di Depan
Penghapusan node tidak boleh dilakukan jika keadaan node sedang ditunjuk oleh pointer, maka harus dilakukan penggunaan suatu pointer lain (hapus) yang digunakan untuk menunjuk node yang akan dihapus, barulah kemusian menghapus pointer menggunakan perintah delete. Sebelum data terdepan terhapus, terlebih dahulu head harus menunhuk ke alamat berikutnya agar list tidak putus, jika head masih NULL berarti data masih kosong.

Menghapus Node Di Belakang
Membutuhkan pointer bantu dan hapus. Pointer hapus digunakan untuk menunjuk node yang akan dihapus, Pointer bantu untuk menunjuk node sebelum node yang akan dihapus yang akan menjadi node yang terakhir. Pointer bantu digunakan untuk menunjuk ke nilai NULL selalu bergerak sampai sebelum node yang akan dihapus kemudian pointer hapus diletakan setelah pointer bantu. Selanjutnya pointer hapus akan menunjuk ke NULL.




TREE:

Tree merupakan salah satu bentuk struktur data non linear yang menggambarkan hubungan yang bersifat hirarkis antara elemen-elemen. Tree bisa didefinisikan sebagai kumpulan simpul/node dengan satu elemen khusus yang disebut ROOT dan node lainnya terbagi menjadi himpunan-himpunan yang saling tidak berhubungan satu sama lainnya (subtree)                     

BINARY TREE:

Binary tree adalah tree dengan syarat bahwa tiap node bisa kosong atau maksimal memiliki dua subtree dan kedua subtree harus terpisah.
Sesuai dengan definisi tersebut, maka tiap node dalam binary tree hanya boleh memiliki paling banyak dua child dan Binary tree mempunyai berbagai jenis, yaitu :
1. Full Binary tree
Full Binary Tree adalah binary tree yang tiap nodenya (kecuali leaf) memiliki dua child dan tiap subtree harus mempunyai panjang  path yang sama
2. Complete binary Tree
Complete Binary Tree Mirip dengan full binary tree, namun tiap subtree boleh  memiliki panjang path yang berbeda.node (kecuali leaf) memiliki 0 atau 2 child
3. Skewed Binary Tree
Skewed Binary Tree adalah binary tree yang semua node nya (kecuali leaf) hanya memiliki satu child.

GRAPH: 

Graph adalah kumpulan noktah (simpul) di dalam bidang dua dimensi yang dihubungkan dengan sekumpulan garis (sisi).Graph dapat digunakan untuk merepresentasikan objek-objek diskrit dan hubungan antara objek-objek tersebut. Representasi visual dari graph adalah dengan menyatakan objek sebagai noktah, bulatan atau titik (Vertex), sedangkan hubungan antara objek dinyatakan dengan garis (Edge).
  G = (V, E)
Dimana
G = Graph
V = Simpul atau Vertex, atau Node, atau Titik
E = Busur atau Edge, atau arc


Bila ingin melihat contoh coding program bisa di download disni:
http://www.mediafire.com/?0w99ucbodh4wb

Tidak ada komentar:

Posting Komentar