Archive

Archive for the ‘Struktur Data’ Category

Stack


Stack/Tumpukan

Stack merupakan bentuk khusus dari suatu struktur data, dimana node yang ditambahkan ke dalam list dan diambil dari list hanya pada kepalanya, atau dengan prinsip pengolahannya adalah last-in first-out (LIFO). Pada struktur ini hanya ada dua fungsi utama, yaitu push (memasukkan node ke dalam stack), dan pop (mengambil node dari stack).

Pengertian Tumpukan

Secara sederhana tumpukan bisa diartikan sebagai kumpulan data yang seolah-olah diletakkan di atas data yang lain. Dalam suatu tumpukan akan dapat dilakukan operasi penambahan (penyisipan) dan pengambilan (penghapusan) data melalui ujung yang sama, ujung ini merupakan ujung atas tumpukan.

Contoh Kasus :

  1. Terdapat dua buah kotak yang ditumpuk, kotak yang satu akan ditumpuk diatas kotak yang lainnya. Jika kemudian tumpukan 2 kotak tadi, ditambah kotak ketiga, keempat, kelima, dan seterusnya, maka akan diperoleh sebuah tumpukan kotak yang terdiri dari N kotak.
  2. Dapat dilihat bahwa kotak B terletak diatas kotak A dan ada dibawah kotak C. Berdasarkan pada tumpukan tersebut dapat disimpulkan bahwa penambahan dan pengambilan sebuah kotak hanya dapat dilakukan dengan melewati satu ujung saja, yaitu bagian atas.
  3. Kotak F adalah kotak paling atas sehingga jika ada kotak lain yang akan disisipkan maka kotak tersebut akan diletakkan pada posisi paling atas (diatas kotak F). Demikian juga pada saat pengambilan kotak, kotak F akan diambil pertama kali.

Read more…

Advertisements
Categories: C++, Struktur Data

Queue


Queue/Antrian

Queue adalah suatu kumpulan data yang penambahan elemennya hanya bisa dilakukan pada suatu ujung (disebut dengan sisi belakang atau rear), dan penghapusan atau pengambilan elemen dilakukan lewat ujung yang lain (disebut dengan sisi depan atau front)

Jika pada tumpukan dikenal dengan menggunakan prinsip LIFO (Last In First Out), maka pada antrian prinsip yang digunakan adalah FIFO (First In First Out).

Implementasi Antrian dengan Array

Karena antrian merupakan suatu kumpulan data, maka tipe data yang sesuai untuk menyajikan antrian adalah menggunakan array atau list (senarai berantai).

Antrian tersebut berisi 6 elemen, yaitu A, B, C, D, E, dan F. Elemen A terletak dibagian depan antrian dan elemen F terletak di bagian belakang antrian.

Jika terdapat elemen baru yang akan masuk, maka elemen tersebut akan diletakkan disebelah kanan F.

Jika ada elemen yang akan dihapus, maka A akan dihapus terlebih dahulu.

Seperti dalam tumpukan atau stack, maka di dalam antrian juga dikenal dua operasi dasar yaitu menambah elemen baru yang akan diletakkan di bagian belakang antrian dan menghapus elemen yang terletak di bagian depan antrian. Selain itu juga harus dilihat kondisi antrian mempunyai isi atau masih kosong.

Read more…

Categories: C++, Struktur Data

Linked List


Linked List

Konsep dasar struktur data dinamis adalah alokasi memori yang dilakukan secara dinamis. Pada konsep ini, terdapat suatu struktur yang disebut dengan struktur referensi diri (self-referential structure), mempunyai anggota pointer yang menunjuk ke struktur yang sama dengan dirinya sendiri.

Struktur data dinamis sederhana dapat dibagi menjadi empat jenis, yaitu :

  1. Linked list
  2. Stack
  3. Queue
  4. Binary tree

Definisi ini dapat dituliskan secara sederhana dengan struktur :

	struct node {
		int info;
		struct node *nextPtr;
	}

Read more…

Categories: C++, Struktur Data

Tree


Tree/Pohon

Struktur pada tree (pohon) tidak linear seperti pada struktur linked list, stack, dan queue. Setiap node pada tree mempunyai tingkatan, yaitu orang tua (parent) dan anak (child). Struktur ini sebenarnya merupakan bentuk khusus dari struktur tree yang lebih umum, setiap orang tua hanya memiliki dua anak sehingga disebut pohon biner (binary tree), yaitu anak kiri dan anak kanan.

Istilah Dasar

Tree merupakan salah satu bentuk struktur data tidak linear yang menggambarkan hubungan yang bersifat hirarkis (hubungan one to many) antara elemen-elemen. Tree dapat didefinisikan sebagai kumpulan simpul/node dengan satu elemen khusus yang disebut root dan node, disebut sub tree/sub pohon atau cabang.

Sehingga secara sederhana pohon bisa didefinisikan sebagai kumpulan elemen yang salah satu elemennya disebut dengan akar (root) dan elemen yang lainnya (simpul), terpecah menjadi sejumlah himpunan yang saling tidak berhubungan satu dengan yang lainnya.

  • Predecessor     :     node yang berada di atas node tertentu
  • Successor    :    node yang dibawah node tertentu
  • Ancestor    :    seluruh node yang terletak sebelum node tertentu dan terletak sesudah pada jalur yang sama
  • Descendant    :    seluruh node yang terletak sesudah node tertentu dan terletak sesudah pada jalur yang sama
  • Parent    :    predecessor satu level diatas suatu node
  • Child    :    successor satu level dibawah suatu node

Read more…

Categories: C++, Struktur Data

Senarai Berantai


Senarai Berantai

Dalam pemakaian sehari-hari istilah senarai berantai (list) adalah kumpulan linier sejumlah data. Contohnya seperti daftar belanja harian, dimana setiap harinya daftar belanjaan tersebut dapat berubah-ubah. Ada yang dihapus jika barang telah dibeli atau ditambahkan barang baru yang akan dibeli.

Telah kita ketahui bahwa penggunaan pointer sangat mendukung dalam pembentukan struktur data dinamis. Salah satu struktur data dinamis yang paling sederhana adalah senarai berantia (linked list), atau senari satu arah (one-way list). Dengan demikian senarai berantai adalah kumpulan komponen yang disusun secara berurutan dengan bantuan pointer.Masing-masing komponen dinamakan dengan simpul (node). Sehingga setiap simpul dalam senarai berantai teragi menjadi dua bagian. Bagian pertama disebut medan informasi, berisi informasi yang akan disimpan dan diolah. Bagian kedua disenut penghubung (link field), berisi alamat simpul berikutnya.

[download page]

[end-of-file]

Categories: C++, Struktur Data
%d bloggers like this: