Makalah Pemrosesan File dan Konsep Manajemen Data
PEMBAHASAN
1.
Mengenal Berbagai Istilah
1.1 Field, Unsur Data, Atribut, dan
Elemen-elemen
Istilah-istilah
field, unsur data, atribut, dan elemen digunakan secara
bergantian untuk menyebutkan blok data terkecil yang disimpan dan digunakan
dalam sistem informasi. Contoh-contoh field adalah :
1.
nama pelanggan
2.
nomor tunjangan social karyawan
3.
nomor pesanan pembelian
Pengelompokan
logis atas field disebut Catatan (record). Berikut ini
adalah struktur catatan:
NAMA-CATATAN (FIELD 1, FIELD 2, … , FIELD N)
NAMA-CATATAN adalah nama
dari catatan, seperti misalnya PEMASOK atau KARYAWAN. Entri-entri merupakan nama field
individual dalam catatan. Contohnya sebagai berikut:
PELANGGAN (NOMOR AKUN, NAMA, ALAMAT, SALDO REKENING)
PELANGGAN merupakan nama catatan, dan NOMOR AKUN, NAMA, ALAMAT, dan SALDO REKENING merupakan nama field.
1.2 Okurensi
Data
Struktur catatan memiliki okurensi (occurrences),
yang juga disebut instances. Okurensi catatan adalah himpunan spesifik
nilai-nilai data untuk catatan. Sebagai contoh, untuk catatan
KARYAWAN (NAMA, NOMOR, USIA)
1.3 Panjang Catatan-Tetap dan Variabel
Catatan dengan
panjang-tetap lebih mudah untuk dimanipulasi dalam aplikasi-aplikasi
komputer dibandingkan dengan catatan dengan panjang-variabel karena ukuran
catatan dengan panjang-tetap distandarkan. Sebagian besar catatan yang disimpan
dalam direct access storage devices (DASDs) adalah catatan dengan
panjang-tetap.
Tetapi, dalam catatan
dengan panjang-variabel, lebar field dapat disesuaikan untuk setiap
okurensi data. Lebih jauh, dalam catatan dengan panjang-variabel, jumlah aktual
field dapat bervariasi dari satu okurensi ke lainnya.
Akhir sebuah variable-length record
harus ditandai dengan sebuah symbol khusus atau field record-length yang berisi
record itu sendiri. Variable-length record mampu menggunakan secara efisien
ruang penyimpanan yang tersedia. Salah satu pendekatan dalam variable-length
record yang tidak membutuhkan dukungan pemrograman system untuk struktur
variable-lengthnya adalah dengan menggunakan fixed-length trailer record. Trailer record ialah sebuah ekstensi
atau perluasan master record. Trailer record sendiri dapat ditulis dengan
segera setelah sebuah master record selesai dikerjakan, misalnya master record
biasanya hanya berisi informasi umum untuk seluruh rekening dan nomor tagihan yang
cukup untuk seluruh rekening yang ada, sementara trailer record mampu memuat
lebih banyak tagihan di dalamnya.
Terdapat
dua alasan mengapa menggunakan variable-length record:
1. Variable length karena panjang field
yang variabel
Nama
|
Umur
|
Field lain
|
Nama
|
Umur
|
Field lain
|
2. Variable length karena field yang
berbeda
A
|
B
|
C
|
D
|
E
|
A
|
C
|
E
|
Terdapat
dua metode untuk menentukan variable length:
1. Menggunakan panjang field
2. Menggunakan karakter akhir
Sebagai
contoh, sebuah perusahaan manufaktur menyimpan ratusan komponen mesin sebagai
persediaan bahan bakunya. Mereka membeli setiap komponen persediaan tersebut
dari salah satu pemasoknya dan kemudian menyimpannya di salah satu gudangnya.
Setiap komponen dapat dibeli dari satu atau lebih pemasok dan disimpan si satu
atau lebih gudang perusahaan. Berikut field data yang berisi persediaan
komponen mesin tersebut:
PART_NO nomor komponen mesin
PNAME nama komponen mesin
TYPE jenis
komponen mesin
COST biaya standar per unit
komponen mesin
PVEND nama vendor darimana komponen mesin tersebut
dibeli
WARSHE gudang tempat komponen mesin tersebut disimpan
LOC dua
digit terakhir
Untuk
kasus dua pemasok, diperlukan format record seperti berikut (misalkan hanya
terdapat satu lokasi penyimpanan):
PART (
PART_NO, PNAME, TYPE,
COST, PVEND#1, WARSHE,
LOC#1, PVEND#2, WARSHE#2, LOC#1 ).
Record ini
bahkan perlu lebih panjang lagi bila kemudian terdapat tiga pemasok sehingga
panjang record akan tergantung pada jumlah pemasok dan lokasi penyimpanan untuk
komponjen mesin. Record jenis tersebut akan menjadi variable-length record.
Variable-Length Record
|
||
NAMA RECORD
|
SUPPLIER
(Repeated group 1)
|
LOCATION
(Repeated group 2)
|
PART (PARTJMO, PNAME, TYPE, COST,
|
PVEND # 01
PVEND # 02
PVEND # 03
PVEND # 04
·
·
·
PVEND # 99
|
WARSHE # 01, LOG # 01
WARSHE # 02, LOG # 02
WARSHE # 03, LOG # 03
WARSHE # 04, LOG # 04
·
·
·
WARSHE # 99, LOG # 99
|
Repeated
Group adalah
kelompok-kelompok field terkait yang berulang kali disimpan dalam
variable-length record. Dalam beberapa kasus kita cukup menyebut repeated
groups sebagai segmen atau kelompok,
atau bahkan node. Segmen dapat
diringkas dengan cara yang sama seperti record. Sebagai contoh:
PART (PART_NO, PNAME,
TYPE, COST)
SUPPLIER (PVEND)
LOCATION (WARSHE, LOC)
Supplier dan location merupakan
repeated groups yang menjadi milik part. PART digambarkan sebagai parent dari SUUPLIER dan LOCATION
karena setiap instance PART dapat dilakukan di lebih dari satu pemasok atau
lokasi. Jadi record dan segmen pada dasarnya adalah sama. Keduanya merupakan
kumpulan field. Kenyataannya, tidak salah jika menganggap bahwa segmen adalah
record selama ia tetap diingat sebagai segmen, yang walaupun tidak seperti
record di mana segmen memiliki parent dan children.
1.4 Kunci Catatan dan Urutan File
Kunci atau kunci
catatan merupakan unsur data atau kombinasi unsur data yang secara unik
mengidentifikasikan catatan tertentu dalam file. Misalkan catatan berikut
memuat format:
PART (PART_NO, WARHSE),
dimana PART_NO merupakan nomor
komponen, dan WARHSE merupakan nomor gudang yang berkaitan dengan lokasinya.
Lebih jauh, asumsikan bahwa file memuat empat catatan berikut ini.
PART (101, 1)
PART (102, 2)
PART (103, 3)
PART (104, 4)
Dalam kasus
ini, field pertama (PART_NO) disebut kunci
sortir primer (atau disebut kunci primer), dan field kedua (WARHSE) disebut kunci sortir sekunder
(atau kunci sekunder). Setiap tambahan field yang dibutuhkan untuk
secara unik (khusus) mengidentifikasikan dan menyortir catatan disebut kunci-kunci
sortir tersier. Oleh karena itu, kunci primer adalah field yang digunakan
untuk menyortir catatan-catatan dalam file, dan kunci sekunder digunakan untuk
menentukan posisi relatif antar kumpulan catatan manakala kunci primer memiliki
nilai yang sama untuk setiap catatan-catatan dalam kumpulan.
Kita harus
menandai field kunci dengan menggarisbawahinya. Sebagai contoh, KUANTITAS (QUANTITY) adalah field
kunci untuk catatan berikut ini:
(PART (PART_NO,
WARHSE, QUANTITY)
2. Evolusi
Teknologi Database
Teknologi
database berkembang sejalan dengan perkembangan perangkat keras dan perangkat
lunak. Sejak tahun1960-an, sistem mainframe berpengaruh terhadap dunia usaha
Amerika terutama dalam hal penyimpanan dan perkembangan pesat file data.
Pembuatan jaringan dan teknologi komunikasi mengubah skala ekonomi pembuatan
database.
2.1 Lingkungan mainframe
Pada mulanya,
masalah utama berkaitan dengan jumlah file yang besar. Komputer dipandang
sebagai pengembangan sederhana dari sebuah lemari arsip, dan maslah utamanya
adalah pembuatan katalog dan akses file
2.2 Sistem
manajemen database
Lama
kelamaan,perusahaan menghadapi masalah sistem file sederhana. Kesulitan utama
termasuk menemukan file yang tepat untuk informasi yang dibutuhkan, pemborosan
karena duplikasi data yang sama dengan file yang berbeda dan kurangnya
standarisasi antar file. Maslah masalah ini berdampak pada pengembangan sistem
menejemen database(DBMS) yang membuat standar penyimpanan,manipulasi, dan
pemanggilan data. Dalam dunia usaha sekarang ini, DBMS memiliki peran yang
penting dalam pengelolaan informasi.
2.3 Layanan
informasi on-line
Salah satu
layanan database tersambung (on-line) terbesar adalah Dialog.
Databasenya mencakup informasi hampir semua topik yang penting dan mencakup
keseluruhan teks dan abstraksi dari banyak surat
kabar,majalah,jurnalperdagangan,dan laporan-laporan ekonomi yang berkaitan
dengan ribuan perusahaan diseluruh dunia. Banyak perusahaan mengumpulkan
informasi dari layanan on-line yang harus dikaitkan secara sistematis dengan
sistem informasi mereka.
2.4 Expert
system
Sistem Ahli
(expert system) membantu pengambilan keputusan tingkat tinggi dan telah sukses diterapkan
dalam beberapa area seperti pengesahan pemberian pinjaman, penentuan dimana
penggalian mineral dilakukan dan diagnosa pengobatan
2.5 Pemrograman
berorientasi-obyek
Pemrograman
berorientasi-obyek meliputi pendefinisian obyek-obyek dari daftar atau kumpulan
informasi yang rumit. Hampir semua hal dapat menjadi obyek, seperti daftar
komponen-komponen persdiaan,kelompok pelanggan atau bahkan kumpulan foto. Obyek
yang dikaitkan dengan cara khusus disebut inheritansi, untuk mempermudah
manipulasinya. Dalam sistem ini, para pemakai dapat mendefinisikan dan
memanipulasikan obyek-obyek dari data tanpa perlu menuliskan program komputer
2.6 Sistem
hiperteks
Sistem ini
memungkinkan para pemakai untuk mengambil database dengan cara random melalui
pemilihan kata-kata kunci. Misalkan pada layar monitor komputer anda membaca
artikel ensiklopedia pengendalian intern, dalam bagian tengah artikel anda akan
melihat ”lapping” dan anda memilih bagian mana yang ingin anda ketahui lebih
jauh. Untuk melakukannya, anda hanya perlu meletakkan cursor pada ”lapping” dan
memencet tuts enter. Secara otomatis layar monitor akan terbuka dan artikel pa
lapping tersebut muncul seketika.
2.7 Sistem
database intelijen
Sistem ini
merefleksikan kecendrungan penggabungan seluruh teknologi-teknologi baru,
termasuk yang paling mutakhir, ke dalam satu sistem database. Pemakai dengan
mudah dapat menyerahkan masalahya ke dalam sistem,kemudian sistem akan
memilihkan data yang diperlukan, darimana data tersebut diambil, dan bagaimana
menerapkannya untuk memecahkan masalah pemakai.
3.
Sistem Manajemen Database Dan Arsitekturnya
Terdapat 3
tingkatan arsitektur yang relevan dengan database dan manajemen database : arsitektur
tingkat konseptual, arsitektur tingkat logis, dan arsitektur tingkat
fisik.
3.1 Arsitektur Konseptual
Tidak ada satu pun pendekatan
standart untuk mengembangkan sebuah model data konseptual untuk sebuah system
tertentu. Model data entity-relationship
(E-R) merupakan salah satu pendekatan paling popular. Dalam model E-R
istilah entitas lebih banyak digunakan daripada istilah segmen, dan istilkah
atribut digunakan untuk menjelaskan field individual atau item data tertentu.
Bila ditinjau secara grafis, model E-R menggunakan kotak segiempat untuk
entitas, elips untuk atribut, dan kotak belah ketupat untuk menggambarkan
hubungan/relasi.
Metode konseptual lainnya yang biasa
digunakan yaitu teknik pemodelan
berorientasi objek (OMT). Pekerjaan ini dilakukan dengan mengamati
komponen-komponen dalam system yang sedang dibuat modelnya sebagai kelas-kelas
objek. Dalam metode ini sebuah kelas
objek adalah sebuah segmen dan sebuah objek
adalah sebuah kejadian tertentu. Seperti halnya dalam model E-R, OMT menentukan
hubungan antar segmen. Hal paling mendasar dalam hubungan ini disebut pewarisan. Hubungan pewarisan
diciptakan ketika sebiuah kelas objek dibagi ke dalam subkelas. Sebagai contoh,
sebuah kelas umum atau orangtua dapat berupa perlengkapan pabrik yang memiliki
subkelas seperti perkakas, mesin berat, perlengkapan reparasi, dan sebagainya
yang digambarkan berikut ini:
PLANT_EQUIPMENT
(ACCOUNT_NO, COST, DEPRECIATION)
Subkelasnya ialah sebagai berikut;
HEAVY_EQUIPMENT (ACCOUNT_NO,
COST, DEPRECIATION, MAINTENANCE_FREQ, DATE_PURCHASED)
dan
HAND_TOOLS (ACCOUNT_NO,
COST, DEPRECIATION, USAGE).
Secara umum, subkelas memiliki
seluruh atribut dari kelas orang tuanya ditambah dengan dengan atribut mereka
sendiri.
3.2 Arsitektur
Database pada Tingkat Logis : Struktur Database Logis
Tugas utama yang dihadapi oleh
seorang analis ketika mendesain sebuah database adalah mengidentifikasi dan
mendesain hubungan yang sistematis di antara setiap segmen. Hubungan yang
timbul antara segmen-segmen dalam database ditentukan oleh struktur data
logika, yang juga biasa disebut skema atau model database. Ada tiga model utama
dalam struktur data logika, yaitu:
1. Struktur
Pohon atau Hierarkis
Struktur
pohon adalah representasi langsung proses segmentasi. Pada sebuah struktur
pohon, setiap lingkaran menunjukkan satu set field (atau segmen), setiap
lingkaran terhubung ke lingkaran lain pada tingkatan berikutnya yang lebih
tinggi dalam pohon tersebut. Tingkatan yang paling akhir disebut lingkaran
parent. Setiap orang tua (parent) memiliki satu atau lebih children, dan
hubungan antara anak dan orang tua disebut branch.
Tampilan
penting dalam model pohon ini adalah sebuah lingkaran anak tidak dapat memiliki
lebih dari satu orang tua. Model pohon digunakan pada struktur data yang
didukung oleh COBOL dan program-program bahasa lainnya yang digunakan secara
luas dan telah diimplementasikan pada banyak sistem manajemen database (DBMS)
seperti IMS dan IDMS.
2. Struktur
Jaringan
Struktur
jaringan adalah model yang memungkinkan sebuah segmen anak memiliki lebih dari
satu orang tua. Beberapa DBMS tidak secara lansung menyediakan struktur
jaringan, namun karena setiap struktur jaringan dapat diubah menjadi struktur
pohon, maka dimungkinkan untuk mengimplementasikan struktur jaringan dalam
sistem yang berorientasi pohon. Model CODASYL adalah sebuah model jaringan.
Terdapat
beragam cara untuk mengimplementasikan struktur pohon dan jaringan. Hal ini
termasuk penggunaan daftar dan penunjuk. Dalam sebuah daftar organisasi, setiap
record berisi satu atau lebih petunjuk (field) yang mengindikasikan alamat
record logis berikutnya dengan atribut-atribut yang sama. Sebuah record tagihan
dapat berisi sebuah field yang berisi kunci tagihan lainnya dari vendor yang
sama. Sebuah record dapat dipecah menjadi beberapa daftar. Daftar ini disebut
organisasi multilist. Contohnya sebuah record pelanggan, dapat berisi beberapa
penunjuk dalam sebuah record untuk menunjukkan record logis berikutnya,
struktur logika dan fisik dapat sepenuhnya berbeda.
Struktur
cincin berbeda dari struktur daftar dimana record terakhir dalam struktur
cincin menunjuk kembali ke record yang pertama. Dan seluruh record dalam sebuah
cincin dapat menunjuk kembali ataupun ke langkah seterusnya melalui penggunaan
dan penyimpanan field tambahan. Dalam sebuah multiple-ring-structur, beberapa
cincin melewati record-record individual.
Mendesain
dan menyimpan struktur-struktur merupakan sesuatu yang kompleks, dan
penunjuk-penunjuk biasanya membutuhkan tambahan ruang disket. Dan proses
pemabaruan (updating) penunjuk diperlukan setiap waktu manakala sebuah record
ditambahkan atau dihapus. Namun demikian, penggunaan penunjuk yang terkait
dengan struktur hierarkis atau pohon seringkali merupakan pendekatan yang
berguna dalam permodelan data, khusunya dalam kasus ketika record jarang
ditambahkan atau dihapus.
Sistem
hiperteks adalah sitem yang berbasis penunjuk (pointer-based system) yang
memungkinkan pengguna untuk menjelajahi database secara acak dengan memilih
beberapa kata atau objek kunci. Jaringan data semantik mirip dengan hiperteks.
Perbedaannya adalah record lintas hubungan pada jaringan terbatas pada teks,
sementara pada sistem hiperteks, lintas hubungan dapat memasukkan objek
multimedia seperti foto dan bentuk grafis lainnya.
3. Struktur
Data Relasional
Model
relasional memandang database sebagai sebuah kumpulan tabel dua dimensi
daripada sebuah struktur jenis hierarkis atau jaringan. Esensi model relasional
adalah merepresentasikan segmen-segmen dalam tabel.keunggulan struktur data ini
dibandingkan pohon dan jaringan adalah penunjuk atau daftar tidak rumit. Dan
setiap informasi yang dapat diekstrak dari struktur pohon atau jaringan dapat
pula diekstrak dari tabel relasional. Model ini kurang efisien dibandingkan
model pohon dan jaringan ketika database jarang diperbarui dan hubungan antar
kode tidak dapat ditentukan dengan jelas.
Informasi
dapat diekstrak dari tabel dengan menggunakan aljabar relasional, yang dapat
diringkas dalam tiga operasi dasar yaitu:
·
Selection: berfungsi menciptakan
sebuah tabel baru dari baris yang dipilih dalam tabel yang tersedia. Baris
dipilih berdasarkan nilai data mereka.
·
Join: berfungsi menciptakan sebuah tabel
baru dari baris yang dipilih dalam dua tabel yang tersedia. Baris dipilih
berdasarkan nilai data mereka.
·
Projection: berfungsi menciptakan
sebuah tabel baru dengan menghapus kolom dari tabel yang tersedia.
Aturan-aturan
tertentu yang disebut bentuk normal menentukan pembuatan sebuah tabel. Proses
penerapan aturan-aturan tersebut disebut normalisasi. Normalisasi menjadi
penting karena tanpa hal tersebut, proses pembaruan entri-entri dalam tabel
dapat menyebabkan permasalahan. Tujuan utama normalisasi adalah untuk menghapus
proses duplikasi yang tidak perlu.
Langkah
pertama dalam normalisasi adalah menciptakan sebuah tabel terpisah untuk setiap
repeated group. Ada tiga bentuk normal, yaitu:
Ø Bentuk normal pertama: mebagi tabel-tabel untuk menghapus
repeated group.
Ø Bentuk normal kedua: membagi tabel-tabel sehingga tidak
adakunci yang menentukan nilai dari sebuah field non kunci.
Ø Bentuk normal ketiga: membagi tabel-tabel sehingga tidak ada
field non kunci yang menentukan nilai-nilai dari field non kunci lainnya.
3.3 Arsitektur
Database pada Tingkat Fisik
Pembahasan arsitektur database
tingkat fisik akan fokus pada ketiga metode akses file yaitu sekuensial,
indeks, dan langsung. DASD mampu mendukung seluruh metode tersebut, dan pilihan
yang terbaik dari ketiganya tergantung pada aplikasi.
1. File
Akses Sekunsial
Pada
sebuah file akses sekuensial, record hanya dapat diakses dalam sekuens mereka sebelumnya. Sekuens sebelumnya biasanya adalah
sebuah hasil dari record yang telah diurutkan oleh beberapa kunci record.
Pengorganisasian file sekuensial tidak menjadi sarana yang bermanfaat jika
record yang perlu diakses hanya sedikit, padahal file berisi banyak record.
File
sekuensial bermanfaat dalam pemrosesan bentuk batch, yang biasanya mengakses
seluruh record dalam sebuah file. Prosedur yang biasanya dilakukan adalah,
pertama mengurutkan transaksi dan file utama dalam kunci yang sama. Aplikasi
ini dapat memperbarui piutang dagang pelanggan (dalam file master) untuk
mencerminkan pembayaran yang diterima (dalam transaksi). Pertama, program akan
mengurutkan kedua file dengan urutan kecil-besar berdasarkan nomor rekening.
Kemudian, program membaca sebuah record dari setiap file. Jika nomor rekening
dari kedua record tersebut cocok satu sama lain, maka informasi pada record
pembayaran digunakan untuk memperbarui field neraca pada record piutang dagang.
Proses pembaruan record seperti ini kemudian dituliskan dalam sebuah file
master yang baru.
2. File
Berindeks
Setiap
atribut dapat diekstrak dari record dalam sebuah file primer dan digunakan
untukmembangun sebuah file baru yang bertujuan menyediakan sebuah indeks untuk
file aslinya. Bentuk file seperti ini disebut file berindeks atau file
terinversi. Sebuah file dikatakan terinversi penuh bila terdapat indeks di
setiap field-nya. Waktu pemrosesan yang dibutuhkan untuk menyimpan sebuah file
yang terisi penuh dapat menjadi lama karena indeks-indeks yang ada harus
senantiasa diperbarui kapan saja record ditambah, dihapus, atau dimodifikasi.
Lebih lanjut, setiap indeks memerlukan tambahan penyimpanan disket, dan disket
yang dibuat dapat berakhir dengan kebutuhan ruang penyimpanan yang lebih besar
daripada file data tersebut.
3. File
Sekuensial Berindeks
File
sekuensial berindeks adalah sebuah file sekuensial yang disimpan dalam sebuah DASD
dan diberi indeks serta disimpan secara fisik dalam field yang sama. File-file
tersebut biasa disebut ISAM, yaitu singkatan
dari indexed-sequnetial access method. ISAM merupakan kompromi antara
organisasi file sekuensial dan akses langsung, yang menyediakan kedua kemampuan
tersebut dengan biaya yang sesuai.
Pemrosesan
dan inkuiri merupakan tujuan ISAM. Pemrosesan sebuah batch record dapat
dilakukan secara sekuens, sementara inkuiri individual pada sebuah file dapat
dilakukan dengan menggunakan indeks. Makin detail sebuah indeks, makin cepat
akses yang dilakukan; sebuah imbal balik dalam penyimpanan indeks.
4. Struktur File ISAM
Secara struktural
terdiri atas tiga daerah yang berbeda yaitu:
4.1 Indeks
Indeks merupakan
sebuah peta yang menghubungkan record field-field kunci dengan tempat penyimpanannya di bidang utama. Tiap
entri dalam indeks memberikan rentang field-field kunci pada sebuah track tertentu dari disk
tempat file tersebut disimpan. Dengan mencari indeksnya, sebuah program akan dapat
menempatkan trak yang berisi record sesuai keinginan. Walaupun track ini harus
dicari secara sekuensial, pencarian ini berlangsung sangat cepat.
4.2 Bidang Utama
Bidang
Utama (prime area) adalah bagian dalam disket tempat record aktual ditulis.
4.3 Bidang overflow
Bidang
overflow adalah bagian terpisah dalam
disket yang dialokasikan untuk file guna memungkinkan adanya penambahan tanpa
pemrosesan lebih lanjut terhadap file awal. Bidang ini pada dasarnya kosong.
Ketika sebuah record baru ditambahkan ke dalam file, record tersebut
ditempatkan dalam posisinya di bidang utama untuk menjaga pengorganisasian
sekuensial dari file tersebut. Record-record yang berada dalam bidang utama
harus dipampatkan (bumped) guna memberi ruang bagi record yang baru. Jika
tersedia cukup ruang dalam track tempat record harus dimasukkan dan record lain
dalam track tersebut akan dipindahkan. Dalam hal ini, record yang dimampatkan
dipindah ke bidang overflow. Namun
demikian, record yang berada di bidang overflow masih dapat diakses dalam
sekuens kuncinya dengan menggunakan indeks karena secara fisik kunci sekuensnya
tidak berada di bidang overflow. Jika record tersebut tidak ditemukan dalam
track yang ditunjukkan dalm indeks, bidang overflow akan diperiksa secara
sekuensial sampai record tersebut ditemukan. Hal ini akan memperpanjang waktu
yang diperlukan untuk memproses sebuah file ISAM. Oleh karena itu sebuah file
ISAM harus secara berkala direorganisasi untuk dapat mengakses dengan lebih
efisien. Reorganisasi terdiri atas menggabung dan mengatur seluruh record
sehingga file tersebut dapat diurutkan secara sekuensial di bidang utama.
5. File Akses Langsung
File akses
langsung memungkinkan record secara individual dimunculkan dengan segera tanpa
menggunakan indeks. Hal ini dilakukan dengan menempatkan tiap record dengan
lokasi penyimpanan yang menyediakan hubungan dengan nilai record kunci. Oleh
karena itu, dengan metode akses langsung, satu hal yang dibutuhkan untuk
menempatkan sebuah record hanyalah nilai kuncinya.
Beberapa
metode penempatan yang dapat digunakan untuk menyimpan dan menempatkan record
dalam file akses-langsung:
a.
Transformasi acak
b. Metode terkait (related method) yang digunakan untuk menyimpan alamat fisik media simpan sebagai sebuah
field dalam sebuah file record.
c.
Menempatkan field record kunci
langsung dengan skema pengkodean yang digunakan oleh komputer itu sendiri untuk
mngidentifikasi alamat fisiknya dalam sebuah DASD.
Namun
demikian metode (b) dan (c) tidak digunakan secara luas karena alamat lokasi
penyimpanan jarang yang cocok dengan pengidentifikasi record, dan masalah
keamanan dan menejemen sistem sering diasosiasikan dengan kondisi bahwa
pengguna mengetahui lokasi penyimpanan file aktual.
Kebanyakan
sistem file akses-langsung mengubah sebuah kunci kedalam alamat lokasi
penyimpanan dengan menggunakan entah sebuah indeks (tabel) atau transformasi
acak. Ini berarti dimungkinkan untuk mengakses setiap record dalam disket
dengan sama cepatnya dengan yang diberikan oleh nilai kuncinya. Nilai kunci
dikonversi ke dalam sebuah disket alamat dan record diakses langsung tanpa
perlu mencari lagi.
6. Aspek Ekonomis pada Teknik
Pengorganisasian File
Teknik-Teknik Pengorganisasian File
|
Waktu Terbaik untuk Menggunakannya
|
Keterbatasan
|
Sekuensial
|
Rasio aktivitas tinggi, seperti dalam pemrosesan batch
|
Tidak memungkinkan untuk mengakses secepat record tunggal
|
Indeks
|
Rasio aktivitas rendah, untuk ukuran file menengah sampai
besar
|
Pembaharuan file menggunakan indeks
|
Indeks - Sekuensial
|
File perlu diprosesdalam batch (rasio aktivitas tinggi)
dan non batch (rasio aktivitas rendah)
|
Sama seperti indeks dan sekuensial
|
Langsung
|
Rasio aktivitas rendah, file-file berukuran besar,
jaringan dan pohon
|
Butuh kunci untuk menempatkan record
|
Pertimbangan
ekonomis yang paling mendasar dalam pemrosesan file ditentukan sepenuhnya oleh
:
a.
Rasio aktivitas yaitu jumlah record
yang diakses dibagi dengan jumlah record dalam suatu file.
b. Waktu respons yang diinginkan untuk
pemrosesan dan penempatan.
Berkaitan
dengan database, waktu respon adalah lama waktu yang harus dihabiskan oleh
pengguna untuk menyelesaikan sebuah operasi, misal sebuah query. File-file
akses-langsung dibutuhkan untuk waktu respon yang sangat cepat karena waktu
respon yang lebih lama dapat ditangani dengan lebih ekonomis dengan menggunakan
file-file yang bersifat sekuensial. Ketika lama waktu respon dapat ditoleransi,
pembaharuan query atau file dapat disatukan dengan operasi pemrosesan batch.
7. Arsitektur Fisik, Perangkat Keras
dan Waktu Respons
Waktu
respon dapat menjadi sebuah permasalahan besar pada database besar yang mungkin
diakses oleh ratusan atau bahkan ribuan pengguna pada saat yang sama. Jika
sistem database dan perangkat keras komputer tidak sesuai dengan permintaan,
maka pengguna akan menunggu dengan sia-sia dalam waktu yang lama untuk query
mereka. Oleh karena itu, sistem database harus didesain dengan baik bagi
penggunanya, dan perangkat keras harus cukup cepat untuk mengerjakan semua
pekerjaan yang diminta.
Pada sisi
perangkat keras, waktu respon dipengaruhi oleh waktu akses fisik yaitu waktu
yang dibutuhkan oleh CPU untuk memunculkan sebuah blok data tunggal dari disket
yang disebut Disk Access Time. Salah satu masalahnya adalah CPU beroperasi jauh
lebih cepat dari yang dilakukan disket sehingga CPU harus menunggu sesaat
sementara operasi input/output disket sedang dijalankan. Hal ini berarti bila
mampu meminimalisasi input dan output disket, dalam beberapa kasus dapat
meningkatkan waktu respons yang cukup tinggi. Faktor lainnya yang dapat
mempengaruhi waktu respons adalah
bagaimana record data dapat didistribusikan secara fisik dalam disket.
Pada
hardisk data yang berada di track atau silinder yang sama dapat diakses tanpa
perlu berpindah ketika membaca/menulis di atasnya. Hal ini berarti dalam
beberapa kasus dimunkinkan untuk meningkatkan kecepatan sebuah aplikasi
database dengan menyimpan record-record dalam sebuah file data secara
berdekatan di satu atau lebih silinder disket.
Kebutuhan
untuk menyimpan sebuah file secara berdekatan tergantung pada arsitektur fisik
database dan berkaitan dengan metode akses filenya. Jika database menggunakan
metode akses sekuensial, maka penempatan setiap record secara fisik berdekatan
sama lain dalam disket tentunya sesuatu yang diinginkan. Akan tetapi untuk
metode akses-berindeks, selalu perlu untuk menempatkan indeks-indeks dalam penyimpanan yang
berdekatan karena file-file tersebut sering dibaca secara sekuens dan secara
keseluruhan pada saat yang bersamaan. Namun demikian mungkin tidak perlu
menempatkan record dalam file data yang terkait sedekat mungkin satu sama lain
dalam disket karena record file tersebut diakses secara acak dalam dua tahap
proses pencarian.
8. SISTEM MANAJEMEN DATABASE DAN
DATABASE DALAM PRAKTIK
Apa yang Dilakukan
Sistem Manajemen Database
· Sistem manajemen database (DBMS)
adalah program komputer yang memampukan seorang pengguna untuk menciptakan dan
memperbaruhi file-file, menyeleksi dan memunculkan kembali data dan
menghasilkan beragam output dan laporan-laporan. DBMS memiliki tiga atribut
untuk mengelola dan mengorganisasi data, yaitu:
1. Data description language (DDL)
DDL
memungkinkan administrator database (DBA) untuk menentukan struktur logika
database yang disebut skema. Hal-hal yang perlu ditentukan ketika menentukan
skema:
-
Nama elemen data
-
Jenis data (numerik, alfabetik,
tanggal,dll) dan posisi jumlah angka desimal jika data tersebut bersifat
numerik
-
Posisi angka (misalnya sembilan
posisi untuk Nomor Jaminan Sosial)
DDL juga
dapat digunakan untuk menentukan subskema, yaitu jumlah pengguna individual
database selain itu untuk menciptakan, memodifikasi dan menghapus tabel-tabel
dalam pengaturan relasional
2. Data manipulation language (DML)
DML
terdiri atas perintah-perintah untuk melakukan pembaruan (updating),
pengeditan, manipulasi, dan ekstraksi data. Dalam banyak kasus pengguna tidak
perlu tahu atau menggunakan DML. Namun demikian program aplikasi secara
otomatis menghasilkan laporan DML untuk memenuhi permintaan pengguna.
3.
Data query language (DQL)
DQL adalah
bahasa atau antar muka yang ramah pengguna (user-friendly) yang memungkinkan
bagi pengguna untuk meminta informasi dari database. Salah satu antarmuka yang
friendly ini adalah QBE (query by example) yang memungkinkan bagi pengguna
untuk meminta informasi hanya dengan mengisi tempat-tempat yang kosong.
SQL Data Manipulation Language
Structured Query Language (SQL)
adalah teknologi yang digunakan untuk memunculkan informasi dari database. SQL
merupakan bahasa pemrograman nonprosedural. Bahasa ini memungkinkan penggunanya
untuk fokus pada menentukan data apa
yang dibutuhkan ketimbang pada bagaimana mendapatkan data tersebut.
Empat bentuk pernytaan DML (data manipulation language) yang
merupakan komponen SQL adalah:
1.
SELECT : Memunculkan baris tabel
2.
UPDATE : Memodifikasi baris tabel
3.
DELETE : Memindahkan baris dari tabel
4.
INSERT : Menambahkan baris baru pada tabel
Queri SELECT
SELECT biasanya adalah kalimat
pertama dalam pernyataan SQL yang dimaksudkan untuk mengekstrak data dari
sebuah database. SELECT menentukan field-field mana saja (misal item-item dalam
sebuah database) atau ekspresi-ekspresi dalam field yang ingin anda munculkan. Klausa FROM
mengidentifikasikan tabel mana yang berisi item-item tersebut. FROM diperlukan
dan mnegikuti SELECT.
·
SELECT Everything
Tanda *
adalah karakter queri khusus yang mencerminkan “seluruh field”. Queri ini
memilih seluruh field dari tabel kata kunci.
SELECT * FROM kata kunci
·
SELECT
Field
SELECT (memilih) field tertntu
(misal item) berdasarkan nama. Jika anda ingin memasukan lebih dari satu item,
pisahkan item-ietm tersebut dengan koma. Urutkan item-item yang anda ingin unutk dimunculkan.
SELECT nama, negara, mata uang FROM perusahaan
·
ORDER
BY
ORDER BY mengurutkan tampilan data
dalam urutan tertentu berdasarkan klausa. ORDER BY adalah opsional. Jika anda
tidak memasukkannya, data yang muncul tidak akan urut. Default urutan yang
digunakan adalah kecil-besar (A-Z, 0-9).
Queri ini menambahkan ORDER BY
klausa nama untuk queri sebelumnya. SELECT nama, negara, mata uang FROM perusahaan ORDER BY nama.
Anda dapat
menentukannya dalam urutan kecil-besar untuk item dengan memasukan kata kunci
ASC pada akhir item ada. Untuk mengurutkan sebaliknya (Z-A, 9-0), tambahkan
DESC setelah item data yang anda ingin untuk diurutkan secara besar-kecil.
·
WHERE Condition
Anda dapat menggunakan WHERE untuk
menentukan record mana saja dari tabel yang tercantum dalam klausa FROM yang
akan muncul dalam hasil pernyataan SELECT. WHERE adalah opsional, namun bila
dimasukan. Ia akan mnegikuti FROM. Jika anda tidak memasukan WHERE, seluruh
record akan dipilih.
·
String Functions
Pernyataan SQL berikut ini
mengilustrasikan sebuah pencarian kata. Kata goodwill akan dicari dalam field Notes. Topic.
SELECT * FROM notes
WHERE Instr (1, topic, “ goodwill”) > 0
Fungsi
Instr akan mencari sebuah filed khusus (“topic” dalam queri) untuk sebuah deret
( string) karakter tertentu yang ada
dalam kutipan (“goodwill”) dengan mulai pada posisi tertentu dalam field (1
mengindikasikan posisi pertama, awal, dan string).
Fungsi lainnya dari string meliputi:
ü Left$
(string, length): string adalah ekspresi dari mana karakter paling kiri
berasal. Length adalah jumlah karakter untuk kembali.
ü Right$
(string, length): string adalah ekspresi dari mana karakter paling kanan
berasal. Length adalah jumlah karakter untuk kembali.
· Arithmetic
Expression
SQL memungkinkan ekspresi aritmatika
untuk dimasukan dalam klausa SELECT. Ekspresi aritmatika terdiri dari sejumlah
nama kolom dan nilai-nilai yang terhubung dengan setiap operator berikut ini:
+
Tambah
-
Kurang
*
Kali
/
Bagi
Ketika dimasukkan dalam klausa
SELECT, hasil sebuah ekspresi akan ditampilkan sebagai sebuah kolom tabel
perhitungan.
SELECT title, year1, year2,
(year1-year2) as dif
FROM [balance sheet]
WHERE company = “01”
ORDER BY position
· Operator
Pembanding
setiap operator pembanding berikut ini dapat digunakan:
=
Sama dengan
<>
tidak sama dengan
> lebih
besar dari
< lebih
kecil dari
>= lebih
besar sama dengan
<= lebih
kecil sama dengan
· Menyesuaikan
Sebuah Nilai dalam Sebuah Daftar
Operator IN memungkinkan pemilihan
baris dengan sebuah nilai kolom yang sesuai dengan setiap nilai dalam sebuah
rangkaian nilai.
SELECT * FROM company
WHERE company IN (“01”, “22”, “35”)
· Ekspresi
Majemuk dengan Operator Boolean
Ekspresi logika individu dapat
dikombinasikan dalam sbuah klausa WHERE dengan operator Boolean:
AND
OR
· Fungsi
Agregat
anda dapat memilih sejumlah nilai
yang dihitung dengan fungsi agregat. Fungsi COUNT (*) AS tally mengilustrasikan
bagaimana menghitung jumlah occurrence
dalam sebuah tabel hasil dan nama hasil (AS tally).
SELECT COUNT (*) AS tally FROM keyword
Klausa AS tally memberikan fungsi
agregat dengan nama “tally”, yang akan digunakan dalam laporan. Klausa AS
bersifat pilihan atau opsional dengan fungsi agregat.
· GROUP
BY
mengombinasikan record-record dengan
nilai-nilai identik dalam daftar field tertentu ke dalam sebuah record tunggal.
Nilai ringkasan (summary value) dibuat untuk setiap daftar record jika anda
memasukan sebuah fungsi agregat, seperti SUM atau COUNT, dalam pernyataan
SELECT. Jika pernyataan SQL memasukan klausa WHERE, record akan dikelompokan
setelah mengaplikasikan kondisi WHERE kedalam record. GROUP BY bersifat pilihan, namun ketika ia
dimasukan, GROUP BY akan mengikuti FROM dan WHERE. Nilai-nilai ringkasan akan
dihilangkan bila tidak terdapat fungsi agregat dalam pernyataan SELECT. Contoh
berikut ini meringkas penghitungan perusahaan berdasarkan negara.
SELECT company. Country, count
(company. country) AS tally FROM company GROUP BY company. Country
·
Inner Join
Mengombinasikan field-field dari
beberapa tabel. Contoh berikut ini memasukan nama perusahaan untuk perusahaan
15 untuk setiap topiknya dalam tabel notes.
SELECT company. Nama, notes. Topic
FROM company INNER JOIN notes
ON Company. Company = notes. Company
WHERE company. Company = “20”
·
Nested Queries
Seseorang dapat menentukan sebuah
queri dalam klausa WHERE yang dijalankan sebelum queri yang berada di luar
menghasilkan satu atau lebih baris yang kemudian dibandingkan dengan baris yang
dihasilkan oleh queri yang berada diluar. Contoh berikut ini menemukan nama
perusahaan yang memiliki kod SIC Max (yang paling besar).
SELECT name
FROM Company
WHERE SIC = (SELECT MAC (SIC) FROM
Company)
Perhatikan bahwa nested query SELECT
MAX (SIC) FROM company berada dalam
Tanda kurung.
·
Queri UPDATE, INSERT, dan DELETE
Jenis query ini digunakan untuk memodifikasi sebuah
database.
Pernyataan UPDATE terdiri atas 3 klausa yaitu:
1)
UPDATE tablename
2)
SET column- assignmen- list
3)
WHERE conditional – expression
Dalam SET, column – assigment- list memasukkan kolom-kolom yang telah
diperbarui dan nilai-nilai yang di - set dan mengambil bentuk kolom- nama1 =
nilai 1, kolom- nama2 = nilai 2,... klausa WHERE bersifat pilihan. Bila
digunakan, klausa WHERE menentukan sebuah kondisi untuk UPDATE untuk menguji
kapan memroses setiap baris dalam tabel.
Bentuk umum pernyataan DELETE terdiri atas 2 yaitu:
1)
DELETE FROM tablename
2)
WHERE conditional – expression
Pernyataan DELETE menghapus
baris-baris dari tablename yang
memenuhi kondisi yang ditentukan dalam klausa WHERE.
Pernyataan INSERT memiliki 2 bentuk
umum. Bentuk yang paling sederhana digunakan untuk memasukan sebuah baris
tunggal dalam sebuah tabel.
1)
INSERT INTO tablename
2)
VALUES (constant - list)
Pernyataan INSERT juga dapat digunakan
bersamaan dengan sebuah queri pernyataan SELECT untuk menyalin baris suatu
tabel lainnya.
8.1 Perlunya Sistem Manajemen
Database
DBMS mengintegrasikan,
menstandarisasi, dan menyediakan keamanaan unutk beragam aplikasi akuntansi.
Bila tidak terdapat integrasi, tiap-tiap jenis aplikasi akuntansi sperti
penjualan, pembayaran gaji, dan piutang akan menyimpan terpisah file-file
independen dan program komputer untuk mengelola file-file
tersebut.Kelemahan-kelemahan DBMS antara lain yaitu:
1) Item data yang sama dapat digunakan
dalam beberapa bidang aplikasi yang berbeda dengan file-file independen, item
data harus dimasukan kedalam setiap file aplikasi. Misalnya sebuah penjualan
memengaruhi file persediaan, file piutang dagang, dan beragam file pendapatan
dan pengeluaran. Memasukan elemen data yang sama berkali-kali (sekali untuk
tiap aplikasi yang digunakan di dalamnya) merupakan pemborosan waktu yang
mahal, dan makin besar peluang terjadiinya kesalahan dan ketidak-konsistenan di
antara beragam representasi bagian-bagian data dalam beberapa file independen.
2) Karena file harus dengan tegas
ditentukan terlebih dahulu dalam proses implementasi sistem, prosedur yang ada
dapat menemui kendala dengan adanya struktur file yang ada saat ini dibanding pengembangan
kebutuhan aplikasi. Hasil dari ketidak-konsisten data adalah inkonsistensi
laporan yang dihasilkan dari beragam program aplikasi. Permasalahan seperti ini
tentu saja memperlemah integritas sebuah sistem informasi.
Selain masalah manajemen data dan
pnyimpanan, setiap file independen membutuhkan instruksi pemrosesan dan
penyimpanannya sendiri karena isis dan struktur filenya tidak terstandarisasi.
Kemampuan yang berhubungan dengan informasi non kunci dibatasi karena setiap
aplikasi program individual harus menentukan instruksi rinci yang berhubungan
dengan penenganan fisik data.
8.2 Independensi Data
Solusi untuk masalah penyimpanan
file-file independen terletak pada pemisahan secara fisik penanganan data dari
penggunaan logis file-file tersebut. Hal ini menuntut 2 perubahan mendasar,
pertama penyimpanan data terintigrasi dalam suatu database tunggal, dan kedua
seluruh akses untuk file (database) yang terintegrasi ini dilakukan melalui
suatu sistem perangkat lunak tunggal yang didesain untuk mengelola aspek-aspek
fisik penanganan dan penyimpanan data. Hal tersebut merupakan karakteristik
penting dalam pendekatan database terhadap pemrosesan data.
Kata file kehilangan artinya dalam lingkungan database. Sebuah file
utama tunggal dapat dibagi kedalam sejumlah file subsistem, dan file-file
tersebut dikombinasikan dan dikombinasikan ulang kedalam sejumlah file lainnya.
Perangkat lunak database memisahkan aspek fisik dan logika penggunaan file, hal
ini membuka spektrum luas kemampuan pemrosesan informasi yang tidak akan dapat
dilakukan tanpa perangkat lunak tertentu.
Gambar 12.21 mengilustrasikan
konsep-konsep tersebut dalam dua file aplikasi independen, yang setiap file
berisi empat field per recordnya. Dapat dilihat bahwa dua item data X dan Y,
adalah umum untuk kedua file. Di bawah
file-file tersebut adalah sebuah database sebuah file tunggal yang berisi seluruh
informasi penting yang sebelumnya ditemukan dua file independen. File database
ini terstruktur dan dikelola oleh sebuah DBMS. Berdasar permintaan program,
DBMS menyusun file-file aplikasi logis (subskema) melalui sebuah file kamus
database. Kamus database adalah
kumpulan seluruh nama itm data dalam sbuah database, bersama dengan sebuah
deskripsi bentuk representasi standar data tersebut (misal ukurannya, jenis
data-numerik, alfabetik, dll) kamus database ditentukan dan dikendalikan oleh
administrator database.
File logika 1 dan 2 (lihat gambar
12.21) adaah bentuk file sementara oleh DBMS digunakan untuk aplikasi satu dan
dua. Pada saat penyelesaian pemrosesan, nilai-nilai yang telah diperbaharui
dalam file-file logika akan disalin ke dalam database bentuk fisik aktualnya.
File logika 3 merupakan sebuah file yang baru diciptakan untuk penggunaan
nonrutin tertentu, seperti sebuah queri atau sebuah analisis data akuntansi
tertentu. Kemampuan untuk membentuk file-file khusus tersebut dengan cepat dan
efisien adaah keunggulan utama DBMS. Kemampuan ini tersedia melalui penyimpanan
DBMS akan file-file inversi,daftar,cincin,dan struktur data lainnya yang
didesain untuk memfasilitasi pemunculan kembali informasi oleh pengguna.
8.3 Keamanan
Keunggulan DBMS lainnya adalah
kemampuan memberikan kode keamanan untuk
item data dan atribut-atribut pemrosesannya. Salah satu bagian file kamus data
berisi sebuah daftar pengguna sistem terotorisasi dan kode akses dan keamanan.
Masing-masing elemen data unik dalam gambar 12.21 dapat berupa kode prioritas
numerik. Kode-kode tersebut akan menentukan item data yang menentukan
pemrosesan yang dapat digunakan oleh pengguna untuk setiap item data.
8.4
Dokumentasi dan Administrasi database
Kamus database digunakan baik terpisah
maupun dengan DBMS untuk mensentralisasi,mendokumentasi, mengontrol, dan
mengoordinasi penggunaan data dalam sebuah organsisasi. Kamus data merupakan
sebuah urutan file yang memiliki catatan occurrence yang berisi deskripsi item
data.
Item-item Pada Data Dictionary
Occurrence
Spesifikasi
· Nama
· Definisi
· Alias
Karakteristik
· Ukuran
· Rentang nilai
· Pengkodean
· Editing data
Utilisasi
Pemilik
Di mana digunakan
Kode
keamanan
Diperbarui terakhir kali
Sebuah alias muncul ketika para
pengguna yang berbeda menggunakan field yang sama, namun memiliki nama yang
berbeda. Sebagai contaoh, sebuah gudang dapat dipanggil oleh penjualan dengan
nama “Order Number”. Alias juga muncul disebabkan item data yang sama disebut
sebagai hal yang berbeda oleh program-program yang berbeda, dalam bahasa yang
berbeda, oleh para pembuat program yang berbeda pula. Penggkodean (encoding)
merujuk kepada bentuk fisik item data yang akan disimpulkan dalam BCD atau
EBDIC. Pemilik (owner) merujuk kepada pengguna yang memiliki tanggung jawab
akhir atau kepentingan utama berkenaan dengan integritas occurrence sebuah item data.
Tujuan utama sebuah kamus data
adalah mengurangi atau paling tidak mengawasi inkosistensi penggunaan yang
dihasilkan dari pemrosesan alias dan mengurangi kelebihan data sejauh mungkin.
Tanggung jawab untuk kamus data harus disentralisasikan pada seorang administrator database (DBA).
Administrasi database bertanggung jawab menanggulangi ketidak cocokan dan
maslah koordinasi dan komunikasi antara kelompok-kelompok pengguna ketika
memakai brsama sebuah database. Tugas utama DBA adalah menetapkan standar,
konvensi, dan dokumentasi sumber-sumber data. Administrasi kamus data merupakan alat utama yang digunakan DBA
untuk melaksanakan tugas tersebut. Pengawasan data yang efektif merupakan
pendekatan database yang paling penting untuk pemrosesan data. Ketidak cocokan
(inkompatibilitas) dan redundansi senantiasa ada dalam sebuah sistem
berorientasi file yang tradisional, yang didalamnya para pengguna menyimpan dan
memproses file data miliknya.
Kamus data dapat dikelola secara
manual, namun biasanya ia terkomputerisasi dan diproses seperti halnya
file-file komputer lainnya. Jika kamus digunakan bersama-sama dengan sebuah
DBMS, ia akan disimpan dalam DBMS.
DAFTAR ISI
v
Comments
Post a Comment