Kamis, 04 Maret 2010

ORGANISASI LOGIK DAN FISIK DARI STRUKTUR DATA

               ORGANISASI LOGIK DAN FISIK DARI STRUKTUR DATA

           Memori komputer dapat kita bayangkan terdiri atas barisan atau untai sel-sel (masingmasing sel berisi satu binary digit atau bit) dengan alamatnya sekaligus. Setiap untai dirangkai dari sejumlah bit yang ditentukan jumlahnya dalam satu untai oleh model komputer tertentu.

           Struktur data terdiri dari satuan data sederhana yang cocok untuk program yang memakainya. Hubungan antara satuan data tersebut membentuk salah satu ciri dari struktur yang bersangkutan. Jika sebuah struktur data langsung tersedia dalam bahasa pemrograman (misalnya array terdapat di dalam FORTRAN), maka struktur data tersebut langsung dapat dipakai. Jika struktur tersebut tidak tersedia, maka pemrogram harus membuatnya terlebih dahulu dari tipe data yang tersedia. Berhubung struktur data tersebut harus dimasukkan ke dalam memori berupa untai bit, maka setiap struktur diberi ciri oleh organisasi logikal (perlu ada hubungan antar komponen sewaktu diaplikasikan), dan oleh organisasi fisikal (penempatan dalam memori).

            Jika satuan data sederhana dapat membentuk sebuah struktur yang lebih hemat dalam memori, maka struktur data tersebut disatukan: beberapa satuan data ditempatkan sebagai satu untai. Struktur tersebut tidak dapat langsung ditujukan kepada sebuah alamat (yang bisa hanyalah sebuah untai atau byte); untuk itu haruslah diusahakan melalui proses pemrograman.

           Jika menggunakan penyajian secara sekuensial, maka komponen struktur data ditempatkan ke dalam lokasi memori secara berurutan. Hubungan antara komponen komponen tersebut tidak nampak dari proses mereka.

Contoh 1.3

         Sebuah himpunan data logikal (masing-masing sepanjang 1 bit) dapat dijadikan untai 16 bit memakai 16 elemen himpunan ke dalam satu untai. Dua cara utama untuk menempatkan memori terdapat di dalam struktur tingkat tinggi seperti daftar.

        Cara lain adalah penyajian secara berkait, atau linked. Di sini setiap komponen dari struktur data dilengkapi dengan satu atau beberapa satuan data tambahan, yang dipergunakan untuk melakukan hubungannya dengan komponen yang ada di sekelilingnya. Satuan data tambahan seperti itu disebut pointer atau link atau penuding yang berisikan alamat memori dari satuan data lain di dalam struktur data. Dengan adanya pointer tersebut, akan terjalin relasi antar komponen dalam struktur data tersebut

        Penyajian data secara sekuensial bersifat sangat kaku. Hal ini disebabkan karena untuk menghapus komponen dari struktur dan menyisipkan komponen ke dalamnya, hanya dapat dilakukan melalui reorganisasi fisik dari struktur di dalam memori. Oleh karena itu, ia baru dapat diaplikasikan dengan baik apabila komposisi dari struktur tersebut tidak banyak berubah selama pelaksanaan program yang bersangkutan.

         Penyajian dengan cara berkait (linked) bersifat lebih fleksibel, karena untuk mengadakan perubahan struktural, kita cukup melakukan perubahan beberapa pointer saja. Oleh sebab itu, penyajian berkait ini cocok bagi struktur data yang dinamis. Tingkat  keluwesan tersebut terdapat dalam ruang memori dan waktu yang dibutuhkan, guna mengarahkan pointer yang bersangkutan, yang juga merupakan elemen struktural.

         Jika kita memakai sistem penyajian berkait, maka jumlah memori yang tersedia bagi struktur data, dibagi menjadi dua bagian. Satu bagian menampung struktur yang ada tersebut, sedangkan bagian yang lain (disebut ruang yang tersedia), merupakan tempat cadangan, untuk menampung komponen yang masih ''kosong.'' Jika diperlukan sebuah ruang untuk menempatkan komponen baru, maka akan diambilkan dari ruang cadangan tersebut.

           Jika suatu komponen tidak dibutuhkan lagi, maka ruang dikembalikan kepada tempat cadangan yang bersangkutan. Ada kalanya juga terjadi bahwa komponen yang tidak dibutuhkan lagi dikumpulkan secara periodik untuk dikembalikan ke tempat cadangan.

Tidak ada komentar:

Posting Komentar