STRUKTUR DATA
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.
*Jenis Struktur Data
1. Struktur Data Sederhana
a. Array(Larik)
Larik adalah struktur data statik yang menyimpan sekumpulan elemen yang bertipe sama. Setiap elemen diakses langsung melalui indeksnya. Indeks larik harus tipe data yang menyatakan keterurutan misalnya integer atau karakter. Banyaknya elemen larik harus sudah diketahui sebelum program dieksekusi. Tipe elemen larik dapat berupa tipe sederhana, tipe 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.
a. Array(Larik)
Larik adalah struktur data statik yang menyimpan sekumpulan elemen yang bertipe sama. Setiap elemen diakses langsung melalui indeksnya. Indeks larik harus tipe data yang menyatakan keterurutan misalnya integer atau karakter. Banyaknya elemen larik harus sudah diketahui sebelum program dieksekusi. Tipe elemen larik dapat berupa tipe sederhana, tipe 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
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).
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]
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]
· List dan Multi-List (Daftar)
List
linier adalah sekumpulan elemen bertipe sama, yang mempunyai
keterurutan tertentu, yang setiap elemennya terdiri dari 2 bagian.
sebuah list linier dikenali dengan (1) elemen pertamanya, biasanya melalui alamat elemen pertama yang disebut (first); (2) Alamat elemen berikutnya (suksesor), jika kita mengetahui alamat sebuah elemen, yang dapat diakses melalui field next;
(3) Setiap elemen mempunyai alamat, yaitu tempat elemen disimpan dapat
diacu. Untuk mengacu sebuah elemen, alamat harus terdefinisi. Dengan
alamat tersebut informasi yang tersimpan pada elemen list dapat diakses; (4) Elemen terakhirnya.
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
*Istilah penting dalam struktur data :
1. Data
Data adalah deskripsi dari sesuatu dan kejadian yang kita hadapi(data is the description of things and events that we face). Data adalah kenyataan yang menggambarkan suatu kejadian-kejadian dan kesatuan nyata. Kejadian (event)
adalah sesuatu yang terjadi pada saat tertentu. Sebagai contoh, dalam
dunia bisnis kejadian-kejadian nyata yang sering terjadi adalah
perubahan dari suatu nilai yang disebut dengan transaksi. Misalnya
penjualan adalah transaksi perubahan nilai barang menjadi nilai uang
atau nilai piutang dagang. Kesatuan nyata(fact and entity) adalah
berupa suatu obyek nyata seperti tempat, benda dan orang yang
betul-betul ada dan terjadi.Sumber dari informasi adalah data. Data
merupakan bentuk jamak dari bentuk tunggal data-item. Data merupakan
bentuk yang belum dapat memberikan manfaat yang besar bagi penerimanya,
sehingga perlu suatu model yang nantinya akan dikelompokkan dan diproses
untuk menghasilkan informasi
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:
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.
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...
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]
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.
Ciri Algoritma yang baik menurut Donald E.Knuth:
1. Input: ada minimal 0 input atau lebih
2. Ouput: ada minimal 1 output atau lebih
3. Definite: ada kejelasan apa yang dilakukan
4. Efective: langkah yang dikerjakan harus efektif
5. Terminate: langkah harus dapat berhenti (stop) secara jelas
Bahasa
pemrograman bisa memiliki Tipe Data:
1. Built-in : sudah
tersedia oleh bahasa pemrograman tersebut
- Tidak
berorientasi pada persoalan yang dihadapi.
2. UDT : User
Defined Type, dibuat oleh pemrogram.
- Mendekati
penyelesaian persoalan yang dihadapi
Contoh: record
pada Pascal, struct pada C, class pada Java
3. ADT : Abstract
Data Type
- memperluas konsep
UDT dengan menambahkan pengkapsulan atau enkapsulasi, berisi sifat-sifat
dan operasi-operasi yang bisa dilakukan terhadap kelas tersebut.
Contoh: class
pada Java
- Bahasa C memiliki
tipe data numerik dan karakter (seperti int, float, char dan lain-lain). Disamping itu juga memiliki tipe data
enumerasi dan structure. Bagaimana jika
kita ingin membuat tipe data baru?
- Untuk pembuatan
tipe data baru digunakan keyword typedef
Bentuk umum:
typedef <tipe_data_lama>
<tipe_data_baru>
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>;
....
}
Cara penggunaan
struct dan pengaksesan elemen-elemennya :
1. Penggunaan/pemakaian
tipe data struct dilakukan dengan membuat suatu variabel yang bertipe data
struct tersebut
2. Pengaksesan
elemen struct dilakukan secara individual dengan menyebutkan nama variabel
struct diikuti dengan operator titik (.)
sangat Bermanfaat, lanjutkan.
BalasHapuskunjungi..<-
Terima kasih , membantu
BalasHapusok min
BalasHapusok min,
Mesin pemisah lcd
Trimksh sangt membantu🙏
BalasHapusMANTAP MIn
BalasHapus