Pengenalan Pemrograman Struktur Data

Dalam ilmu komputer, struktur data adalah cara menyimpan, mengatur, dan mengatur data pada media penyimpanan komputer agar dapat digunakan secara efisien. Dalam teknologi pemrograman, struktur data mengacu pada tata letak data yang berisi kolom-kolom data, baik kolom yang terlihat oleh pengguna maupun kolom yang hanya digunakan untuk keperluan pemrograman dan tidak terlihat oleh pengguna.
Setiap baris dalam kumpulan kolom disebut record. Lebar kolom data dapat berubah. Beberapa kolom secara dinamis mengubah lebarnya sebagai respons terhadap masukan pengguna, sementara kolom lainnya memiliki lebar tetap. Properti ini memungkinkan struktur data digunakan untuk pemrosesan database (untuk tujuan seperti data keuangan) atau pemrosesan kata di mana kolom berubah secara dinamis.
Contoh struktur data adalah file spreadsheet, database, file pengolah kata, gambar terkompresi, dan kompresi file dengan teknik tertentu yang memanfaatkan struktur data (http://id.wikipedia.org/wiki/Struktur_data).
Kumpulan data (database) adalah kumpulan elemen data terkait dalam database. Ringkasnya, database adalah tabel yang berisi baris, disebut juga catatan, dan kolom atau bidang. Setiap baris mewakili item data terkait. Misalnya, tabel berisi kolom nama, alamat, tanggal lahir, dan pekerjaan. Oleh karena itu, kumpulan data berisi data individu yang terdiri dari nama, alamat, tanggal lahir, dan pekerjaan (http://id.wikipedia.org/wiki/Record).
Array
Array adalah tipe data terstruktur dalam ilmu komputer yang dapat menyimpan data dalam jumlah besar dengan nama yang sama, menempati lokasi memori yang berdekatan (contiguous), dan memiliki tipe data yang sama.
Array dapat diakses berdasarkan indeks. Indeks array biasanya dimulai dari 0, dan beberapa array dimulai dari angka bukan nol. Array biasanya diakses melalui loop.
Array Satu Dimensi
Array satu dimensi Array satu dimensi adalah tipe array dasar dan tipe array yang paling umum digunakan.
Penggunaan array satu dimensi terutama digunakan dengan tipe data string (terutama pada bahasa pemrograman C).
Array Due Dimensi
Array dua dimensi Array dua dimensi juga merupakan tipe array. Array dua dimensi sering digunakan dalam pemrograman untuk merepresentasikan tabel dan matriks.
dalam sekitar bahasa pemrograman array Bahasa Pascal
Array dalam bahasa Pascal dapat didefinisikan dengan indeks awal dan indeks akhirnya.
Contoh:
Bahasa C
Array dalam bahasa C selalu dimulai dari indeks 0. Array dapat didefinisikan secara statis atau dinamis. Ketika didefinisikan sebagai statis, ukuran array tetap sama dari awal program hingga akhir. Ketika didefinisikan secara dinamis, ukuran array dapat berubah selama eksekusi program karena adanya cadangan ruang di memori heap. Proses pemesanan ruang disebut alokasi. Di sisi lain, operasi pelepasan memori cadangan dilepaskan sebagai rilis.
Contoh Array statik:
Contoh Array dinamik:
Bahasa Java
Di Java, tipe data Array direpresentasikan sebagai objek khusus. Oleh karena itu, array yang dibuat selalu dinamis dalam bahasa Java. Namun, meskipun array bersifat dinamis dalam bahasa Java, array tidak perlu dibuang karena hal ini dilakukan secara otomatis melalui prosedur yang disebut pengumpulan sampah.
Sama seperti bahasa C, indeks larik selalu dimulai dari 0.
Contoh:
PHP
Seperti di JAVA, di PHP array adalah sebuah objek, atau lebih tepatnya peta yang diurutkan. Ada dua jenis array di PHP: array terindeks (array sederhana) dan array asosiatif (array kunci => nilai). Dalam PHP, elemen array dapat berupa string, angka, nilai boolean, tipe data primitif lainnya (termasuk array), dan juga dapat berupa elemen array lainnya.
Cara medefinisikan array :
Contoh indexed array (simple array):
Contoh associated array:
Pranala Luar
(Inggris) PHP: Array Manual
(Indonesia) Conditional, Array & Perulangan di PHP
Dalam ilmu komputer, tumpukan adalah kumpulan objek yang menggunakan prinsip LIFO (Last In First Out). Data terakhir yang dimasukkan adalah yang pertama keluar dari tumpukan. Tumpukan dapat diimplementasikan sebagai representasi tertaut atau representasi berkelanjutan (menggunakan tabel tetap). 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 :
Push (input E : typeelmt, input/output data : stack): menambahkan sebuah elemen ke stack
Pop (input/output data : stack, output E : typeelmt ) : menghapus sebuah elemen stack
IsEmpty ()
IsFull ()
dan beberapas selektor yang lain (http://id.wikipedia.org/wiki/Stack_(struktur_data)
Dalam ilmu komputer, sebuah Pohon adalah suatu struktur data yang digunakan secara luas yang menyerupai struktur pohon dengan sejumlah simpul yang terhubung.
Simpul (node)
Node dapat berisi nilai, kondisi, atau mendeskripsikan struktur data lain atau bagian dari pohon itu sendiri. Setiap simpul dalam pohon mempunyai nol atau lebih simpul anak pada pohon di bawahnya (sesuai konvensi, tidak seperti alam, pohon tumbuh ke bawah). Node yang memiliki node anak disebut node induk, node leluhur, atau node induk. Sebuah node dapat memiliki paling banyak satu ayah. Ketinggian pohon adalah panjang jalur maksimum dari simpul ini ke daun. Tinggi akar sama dengan tinggi pohon. Kedalaman suatu node adalah panjang jalur menuju akar node tersebut.
Akar (Root nodes)
Simpul teratas dari pohon adalah akar (root node). Node akar merupakan node paling atas sehingga tidak mempunyai node induk. Ini biasanya merupakan simpul di pohon tempat operasi dimulai (walaupun beberapa algoritma dimulai dari daun dan berakhir di akar). Semua node lainnya dapat dijangkau dari root dengan menelusuri tepi atau link. (Definisi resminya adalah bahwa setiap jalan adalah tipikal). Pada diagram, ini khusus pada gambar di atas. Beberapa pohon, seperti pohon cluster, memiliki sifat khusus pada akarnya. Setiap node dalam pohon dapat dipandang sebagai akar dari subpohon yang berakar pada node tersebut.
Daun (Leaf nodes)
9, 14, 19, 67 dan 76 adalah daun.
Semua simpul pada tingkat terbawah pohon disebut daun. Karena mereka berada di urutan terbawah dalam hierarki, mereka tidak memiliki anak. Daun seringkali merupakan simpul yang paling jauh dari akar. Dalam teori graf, daun adalah sudut 1 yang bukan merupakan akar (kecuali pohon hanya mempunyai satu sudut, dalam hal ini akar juga merupakan daun). Setiap pohon memiliki setidaknya satu daun. Dalam pohon berdasarkan pemrograman genetik, daun (disebut juga terminal) adalah bagian terluar dari pemrograman pohon. Dibandingkan dengan fungsi dan node internal, daun tidak memiliki argumen. Leaf-GP sering kali menjadi masukan ke program.
Simpul dalam (Internal nodes)
Simpul internal adalah setiap simpul di pohon yang memiliki simpul anak dan bukan merupakan daun. Beberapa pohon hanya menyimpan data di dalam node internal, sehingga memengaruhi dinamika penyimpanan data di dalam pohon.
Misalnya, jika daunnya kosong, Anda bisa memelihara pohon kosong dengan satu daun. Namun, untuk sheet yang dapat menyimpan data, tidak mungkin menyimpan pohon kosong kecuali Anda menempatkan penanda data pada sheet untuk menunjukkan bahwa sheet tersebut kosong (dan oleh karena itu pohon tersebut juga harus kosong). Sebaliknya, beberapa pohon hanya menyimpan data di daunnya dan menggunakan node internal untuk menyimpan metadata lainnya. Seperti nilai jarak untuk subpohon yang berakar pada node tersebut. Jenis pohon ini cocok untuk jarak yang meragukan.
Sub pohon (Subtrees)
Subpohon adalah bagian dari pohon struktur data yang dapat dipandang sebagai pohon terpisah. Setiap simpul pada pohon P, bersama dengan semua simpul di bawahnya, membentuk subpohon dari P. Subpohon yang terhubung ke akar membentuk keseluruhan pohon. Subpohon yang terhubung ke node lain disebut subpohon sejati.
Penyusunan pohon
Ada dua jenis pohon. Pohon tidak berurutan adalah pohon dalam arti struktural murni yang memberikan simpul tanpa urutan kepada turunannya. Pohon yang urutannya ditentukan dengan memberikan bilangan asli yang berbeda pada setiap anak dari suatu simpul disebut pohon terurut, dan struktur data yang tertanam di dalamnya disebut struktur data pohon terurut. Sejauh ini, pohon terurut merupakan bentuk umum dari struktur data pohon. Pohon biner terurut adalah jenis pohon terurut.
Hutan
Sebuah hutan adalah sebuah himpunan yang terdiri dari pohon terurut. Lintasan inorder, preorder, dan postorder didefinisikan secara rekursif untuk hutan.
inorder
lewati inorder hutan yang dibentuk oleh sub pohon yang pertama dalam hutan, jika ada
kunjungi akar dari pohon pertama.
lewati inorder hutan yang dibentuk oleh sisa pohon dalam hutan, jika ada.
preorder
kunjungi akar dari pohon pertama.
lewati preorder hutan yang dibentuk oleh sub pohon yang pertama dalam hutan, jika ada
lewati preorder hutan yang dibentuk oleh sisa pohon dalam hutan, jika ada.
postorder
lewati postorder hutan yang dibentuk oleh sub pohon yang pertama dalam hutan, jika ada
lewati postorder hutan yang dibentuk oleh sisa pohon dalam hutan, jika ada.
kunjungi akar dari pohon pertama.
Penggambaran pohon
Ada banyak cara untuk merepresentasikan pohon. Dalam representasi umum, node dialokasikan di heap dan direpresentasikan sebagai catatan yang terkait dengan anak-anaknya, orang tua, atau keduanya, atau sebagai data material dalam array, dan hubungan di antara mereka akan diwakili oleh posisinya. Array dapat ditentukan (seperti tumpukan biner).
Pohon sebagai grafik
Dalam teori graf, pohon adalah graf asiklik terhubung. Pohon berakar adalah graf yang mempunyai satu sudut luar sebagai akarnya. Dalam hal ini, dua simpul yang dihubungkan oleh sebuah sisi mewarisi hubungan induk-anak. Grafik asiklik yang berisi sejumlah besar komponen terhubung atau sekumpulan pohon berakar kadang-kadang disebut hutan.
Metode traversal
Dalam pengertian hubungan antara orang tua dan anak, berjalan melalui bahan kayu disebut berjalan melalui pohon, dan tindakan ini disebut jalan melalui pohon. Operasi seringkali dapat dilakukan sebagai penunjuk ke node tertentu. Tur yang setiap node induknya dikunjungi sebelum node turunannya disebut tur preorder. Jalan-jalan yang dikunjungi anak-anak sebelum bapaknya masing-masing disebut jalan pasca-pesanan.