STRUKTUR DATA
Dalam istilah ilmu komputer, sebuah struktur data adalah cara penyimpanan, penyusunan
dan pengaturan data di dalam media penyimpanan komputer sehingga data tersebut dapat
digunakan secara efisien.
Dalam teknik pemrograman, struktur data berarti tata letak data yang berisi kolom-kolom
data, baik itu kolom yang tampak oleh pengguna (user) atau pun kolom yang hanya
digunakan untuk keperluan pemrograman yang tidak tampak oleh pengguna. Setiap baris dari
kumpulan kolom-kolom tersebut dinamakan catatan (record). Lebar kolom untuk data dapat
berubah dan bervariasi. Ada kolom yang lebarnya berubah secara dinamis sesuai masukan
dari pengguna, dan juga ada kolom yang lebarnya tetap. Dengan sifatnya ini, sebuah struktur
data dapat diterapkan untuk pengolahan database (misalnya untuk keperluan data keuangan)
atau untuk pengolah kata (word processor) yang kolomnya berubah secara dinamis. Contoh
struktur data dapat dilihat pada berkas-berkas lembar-sebar (spreadsheet), pangkal-data
(database), pengolahan kata, citra yang dipampat (dikompres), juga pemampatan berkas
dengan teknik tertentu yang memanfaatkan struktur data.
*Tahapan Pembuatan Struktur Data :
1. Tahap
Spesifikasi atau pendeskripsian struktur data menyatakan apa yang dapat dilakukan struktur
data, bukan cara penempatannya. Pendeskripsian ini melibatkan level logic sehingga dapat
digunakan konvensi matematika untuk menyatakan sifat-sifat struktur data yang dikehendaki.
2 . Tahap Kedua
Implementasi menyatakan cara penerapan struktur data dengan struktur data yang telah ada.
Implementasi struktur dataadalah proses pendefinisian tipe data abstark sehingga semua
operasi dapat dieksekusi computer. Implementasi berisi dekklarasi struktur penyimpanan item
data serta algoritma untuk implementasi operasi, sehingga menjamin terpenuhinya
karakteristik struktur data, relasi item data tau invariant pada struktur data tersebut.
3. Tahap Ketiga
Pemrograman struktur data adalah penterjemahan menjadi pernyataan dalam bahasa
pemrograman tertentu.struktur data dibangun menggunakan fasilitas pembentukkan atau
pembuatan struktur data yang disediakan bahasa seperti array, record dan lain-lain.
terstruktur, atau tipe larik lain. Nama lain array adalah Larik, tabel, atau vektor
b. Record(Catatan)
ADT adalah definisi tipe dan sekumpulan primitif (operasi dasar) terhadap tipe tersebut. Tipe
diterjemahkan menjadi tipe terdefinisi dalam bahasa pemrograman yang bersangkutan.
2. Struktur Data Majemuk
a. Linier
Stack(Tumpukan)
Stack (tumpukan) adalah list linier yang dikenali elemen puncaknya (top), aturan penyisipan
dan penghapusan elemennya tertentu (penyisipan selalu dilakukan di atas (top),
penghapusan selalu dilakukan pada top). Karena aturan penyisipan dan penghapusan
semacam itu, top adalah satu-satunya alamat tempat terjadi operasi. Elemen yang
ditambahkan paling akhir akan menjadi elemen yang akan dihapus. Dikatakan bahwa elemen
stack akan tersusun secara LIFO (Last In First Out).
Dalam ilmu komputer, stack atau tumpukan merupakan sebuah koleksi objek yang
menggunakan prinsip LIFO (Last In First Out), yaitu data yang terakhr kali dimasukkan akan
pertama kali keluar dari stack tersebut. Stack dapat diimplementasikan sebagai representasi
berkait atau kontigu (dengan tabel fix). Ciri Stack :
Elemen TOP (puncak) diketahui
penisipan dan penghapusan elemen selalu dilakukan di TOP
LIFO
Pemanfaatan Stack :
Perhitungan ekspresi aritmatika (posfix)
algoritma backtraking (runut balik)
algoritma rekursif
Operasi Stack yang biasanya :
1. Push (input E : typeelmt, input/output data : stack): menambahkan sebuah elemen ke stack
2. Pop (input/output data : stack, output E : typeelmt ) : menghapus sebuah elemen stack
3. IsEmpty ()
4. IsFull ()
5. dan beberapas selektor yang lain
Queue(Antrian)
Queue (antrian) adalah list linier yang dikenali elemen pertama (head) dan elemen
terakhirnya (tail);Queue juga berarti salah satu bentuk struktur data yang juga
merepresentasikan linked list. Dimana yang berbeda dalam queue tersebut adalah cara
menambah data dan mengambil data. Sesuai dengan namanya yaitu queue atau antrian, data
yang dimasukan dari belakang (insertAtBack), sehingga data yang pertama kali dimasukan
berada pada node pertama, dan data yang dimasukan terakhir juga akan berada pada node
yang terakhir. Dimana untuk pengambilan proses pengambilan datanya, yang diambil adalah
data pertama, dan setelah data pertama diambil maka node yang berisi data pertama tersebut
akan di-null kan, sehingga posisi node pertama akan berpindah pada node setelah node
pertama tersebut. Proses ini biasanya disebut dengan FIFO, atau First In First Out. Method
yang digunakan untuk memasukan data kedalam queue tersebut dinamakan enqueue dan
yang untuk mengambil data dinamakan dequeu. Untuk representasinya dalan Java dan C#
bisa didownload melalui link dibawah ini.Dimana untuk pengambilan proses pengambilan
datanya, yang diambil adalah data pertama, dan setelah data pertama diambil maka node yang
berisi data pertama tersebut akan di-null kan, sehingga posisi node pertama akan berpindah
pada node setelah node pertama tersebut. Proses ini biasanya disebut dengan FIFO, atau First
In First Out. Implementasi Queue di Java [NetBeansProject]Implementasi Queue di Java
[SourceCode] Implementasi Queue di C# [VisualStudioProject]
3
b. Non-Linier
Binary Tree (Pohon Biner)
Sebuah pohon biner (binary tree) adalah himpunan terbatas yang mungkin kosong atau terdiri
dari sebuah simpul yang disebut sebagai akar dan dua buah himpunan lain yang disjoint yang
merupakan pohon biner yang disebut sebagai sub pohon kiri (left) dan sub pohon kanan
(right) dari pohon biner tersebut. Pohon biner merupakan tipe yang sangat penting dari
struktur data dan banyak dijumpai dalam berbagai terapan. Karakteristik yang dimiliki oleh
pohon biner adalah bahwa setiap simpul paling banyak hanya memiliki dua buah anak, dan
mungkin tidak punya anak. Istilah-istilah yang digunakan sama dengan istilah pada pohon
secara umum.
Graph (Graf)
Graph merupakan struktur data yang paling umum. Jika struktur linier memungkinkan
pendefinisian keterhubungan sekuensial antara entitas data, struktur data tree memungkinkan
pendefinisian keterhubungan hirarkis, maka struktur graph memungkinkan pendefinisian
keterhubungan tak terbatas antara entitas data. Banyak entitas-entitas data dalam masalah-
masalah nyata secara alamiah memiliki keterhubungan langsung (adjacency) secara tak
terbatas demikian. Contoh: informasi topologi dan jarak antar kota-kota di pulau Jawa. Dalam
masalah ini kota X bisa berhubungan langsung dengan hanya satu atau lima kota lainnya.
Untuk memeriksa keterhubungan dan jarak tidak langsung antara dua kota dapat diperoleh
berdasarkan data keterhubungan-keterhubungan langsung dari kota-kota lainnya yang
memperantarainya. Representasi data dengan struktur data linier ataupun hirarkis pada
masalah ini masih bisa digunakan namun akan membutuhkan pencarian-pencarian yang
kurang efisien. Struktur data graph secara eksplisit menyatakan keterhubungan ini sehingga
pencariannya langsung (straightforward) dilakukan pada strukturnya sendiri
2. Database
Database bisa dikatakan sebagai suatu kumpulan dari data yang tersimpan dan diatur atau
diorganisasikan sehingga data tersebut bisa diambil atau dicari dengan mudah dan efisien.
Sebagai contoh sederhana dari database adalah buku telepon yang mungkin sering Anda
lihat.Bagaimana halnya dengan database dengan sistem database dengan menggunakan
komputer? Hal tersebut sama saja seperti database yang sifatnya manual (seperti contoh buku
telepon di atas) hanya saja dengan adanya komputer maka informasi yang ada di dalam
database akan sangat mudah untuk di-update dan sangat cepat untuk dicari. Software atau
aplikasi yang bertugas untuk mengatur, menyimpan, memodifikasi data disebut dengan
software database engine dan lebih resminya disebut dengan DBMS (Database Management
System). Ada banyak sekali aplikasi DBMS ini mulai yang berjalan di komputer personal
(PC) sampai ke komputer skala mainframe. Contoh-contoh dari aplikasi database engine
misalnya seperti:
SQL Server, dibuat oleh Microsoft.
MS Access, dibuat oleh Microsoft.
Oracle Database, dibuat oleh Oracle.
MySQL, dibuat oleh MySQL AB.
Firebird, dibuat oleh komunitas open source berdasarkan dari kode Interbase.
PostgreSQL, dibuat oleh komunitas open source.
DB2, dibuat oleh IBM.
3. Data Set
Istilah untuk sekelompok record data yang sama dan saling terhubung dalam memori
computer.
4. Data bit
Sekelompok bit yang digunakan untuk menggambarkan satu karakter:character data untuk
transmisi:trans...
5. Enkapsulasi (Pembungkusan)
Variabel dan method yang dipunyai suatu obyek, bisa ditentukan hak aksesnya.
Definisi enkapsulasi: Pembungkusan variabel dan method dalam sebuah obyek yang
terlindungi.
Definisi enkapsulasi: menyembunyikan cara kerja dan sistem.
Dalam OOP, konsep enkapsulasi sebenarnya merupakan perluasan dari struktur dalam bahasa
C.
Artikel ini saya buat sebagai bahan pembelajaran untuk meningkatkan pengetahuan pada Struktur Data dalam
Pemrograman.
Tipe Data adalah jenis data yang mampu ditangani oleh suatu bahasa pemrograman pada komputer.
Tiap-tiap bahasa pemrograman memiliki Tipe Data yang memungkinkan:
1. Deklarasi terhadap variabel tipe data tersebut
2. Menyediakan kumpulan operasi yang mungkin terhadap variabel bertipe data tersebut
3. Jenis obyek data yang mungkin
4. Contoh tipe data di C? Java? Pascal? .NET?
Obyek Data adalah kumpulan elemen yang mungkin untuk suatu tipe data tertentu.
Mis: integer mengacu pada obyek data -32768 s/d 32767, byte 0 s/d 255, string adalah kumpulan karakter
maks 255 huruf
Struktur Data adalah cara penyimpanan dan pengorganisasian data-data pada memori komputer
maupun file secara efektif sehingga dapat digunakan secara efisien, termasuk operasi-operasi di
dalamnya.
Di dalam Struktur Data kita berhubungan dengan 2 aktivitas:
1. Mendeskripsikan kumpulan obyek data yang sah sesuai dengan tipe data yang ada
2. Menunjukkan mekanisme kerja operasi-operasinya
Contoh: integer (-32768 s/d 32767) dan jenis operasi yang diperbolehkan adalah +, -, *, /, mod, ceil, floor,
<, >, != dsb.
Jadi Struktur Data = obyek data + [operasi manipulasi data]
5
Algoritma merupakan alur penyelesaian masalah atau cara penyelesaian masalah dalam hal ini tentang
pemrograman. Hubungan Struktur Data dengan Algoritma yaitu dengan pemilihan struktur data
yang baik, maka problem yang kompleks dapat diselesaikan sehingga algoritma dapat digunakan
secara efisien, operasi-operasi penting dapat dieksekusi dengan sumber daya yang lebih kecil,
memori lebih kecil, dan waktu eksekusi yang lebih cepat. Tidak semua struktur data baik dan sesuai.
Contoh untuk problem data bank: pengupdate-an harus cepat, sedangkan
penambahan/penghapusan data boleh lebih lambat.
Struct adalah tipe data bentukan yang berisi kumpulan variabel-variabel yang bernaung dalam satu nama
yang sama dan memiliki kaitan satu sama lain. Berbeda dengan array hanya berupa kumpulan
variabel yang bertipe data sama, struct bisa memiliki variabel-variabel yang bertipe data sama atau
berbeda, bahkan bisa menyimpan variabel yang bertipe data array atau struct itu sendiri. Variabel-
variabel yang menjadi anggota struct disebut dengan elemen struct.
Bentuk umum:
typedef struct <nama_struct> {
tipe_data <nama_var>;
tipe_data <nama_var>;
....
}
Sumber : http://blog-arul.blogspot.com/2012/01/perbedaan-tipe-data-obyek-data-
dan.html#ixzz1mK77LYFs