PEMETAAN KE STORAGE : KARAKTER DAN STRING
Banyak aturan yang dapat kita gunakan untuk menyatakan tipe data karakter dalam
storage. Dua di antaranya sangat terkenal, yakni Extended Binary Coded Decimal
Interchange Code (EBCDIC) dan American Standard Code for Information
Interchange(ASCII).
EBCDIC, yang dikembangkan oleh IBM, adalah kode 8 bit. Di sini dibutuhkan
8 binary digit (bit) untuk menyatakan satu karakter dalam alfabet: Dalam 8 bit terdapat
28 (=256) kemungkinan. Nyata bahwa pada EBCDIC, cukup banyak macam karakter
yang dapat digunakan. Di sini meliputi huruf besar serta kecil, digit numerik dan
banyak karakter khusus.
ASCII adalah cara pengkodean 7 bit. Terdapat 27 (=128) kemungkinan, separuh
dari yang dimiliki EBCDIC. Penggunaan ASCII ini disebabkan karena lebih sedikitnya
storage yang dipakai, serta lalu lintas data karakter tersebut dapat lebih cepat.
Selain kedua cara pengkodean tersebut di atas, masih terdapat banyak cara lagi, di antaranyaadalah cara BCD (Binary Coded Decimal) yang menggunakan 4 bit setiap karakternya.
Integer Binary sign-and-magnitude Two’s complement
Selain itu, di antara sekian banyak cara mapping ke storage terhadap karakter tersebut,
ada suatu cara yang sengaja diciptakan untuk aplikasi khusus, seperti kode Huffman.
Di sini, Karakter disajikan oleh bit yang banyaknya variabel, tergantung pada frekuensi
relatif kemunculan karakter tersebut dalam vocabulary dari aplikasi. Karakter yang sering
muncul dinyatakan dalam pola bit yang lebih pendek, sedangkan karakter yang jarang
muncul, dinyatakan dalam pola bit yang lebih panjang.
Sebagai contoh dalam aplikasi khusus, karakter 0, dinyatakan dalam single bit 0,
karakter A dinyatakan dalam 5 bit 10101, sedangkan karakter % (sangat jarang
muncul) dinyatakan dalam 16 bit 1011111111111001. Apabila dihitung, rata-rata
penggunaan bit adalah 2.91 bit/ karakter.
Banyak komputer memperkenankan pemrogram menggunakan berbagai kode
pada sebuah program. Sebagai contoh, pada COBOL, data dapat dibaca dan ditulis
ke file menggunakan EBCDIC, pada tape drive misalnya. Data lain dapat dibaca/
ditulis dengan ASCII, misalnya pada peralatan input/output terminal. Data lain
mungkin dalam kode yang lain pula.
Apabila suatu mapping karakter digunakan untuk menyatakan integer, tanda plus
atau minus harus ikut disimpan. Secara umum, tanda ini disimpan di sebelah kanan
digit dari bilangan.
Banyak kompilator menawarkan pilihan lain untuk mapping integer. Yang paling
luas digunakan adalah bentuk packed-decimal. Di sini data numerik disimpan dengan
menggunakan 2 digit setiap 8 bit, tidak seperti EBCDIC 1 digit setiap 8 bit. Pada 8
bit terakhir disimpan selain digit derajat terendah, juga tanda dari bilangan tersebut.
Berikut ini perbandingan kode EBCDIC, ASCII, dan packed-decimal untuk
menyatakan +903 dan -903.
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 komponenkomponentersebut 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
diper-gunakan 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.
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
sumber : Seri Diktat Kuliah Pengantar Struktur Data, Universitas Gunadarma
Senin, 22 Februari 2010
Langganan:
Posting Komentar (Atom)
Tidak ada komentar:
Posting Komentar