Selasa, 23 September 2008

Tabel ASCII

DATA DI KOMPUTER

Kata “data,” kita adopsi dari bahasa Inggris dan berasal dari kata Yunani “datum” yang berarti “fakta.” Jika manusia bisa menerima data dari alat-alat inderanya, maka komputer juga dapat menerima data dari alat-alat inputnya (input device). Bedanya, manusia bisa menerima data yang tersirat (yang hanya dapat “dibaca” melalui perasaan atau naluri), sedangkan komputer hanya bisa menerima data yang tersurat (yang dapat dilambangkan atau dikodekan dengan lambang-lambang atau kode-kode yang telah dikenalnya).

Data di komputer memiliki ukuran dalam penyebutannya. Data terkecil di komputer disebut dengan bit, yaitu sinyal elektronik yang melewati suatu rangkaian digital (prosesor) komputer. Bit-bit tersebut selanjutnya dirangkai, dan rangkaian tersebut diberi kode lagi yang disebut dengan character. Mulailah muncul berbagai macam kode yang ada di pasaran, seperti ASCII, EBCDIC, BCD, dan sebagainya.

ASCII (American Standard Code for Information Interchange) merangkai tujuh bit untuk menghasilkan sebuah character, sebagai contoh, karakter “A” oleh ASCII dilambangkan dengan rangkaian bit : 1000001, di mana bit bernilai 1 adalah rangkaian digital yang ada arus listriknya, dan 0 adalah rangkaian digital yang tidak dialiri listrik.
Selanjutnya, kumpulan dari character disebut dengan field. Ada dua istilah lain dari kumpulan karakter ini yang sering digunakan, seperti word (kata), dan attribute (atribut). Kumpulan field akan membentuk sebuah record, ada pula yang menyebutnya dengan sentence (kalimat). Kumpulan record akan menjadi sebuah file, dalam hal ini (yang sedang kita pelajari) file tersebut akan berisi nilai data, sehingga disebut dengan file data.

Istilah lain yang sering digunakan untuk meyebut file (berkas) adalah table (tabel), entity set (set entitas), object (objek), dan data store (penyimpan data). Kumpulan file dalam sebuah enterprise (unit usaha) disebut dengan data base. Dan kumpulan dari data base disebut dengan data bank.

Itu semua merupakan ukuran-ukuran data yang ada di komputer. Jadi, jika kita menyebut kata “data” di komputer, sepatutnya menggunakan ukurannya, karena kata “data” masih atau sudah berarti majemuk. Karenanya, jangan menulis atau mengucapkan kata “data-data,” atau “kumpulan data”, karena, dengan kata “data” saja sudah cukup (sudah majemuk).

Dari uraian itu, kita telah mendapat satu definisi mengenai database, yaitu “kumpulan file.” … (definisi 1). Tapi, pertanyaan berikutnya adalah, apakah dengan hanya mengumpulkan file yang banyak, sudah dapat disebut data base ?. Tentu saja belum, karena banyak syarat lagi yang harus diuji pada kumpulan file tersebut.

Apa saja syaratnya ?, setidaknya yang bisa menanggulangi kelemahan sistem file tradisional yang sudah kita bahas di atas, seperti “saling berelasi/ berintegrasi/ berhubungan/ berkoneksi.”… (definisi 2). Kita ambil satu kata saja, yaitu “berelasi.”

Alat pemroses di komputer terdiri atas rangkain-rangkaian elektronik yang jika rangkaian tersebut dialiri listrik, maka “dia” akan bekerja. Adanya arus listrik dilambangkan dengan angka 1, dan tidak adanya arus listrik dilambangkan dengan angka 0. Rangkaian-rangkaian elektronik tersebut disebut dengan rangkaian digital.

Di dunia yang bersifat analog ini, kini sedang dilanda era digital. Digital secara ekstrem bisa dikatakan sebagai perbedaan nyata antara “hitam-putih,” artinya, kalau tidak “hitam” pasti “putih,” padahal di antara hitam dan putih dalam kehidupan nyata ada warna-warna lain yang tidak terhitung jumlahnya yang mendekati keduanya. Mengapa komputer analog tidak berkembang sehebat komputer digital ?, itu karena sulitnya menciptakan alat ukur dan alat proses yang dapat membedakan tipisnya dua perbedaan yang mengakibatkan banyaknya noise (kebiasan) yang berakibat tidak validnya data.

Misalkan, data di komputer digital akan dilambangkan dengan “1” bila ada arus listrik sebesar 5 volt yang melewati rangkaiannya, dan akan dilambangkan dengan “0” bila tidak ada arus (0 volt). Padahal, di antara angka 0 dan 5 masih terdapat angka yang tidak terhingga banyaknya.

Kecepatan aliran arus listrik, selain menambah kehebatan komputer, juga sebagai “daya tarik pasar” komputer, karena, semakin cepat arus listrik mengalir, maka dikatakan prosesor komputer akan bekerja lebih cepat. Sebagai perbandingan, arus listrik yang mengalir di bohlam di rumah kita sekirar 100 Hz (hertz)., atau dengan kata lain, dalam satu detiknya, bohlam tersebut hidup dan mati sebanyak 100 kali (disebut pula dengan istilah putaran atau cycle). Komputer yang ada saat ini bisa memiliki kecepatan hingga 3,2 GHz. (gigahertz), bayangkan berapa kali lebih cepat dari bohlam. Secara gampangnya dikatakan bahwa 1 KHz. (kilohertz)= 1000 Hz, dan 1 MHz = 1000 KHz, dan 1 GHz = 1000 MHz. Jadi, 1 GHz = 1 triliun Hz.

Karena data di komputer hanyalah kombinasi ada atau tidak adanya arus listrik yang melewati rangkaiannya (dilambangkan dengan 1 dan 0), maka komputer menggunakan sistem bilangan berbasis dua (binary digit/ binar atau biner). Pada sejarah asalnya, komputer diciptakan untuk menghitung. Lalu, bagaimana menghitung bilangan berbasis sepuluh atau disebut dengan desimal (seperti yang biasa kita gunakan sehari-hari) ?.

Contoh bilangan desimal (berbasis 10) untuk angka 967 :

9 6 7 = 9 X 102 + 6 X 101 + 7 X 100

= 9 X 100+ 6 X 10 + 7 X 1

= 900 + 60 + 7

Karena berbasis sepuluh, maka pernyebutannya berturut-turut dari kanan adalah : satuan (100), puluhan (101), ratusan (102), ribuan (103), dan seterusnya.

Contoh konvesi bilangan binar (berbasis 2) untuk angka 1001 ke bilangan desimal :

1 0 0 12 = 1 X 23 + 0 X 22 + 0 X 21 + 1 X 20

= 8 + 0 + 0 + 1

= 910 (sembilan dalam basis sepuluh)

Karena berbasis dua, maka penyebutannya berturut-turut dari kanan adalah : satuan (20), duaan (21), empatan (22), delapanan (23), enambelasan (24), dan seterusnya.

Contoh perhitungan :

5 610 ® 0 1 1 1 0 0 02

3 410 ® 0 1 0 0 0 1 02

------- + ----------------- +

9 010 ® 1 0 1 1 0 1 02

Komputer hanya dapat melakukan proses penjumlahan saja, jadi kalau ada 8 X 7, maka yang dilakukan adalah menambahkan angka 8 dengan dirinya sebanyak 7 kali. Bagaimana komputer bisa melakukan pembagian, perpangkatan, dan operasi matematis lainnya ?. Itulah mengapa basis computer science adalah matematika. Diperlukan algoritma yang sangat rumit untuk menjadikan komputer bisa melakukan tugas-tugasnya.

Setelah algoritma dibuat, selanjutnya dibuat suatu rangkaian listrik yang dapat berfungsi untuk melakukan perhitungan-perhitungan yang kita butuhkan. Rangakaian listrik tersebut dimasukkan ke dalam arsitektur sebuah ALU (Arithmatic Logical Unit atau Unit Logika Aritmatika) yang terdapat di dalam CPU (Central Processing Unit atau Unit Pemroses Pusat).

Binary digit (bit) itulah yang merupakan satuan data terkecil di komputer.

Jika satu angka desimal saja, misalkan angka 9 ditulis dengan 1001 dalam binar, berapa banyak angka yang kita butuhkan untuk menuliskan angka 1 juta dalam desimal ke dalam bilangan binar ?. Untuk meringkasnya, maka digunakanlah bilangan oktal (basis delapan).

Sistem bilangan oktal adalah sistem bilangan yang memiliki angka 0, 1, 2, 3, 4, 5, 6, dan 7 saja. Untuk mengkonversi bilangan binar ke dalam bilangan oktal dilakukan dengan menyatukan tiap tiga angka dari kanan bilangan binar. misalkan angka 111000110102, maka bilangan oktalnya menjadi : 31328.

Ternyata masih panjang juga, karenanya, kini sistem bilangan yang sering digunakan dalam ilmu komputer adalah sistem bilangan heksadesimal (berbasis 16). Heksadesimal memiliki “angka” yaitu : 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F. Untuk melakukan konversi dari bilangan berbasis dua ke basis enambelas dilakukan dengan cara menyatukan tiap empat bit dari kanan bilangan binar, misalkan angka 111000110102 tadi, bilangan heksadesimalnya adalah : 71A16.

Penjelasan mengenai konversi sistem bilangan binar, oktal, dan heksadesimal lebih lanjut ada di lampiran

Fungsi komputer akhirnya dikembangkan, bukan hanya sekadar alat hitung, tetapi juga dapat dijadikan alat pengolah kata, pengolah gambar, dan sebagainya. Semuanya itu dilakukan dengan mengolah pulsa-pulsa listrik yang masuk ke dalam rangkaiannya, maka muncullah istilah “dunia digital,” dan dengan munculnya teknologi jaringan komputer dunia atau internet, maka dikenal pula istilah “dunia maya.”

Agar semua komputer bisa saling “berkomunikasi”, maka bit-bit tersebut harus dikodekan menjadi karakter (bisa huruf, angka, atau tanda baca lainnya). Maka, ketika itu berkumpullah perancang komputer untuk membuat standar kode.

Tetapi, mungkin karena alasan bisnis atau alasan lain, tidak semua perancang komputer sepakat menggunakan kode yang sama, ada kelompok yang menggunakan kode ASCII (American Standard Code for Information Interchange), ada kelompok yang menggunakan EBCDIC (Extended Binary Coded Decimal Interchange Codes), BCD (Binary Coded Decimal), Baudot Codes, dan sebagainya.

Contoh perbedaan, ASCII melambangkan sebuah karekter dengan 7 bit, EBCDIC dengan 8 bit, belum lagi kombinasi posisi 1 dan 0-nya. Komputer yang penulis gunakan menggunakan kode ASCII, dan kode ASCII untuk huruf “A” memiliki nilai desimal 65 (binar = 1000001), sehingga, kalau tombol “A” rusak, maka saya digunakan tombol “Alt” dan angka 65.

Tabel kode ASCII ada di lampiran

Namun, kini sudah diciptakan sistem operasi yang ‘menjembatani’ perbedaan penggunaan kode itu sehingga semua komputer bisa saling berinteraksi satu dengan lainnya, terutama setelah era internet sekarang ini.

INFORMASI

Berbicara mengenai data di komputer, tidak akan terlepas dengan istilah “informasi.” Bagi komputer sendiri (yang bukan benda hidup), tidak ada bedanya antara data dan informasi, keduanya dianggap sama saja.

Bagi manusia, ada perbedaan dari kedua istilah tersebut. Informasi dapat dikatakan adalah suatu fakta yang memiliki nilai atau arti bagi seseorang. Mungkin saja bagi orang lain fakta itu tidak memiliki arti, maka baginya itu barulah data.

Contoh, jika saya tuliskan angka 42. Apakah anda tahu apa arti angka tersebut ?. Bagi saya, itu sudah merupakan informasi, karena angka tersebut saya dapatkan ketika saya tanyakan umur seseorang. Tapi, jika saya ingin tahu tahun berapa dia lahir dan saya meghitungnya sendiri, maka angka tadi baru merupakan data bagi saya.

Jadi, jika suatu fakta yang saya peroleh harus saya proses lebih lanjut, maka disebut dengan data. Hasil proses yang saya hasilkan untuk mengetahui sesuatu, itu adalah informasi. Suatu perbedaan yang sangat tipis dan bersifat subjektif.

Komputer memiliki hirarki : Input-Proses-Output (IPO). Input adalah data bagi pengguna (user), komputer memprosesnya untuk menghasilkan informasi bagi pengguna atau pihak lain yang membutuihkannya. etiganya harus bersesuaian (atau logis), artinya jika kita ingin mengetahui usia seseorang (output), maka komputer akan butuh data tahun kelahiran dan tahun sekarang (input). Prosesnya juga harus kita beri tahu juga bahwa usia seseorang adalah hasil pengurangan tahun sekarang dengan tahun kelahirannya.

DATABASE

Wajarlah, bila kita ingin tahu, apa sih itu database ?, untuk apa sih ?, bagaimana sih ?, seperti apa sih, dan berbagai pertanyaan lain. Justru sebagai pembelajar, pertanyaan-pertanyaan semacam itu perlu dimiliki ketika kita akan mengikuti satu mata kuliah yang baru. Dengan memiliki pertanyaan-pertanyaan seperti itu, setidaknya kita sudah memiliki satu sudut pandang yang terfokus untuk menjawab segala rasa keingintahuan kita selama mengikuti mata kuliah itu.

Banyak buku yang beredar yang mendefinisikan arti dari database yang di dalam bahasa Indonesia diterjemahkan dengan basis data atau landas data. Di sini, saya tidak akan langsung mendefinisikan arti dari database, tetapi saya mengajak anda sekalian untuk “turut membantu” mendefinisikannya setelah beberapa uraian yang akan saya gambarkan berikut ini.

PERKEMBANGAN SISTEM PENCATATAN

Sebelum ada uang, dulu orang melakukan perniagaan hanya dengan melakukan proses barter (pertukaran barang dengan barang atau jasa), tidak ada pencatatan yang perlu dilakukan. Jaman terus berubah, dan dengan adanya uang, orang bisa melakukan perniagaan melalui perantara uang sebagai alat pembayaran yang sah. Kemudian muncul utang-piutang, pemberlakuan kurs valuta asing, dan berbagai jenis bentuk perdagangan dan pasar.

Pencatatan yang dilakukan tidak lagi hanya sekadar catatan dagang seperti neraca laba-rugi, tetapi juga sudah mencatat mengenai kepegawaian, persediaan barang, distributor, prosedur pemesanan barang, dan sebagainya. Catatan-catatan itu lebih dikenal dengan istilah administrasi.

SISTEM BERKAS PRIMITIF

Kedengarannya seperti “kejam,” tetapi memang begitulah istilah yang banyak dikemukakan di berbagai buku referensi untuk menggambarkan suatu proses pencatatan (administrasi) yang masih menggunakan berkas-berkas manual, seperti kertas, mesin ketik manual, kalkulator, map-map, lemari penyimpan berkas itu, dan sejenisnya.

Di negara kita, masih banyak perusahaan yang melakukan hal demikian dalam proses keadministrasiannya, lalu, apakah bangsa kita masih dapat dikatakan bangsa primitif ?. Kita tidak akan membahasnya.

SISTEM BERKAS TRADISIONAL

Istilah “tradisional” di sini, adalah tradisional bagi era komputerisasi. Jadi, perusahaan yang masuk dalam jenis ini adalah perusahaan yang sudah menggunakan komputer sebagai alat bantu keadministrasiannya, tetapi setiap komputer yang ada diperlakukan sebagai stand alone (berdiri sendiri-sendiri). Andaikan sudah menggunakan komputer mini atau mainframe sekalipun, teknik penyimpanan datanya masih terkesan “terkotak-kotak,” atau setiap user memiliki “jatah” sendiri-sendiri dalam penggunaan media penyimpanan datanya (storage device).

Misalnya, di perusahaan ini ada empat bagian utama, yaitu (1) Bagian Personalia, (2) Bagian Produksi, (3) Bagian Keuangan, dan (4) Bagian Pemasaran. Maka, komputer yang ada di setiap bagian hanya digunakan untuk mengolah data yang ada di bagiannya saja, tidak peduli bagian lain mau berbuat apa dengan komputernya masing-masing.

Gambar 4 Sistem Berkas Tradisional

Mari kita “masuki” perusahaan itu, dan mencari tahu apa yang terjadi di dalamnya.

PROGRAMMING ORIENTED

Ternyata, dari keempat user (pemanfaat) komputer di perusahaan itu, mereka menggunakan software (termasuk bahasa pemrograman) yang berbeda-beda dan tidak dapat saling dikoneksikan. Si Ali yang bertugas di komputer di bagian Personalia lebih memilih menggunakan COBOL sebagai bahasa pemrogramannya, sedangkan si Badu yang bertugas di bagian Produksi menggunakan RPG, si Coki yang di bagian Keuangan menggunakan EXCEL, dan si Danu yang di bagian Pemasaran menggunakan dBase.

Data dari masing-masing pemanfaat tidak dapat saling dikoneksikan secara langsung, data COBOL hanya dapat diakses secara langsung oleh bahasa pemrograman COBOL saja, data RPG begitu juga, hanya dapat diakses secara langsung oleh program RPG, dan begitu juga dengan yang lainnya. Data yang hanya dapat dibaca oleh bahasa pemrograman yang membentuknya seperti itu disebut dengan programming oriented.

DATA REDUNDANCY

Karena pegawai di perusahaan itu sering dimutasi (dipindah-pindah) dari satu bagian ke bagian lain, maka di keempat komputer itu berisi pula data pegawai yang bekerja di perusahaan itu (bukan hanya per bagian saja).

Jika diamati, maka terjadi pemborosan penggunaan memory space komputer di perusahaan itu karena data pegawai yang sama disimpan di empat komputer yang berbeda (di masing-masing bagian).

Istilah, dan yang menjadi kata kunci dari database adalah redundancy atau kerangkapan data. Salah satu prosedur dalam perancangan, pembentukan, atau pembuatan database akan mencegah terjadinya kerangkapan data (non redundancy). Dengan penghilangan kerangkapan data, maka penggunaan memori akan lebih efisien.

DATA INCONCISTENCY

Di sana, saya berkenalan dengan seorang gadis, pegawai di perusahaan itu yang namanya “Neneng Erika Fachliza.” Diam-diam saya ingin mengetahui biodata lengkapnya, tetapi saya kesulitan mendapatkan biodatanya di setiap komputer, karena saya tidak menanyakan Nomor Pegawai kepadanya yang mencadi atribut kunci (key field) dari record seseorang.

Karena saya ingin sekali mendapatkan biodata lengkapnya, maka saya minta kepada petugas operasi komputer di bagian-bagian yang ada di perusahaan itu satu per satu untuk mencari berdasarkan namanya.

Di bagian Personalia, petugas itu sempat mencari biodatanya sampai empat kali, tetapi tidak ketemu juga. Pertama, saya beri nama lengkap, “Neneng Erika Fachliza,” kedua saya beri nama depannya saja “Neneng,” ketiga saya beri nama belakangnya saja “Fachliza,” dan yang keempat saya beri nama tengahnya saya “Erika.”

Pindah ke bagian lain, hasilnya sama juga, tidak ketemu biodatanya. Karena penasaran, saya pergi menemui gadis itu dan menanyakan Nomor Pegawainya. Dengan bekal itu, saya langsung bisa mendapatkan biodatanya.

Ternyata, nama gadis itu di empat komputer yang ada ditulis berbeda-beda, di bagian Personalia, namanya ditulis dengan “N.E. FACHLIZA”, di bagian Produksi ditulis dengan “NENENG ERIKA F,” di bagian Pemasaran ditulis dengan “N. ERIKA F,” dan di bagian Keuangan ditulis dengan “N. ERIKA FACHLIZA.” Jelas saja saya sulit mendapatkan biodatanya, karena data yang tadi saya masukkan tidak menggunakan huruf besar semua.

Dari sana kita bisa menarik kesimpulan, terdapat ketidakkonsistenan dalam menuliskan sebuah elemen data, selain cara menulisnya, juga penentuan panjang atribut (misalkan, berapa karakter yang disediakan untuk menuliskan nama seseorang) bisa saja saling berbeda.

NON VALIDITY DATA

Suatu ketika, gadis itu pindah alamat karena rumah kontrakan yang ditempatinya selama ini akan dipakai sendiri oleh pemilik rumahnya. Karena ia tidak memberi tahu saya, maka saya kembali ke perusahaan itu untuk mendapatkan alamat barunya.

Dari empat komputer yang ada di keempat bagian itu, hanya ada satu yang alamatnya berbeda, yang ketiganya sama. Jika diambil suara terbanyak untuk menyatakan data di bagian mana yang valid, maka yang tiga bagian itu akan menang.

Tapi, justru saya lebih mempercayai yang satu itu ketimbang yang tiga lainnya karena saya tahu yang tiga lainnya itu adalah alamat lamanya. Jadi, saya bisa memperkirakan bahwa gadis itu baru melapor ke satu bagian saja ketika ia pindah alamat. Jadi, ia harus melaporkan kepindahannya ke setiap bagian yang ada.

NON INTEGRITY DATA/ NON SHARING DATA

Ketika akan diadakan rapat untuk membahas kemajuan perusahaan, Pimpinan perusahaan meminta laporan dari keempat bagian yang ada. Sang Sekretaris dan Notulis sibuk menyiapkan bahan-bahan rapat. Mereka mencoba menyusun laporan-laporan agar mudah dimengerti dan mudah dibawakan pada rapat nanti oleh Pimpinan perusahaan.

Bagian Keuangan melaporkan bahwa terdapat kerugian perusahaan pada bulan ini karena hasil penjualan menurun. Sekretaris melihat laporan dari bagian Penjualan, ternyata tidak ada barang yang tersisa, Sekretaris mengecek laporan dari bagian Produksi, ternyata memang ada penurunan produksi. Tetapi kenapa produksi menurun, sang Sekretaris tidak mendapatkan jawabannya karena bagian Personalia hanya melaporkan jumlah pegawainya saja, tidak lengkap dengan absensi kehadirannya.

Dari hasil rapat diketahui bahwa penurunan produksi disebabkan oleh banyaknya pegawai di bagian Produksi yang sering membolos kerja, dan mereka membolos karena alasan gaji yang diterima sudah tidak layak lagi.

Bagi seorang Pimpinan perusahaan, untuk mengambil suatu kebijakan atau keputusan perlu-tidaknya ia menaikkan gaji karyawan harus dilandasi dengan data yang akurat dari berbagai sumber. Bila data dapat diterima secara lengkap dan saling berhubungan (integrity) antara data di satu bagian dengan bagian lain, maka Pimpinan perusahaan bisa dengan tepat mengambil keputusan, “tambah saja pegawainya,” misalkan.

Itulah, sedikit “cerita” mengenai ketidakandalan komputer dalam membantu proses administrasi di suatu perusahaan, karena komputer itu masih digunakan dalam suatu bentuk organisasi komputer yang disebut dengan Sistem Berkas Tradisional.

Kelemahan-kelemahan di atas akan diatasi dengan suatu sistem baru yang disebut dengan Sistem Database. Pembahasan sistem database akan dimulai dari Bab 2 dan seterusnya, kini kita lanjutkan kembali pembahasan untuk “mencari” definisi dan pengertian mengenai database itu sendiri dari sisi lain.

KONSEP PEMECAHAN MASALAH DI SISTEM FILE TRADISIONAL

Sebetulnya, jika diamati atau dianalisis, pemecahan atas masalah-masalah yang terjadi di sistem file tradisional secara konsep amat mudah, yaitu dengan “menyatukan seluruh data mereka ke satu media penyimpanan …(definisi 3), dengan membuang nilai data yang berulang atau terduplikasi, dan dibuat jaringan agar semua user mengakses data yang sesuai dengan kebutuhannya dari tempat penyimpanan yang sama.”

Jika data Pegawai hanya ada di satu tempat (di server), dan siapapun yang memiliki kebutuhan dengan data itu harus mengambil di sana, maka tidak ada lagi penulisan nama yang berbeda-beda, atau perubahan data yang harus dilakukan berulang-ulang seperti yang harus dilakukan di sistem file tradisional.

Dari ketiga definisi parsial tentang database di atas, kita bisa menarik satu kesimpulan bahwa database adalah “sekumpulan file yang saling berelasi yang disimpan di satu media penyimpanan elektronik, dan dapat digunakan bersama-sama dalam suatu enterprise.”

Gambar 5. Konsep Pemecahan Masalah di Sistem File Tradisional

Tentu saja, definisi itu tidak merupakan harga mati, bisa saja di definisi itu dimasukkan pula unsur-unsur penunjang lainnya seperti : “sekumpulan file non redundancy yang saling berelasi yang disimpan di satu media penyimpanan elektronik, dan dapat digunakan bersama-sama untuk memberi manfaat bagi perusahaan.”

Dan sebagainya.

Lalu, jika semua file sudah dikumpulkan sesuai definisi database di atas, apakah masih ada batasan-batasan (kendala-kendala) lainnya ?. Tentu saja, seperti (1) apakah semua user bisa membuka semua data, termasuk yang bukan wewenangnya ?, (2) bagaimana cara merelasikan setiap file yang ada di dalam data base ?, (3) siapa yang “mengatur lalu lintas” data ?, (4) bagaimana caranya meniadakan data yang rangkap ? (5) apakah harus menggunakan bahasa pemrograman yang sama ?, dan banyak lagi pertanyaan lainnya.

KEUNTUNGAN NYATA DARI PENGGUNAAN DATA BASE

Dari cerita di atas, kiranya anda sudah dapat “menerka,” apa sebetulnya keuntungan dipergunakannya sistem database di suatu unit usaha. Dulu mungkin tidak terbayangkan, menabung uang di bank di kota A bisa mengambilnya di kota B dalam waktu yang sangat singkat (hampir bersamaan). Dulu mungkin juga tak terbayangkan penggunaan kartu kredit yang amat canggih, bisa digunakan di berbagai negara.

Contoh-contoh itu hanya sebagian keuntungan nyata dari penggunaan database.

Tunggu bahasan mendatang…………….

Lampiran

1. Basis Bilangan

Sistem bilangan binar (binary) memiliki basis dua, karenanya ia hanya memiliki angka 0 dan 1 saja. Sistem bilangan oktal (octal) memiliki basis delapan, karenanya ia hanya memiliki angka 0, 1, 2, 3, 4, 5, 6, dan 7 saja . Sistem bilangan desimal (decimal) memiliki basis sepuluh, seperti yang biasa kita gunakan sehari-hari, memiliki angka 0, 1, 2, 3, 4, 5, 6, 7, 8, dan 9. Sedangkan sistem bilangan heksadesimal (hexadecimal) memiliki basis enambelas, angka-angkanya adalah 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, dan F.

Berikut nilai desimal per digit berdasarkan basisnya :

Cara perhitungan nilai basis dua

24

23

22

21

20

Nilai desimalnya

16

8

4

2

1

Cara perhitungan nilai basis delapan

84

83

82

81

80

Nilai desimalnya

4096

512

64

8

1

Cara perhitungan nilai basis enambelas

164

163

162

161

160

Nilai desimalnya

65536

4096

256

16

1

2. Konversi Bilangan dari Binar

2.1. Konversi Bilangan Binar ke Oktal

Konversi ini dilakukan dengan menggabung-gabung setiap tiga digit dari kanan dan secara rekursif dilakukan perhitungan nilainya (dengan menjumlahkan nilai desimalnya yang berada di bawah angka 1 yang dimilikinya). Setiap gabungan akan menjadi satu digit nilai dalam oktal.

Contoh : 100011110001102 = ……. 8 ?

Gab. 5

Gab. 4

Gab. 3

Gab. 2

Gab. 1

Binar

1

0

0

0

1

1

1

1

0

0

0

1

1

0

Nilai desimalnya

2

1

4

2

1

4

2

1

4

2

1

4

2

1

Oktal

2

1

7

0

6

Jadi, 100011110001102 = 217068

2.2. Konversi Bilangan Binar ke Desimal

Konversi ini dilakukan dengan menjumlahkan seluruh nilai desimalnya yang berada di bawah angka 1 yang dimilikinya.

Contoh : 10001102 = ……. 10?

Binar

1

0

0

0

1

1

0

Nilai desimalnya

64

32

16

8

4

2

1

Desimal

16 + 4 + 2 = 70

Jadi, 10001102 = 7010

2.3. Konversi Bilangan Binar ke Heksadesimal

Konversi ini dilakukan dengan menggabung-gabung setiap empat digit dari kanan dan secara rekursif dilakukan perhitungan nilainya (dengan menjumlahkan nilai desimalnya yang berada di bawah angka 1 yang dimilikinya). Setiap gabungan akan menjadi satu digit nilai dalam heksadesimal.

Contoh : 100011110001102 = ……. 16 ?

Gab. 4

Gab. 3

Gab. 2

Gab. 1

Binar

1

0

0

0

1

1

1

1

0

0

0

1

1

0

Nilai desimalnya

2

1

8

4

2

1

8

4

2

1

8

4

2

1

Heksadesimal

2

3

C

6

Jadi, 100011110001102 = 23C616

3. Konversi Bilangan dari Oktal

3.1. Konversi Bilangan Oktal ke Binar

Konversi bilangan oktal ke binar dilakukan dengan menjabarkan setiap digit bilangan oktal menjadi tiga digit bilangan binar.

Contoh : 17058 = ……. 2 ?

Oktal

1

7

0

5

Nilai desimalnya

4

2

1

4

2

1

4

2

1

4

2

1

Binar

0

0

1

1

1

1

0

0

0

1

0

1

Jadi, 17058 = 0011110001012 atau 11110001012

3.2. Konversi Bilangan Oktal ke Desimal

Konversi bilangan oktal ke binar dilakukan dengan menjumlahkan hasil perkalian setiap nilai oktal dengan nilai desimalnya.

Contoh : 17058 = ……. 10 ?

Oktal

1

7

0

5

Nilai desimalnya

512

64

8

1

Desimal

(1 X 512) + (7 X 64) + (0 X 8) + (5 X 1)

Jadi, 17058 = 96510

3.3. Konversi Bilangan Oktal ke Heksadesimal

Ada beberapa cara yang dapat dilakukan. Di sini menggunakan cara mengalihkan oktal ke binar terlebih dulu, dan dari binar dilanjutkan ke heksadesimal.

Contoh : 17058 = ……. 16 ?

Oktal

1

7

0

5

Nilai binarnya (pemekaran menjadi tiga digit binar)

0

0

1

1

1

1

0

0

0

1

0

1

Nilai desimal rekursif untuk setiap pengga-bungan empat digit binar

8

4

2

1

8

4

2

1

8

4

2

1

Heksadesimal

3

C

5















Jadi, 17058 = 3C516

4. Konversi Bilangan dari Desimal

4.1. Konversi Bilangan Desimal ke Binar

Di sini, digunakan dua cara untuk mengkonversi bilangan desimal ke binar, yaitu melalui penjabaran ke samping (seperti yang dilakukan di contoh-contoh sebelumnya), dan menggunakan sisa hasil bagi.

Cara pertama dilakukan dengan memberi nilai 1 pada binarnya yang hasil jumlahnya sama dengan bilangan desimalnya.

Contoh : 17510 = ……. 2 ?

Desimal

175

Perhitungan nilai desimal per digit binar

128

64

32

16

8

4

2

1

Binar

1

0

1

0

1

1

1

1

Jadi, 17510= 101011112

Cara kedua dilakukan dengan menuliskan dari bawah, sisa hasil bagi dari proses pembagian ke bawah berikut ini.


Pembagi Bilangan Sisa hasil bagi

175

2 -------------- 1 175 dibagi 2 = 87, sisa = 1}

87

2 -------------- 1 {87 dibagi 2 = 43, sisa = 1}

43

2 -------------- 1 {43 dibagi 2 = 21, sisa = 1}

21

2 -------------- 1 {21 dibagi 2 = 10, sisa = 1}

10

2 -------------- 0 {10 dibagi 2 = 5, sisa = 0}

5

2 -------------- 1 {5 dibagi 2 = 2, sisa = 1}

2

2 -------------- 0 {2 dibagi 2 = 1, sisa = 0}

1

2 -------------- 1 {1 dibagi 2 = 0, sisa = 1}

0

Sisa hasil bagi yang ditulis dari bawah ke atas adalah : 10101111

Jadi, 17510 = 101011112

4.2. Konversi Bilangan Desimal ke Oktal

Caranya sama dengan konversi bilangan desimal ke binar di 3.1.

Contoh : 67510 = ……. 8 ?

Desimal

675

Perhitungan nilai desimal per digit oktal

512

64

8

1

Oktal

1

2

4

3

Jadi, 17510 = 12438

Cara kedua dilakukan dengan menuliskan dari bawah, sisa hasil bagi dari proses pembagian ke bawah berikut ini.

Pembagi Bilangan Sisa hasil bagi

675

8 -------------- 3 {675 dibagi 8 = 84, sisa = 3}

84

8 -------------- 4 {84 dibagi 8 = 10, sisa = 4}

10

8 -------------- 2 {10 dibagi 8 = 1, sisa = 2}

1

8 -------------- 1 {1 dibagi 8 = 0, sisa = 1}

0

Sisa hasil bagi yang ditulis dari bawah ke atas adalah : 1243

Jadi, 17510= 12438

4.3. Konversi Bilangan Desimal ke Heksadesimal

Caranya sama dengan konversi bilangan desimal ke binar di 3.1.

Contoh : 684710 = ……. 16 ?

Desimal

6847

Perhitungan nilai desimal per digit heksadesimal

4096

256

16

1

Heksadesimal

1

A

B

F

Jadi, 684710 = 1ABF16

Cara kedua dilakukan dengan menuliskan dari bawah, sisa hasil bagi dari proses pembagian ke bawah berikut ini.

Pembagi Bilangan Sisa hasil bagi

6847

16 -------------- 15 = F {6847 dibagi 16 = 427, sisa = 15 (F)}

427

16 -------------- 11 = B {427 dibagi 16 = 26, sisa = 11 (B)}

26

16 -------------- 10 = A {26 dibagi 16 = 1, sisa = 10 (A)}

1

16 -------------- 1 {1 dibagi 16 = 0, sisa = 1}

0

Sisa hasil bagi yang ditulis dari bawah ke atas adalah : 1ABF

Jadi, 684710= 1ABF16

5. Konversi Bilangan dari Heksadesimal

5.1. Konversi Bilangan Heksadesimal ke Binar

Caranya, tinggal menjabarkan setiap satu digit bilangan heksadesimal menjadi empat digit bilangan binar.

Contoh : ACE16 = ……. 2

Heksadesimal

A

C

E

Nilai desimal setiap empat digit binar

8

4

2

1

8

4

2

1

8

4

2

1

Binar

1

0

1

0

1

1

0

0

1

1

1

0

Jadi, ACE16 = 1010110011102

5.2. Konversi Bilangan Heksadesimal ke Oktal

Melalui ‘jembatan’ binar, menurut saya akan lebih mudah. Dari setiap penjabaran satu digit heksadesimal ke empat digit binar, dijadikan penggabungan tiga digit binar menjadi oktal.

Contoh : 8AB16 = ……. 8 ?

Heksadesimal

8

A

B

Binar

1

0

0

0

1

0

1

0

1

1

0

1

Oktal

4

2

5

5














Jadi, 8AB16 = 42558 ?

5.3. Konversi Bilangan Heksadesimal ke Desimal

Caranya, tinggal menjumlahkan hasil kali setiap digit bilangan heksadesimal dengan nilai desimalnya.

Contoh : FAB16 = ……. 10

Heksadesimal

F

A

B

Nilai desimal setiap digit

256

16

1

Desimal

(15 X 256) + (10 X 16) + (11 X 1)

Jadi, ACE16 = 401110

Lampiran 2 : Pembuatan Bilangan Negatif (Negasi Bilangan) Binar.

Komputer hanya melakukan proses matematis penjumlahan. Bagaimana dengan operasi pengurangan ?. Contoh : 10 – 7. Oleh komputer, hal itu akan diubah menjadi 10 + (-7).

Lalu, bagaimana membuat angka –7 tersebut ?. Ada tiga cara yang dilakukan, yaitu dengan cara One’s complement, Two’s compelement, dan Sign and Magnitude.

1. One’s Complement

Pertama, kita tentukan dulu, berapa bit untuk mempresentasikan sebuah angka. Misalkan kita ambil 4 bit. Nilai maksimal desimal dari 4 bit binar adalah 2(N-1)-1 yaitu 7, dan minimalnya adalah -2(N-1)-1, yaitu –7. Satu bit terkiri digunakan sebagai sign yaitu tanda positif atau negatif. Bit terkiri diberi nilai 1, bila bilangan tersebut adalah negatif, dan diberi nilai 0 bila bilangan tersebut adalah positif.

Complement dapat diibaratkan sebuah timbangan yang menjadikan bobot kiri dan kanan seimbang, lihat tabel berikut ini :

Nilai Positif

Binar Positif

Nilai Negatif

Binar Negatif

+7

0 111

-7

1 000

+6

0 110

-6

1 001

+5

0 101

-5

1 010

+4

0 100

-4

1 011

+3

0 011

-3

1 100

+2

0 010

-2

1 101

+1

0 001

-1

1 110

0

0 000

-0 ?

1 111

Membuat negasi dari bilangan positif pada one’s complement adalah dengan mengganti semua bit bernilai 1 menjadi 0, dan sebaliknya. Kecuali pada sign-nya, nilai –5 akan memiliki bentuk yang sama dengan 7 – ABS(-5) = 7 – 5 = 2.

Contoh perhitungan dalam desimal : 4 – 2 = 2, atau 4 + (-2) = 2

410 = 0 1 0 02

-210 = 1 1 0 12

-------------------- +

= 1 0 0 0 12

Bisa kita lihat, bahwa hasil operasi membutuhkan bit tambahan (melewati 4 bit yang disediakan). Kelebihan bit paling kiri disebut dengan carry. Pada one’s complement, carry tersebut ditambahkan kembali.

0 0 0 12

12

------------- +

210 = 0 0 1 02

Contoh lain dalam desimal = (-7) - 4 = -11 atau –7 + (-4) = -11 :

-710 = 1 0 0 02

-410 = 1 0 1 12

----------------- +

= 1 0 0 1 12

Carry kita jumlahkan :

0 0 1 12

12

----------- +

0 1 0 02

Hasilnya adalah +4 ?.

Karena batasan nilai untuk 4 bit adalah –7 hingga 7, maka hasil operasi di luar batasan itu tidak akan valid (terjadi overflow).

Contoh lain dalam desimal = 3 - 5 = -2 atau 3 + (-5) = -2

310 = 0 0 1 12

-510 = 1 0 1 02

----------------- +

-210 = 1 1 0 12 (lihat di tabel).

Bit terkiri (sign) = 1, berarti bilangan negatif. Sedangkan 1012 jika dipostifkan menjadi 0102 = 210, dengan demikian, hasilnya adalah -210.

2. Two’s Complement

Kita misalkan juga jumlah bit yang digunakan adalah 4. Menjadikan nilai negatif berdasarkan two’s complement dilakukan dengan cara mengubah semua angka 0 menjadi 1 dan sebaliknya, dan tambahkan dengan 1. Berikut tabelnya :

Nilai Positif

Binar Positif

Nilai Negatif

Binar Negatif

+7

0 111

-7

1 001

+6

0 110

-6

1 010

+5

0 101

-5

1 011

+4

0 100

-4

1 100

+3

0 011

-3

1 101

+2

0 010

-2

1 110

+1

0 001

-1

1 111

0

0 000

-0 ?

1 000

Pembuatan negasinya dapat dilakukan dengan cara 8 – ABS(negatif yang akan dicari), kecuali untuk sign-nya yang sudah pasti, 0 untuk positif, dan 1 untuk negatif.. Misalkan menuliskan –5 adalah dengan cara 8 – 5 = 3. Bilangan positif 3 adalah 0112, maka –5 = 10112.

Cara lainnya adalah dengan mengganti semua bit 0 menjadi 1 kecuali bit 1 terakhir (paling kanan) dan 0 berikutnya (di kanan bit 1 terakhir). Misal, +3 = 00112, maka –3 adalah 11012.

Contoh perhitungan dalam desimal : 6 – 4 = 2, atau 6 + (-4) = 2

610 = 0 1 1 02

-410 = 1 1 0 02

------------------- +

=1 0 0 1 0 2 ¬ hasil

Angka 1 di sebelah kiri hasil disebut dengan carry (karena melebihi bit yang ditentukan). Carry untuk two’s complement selanjutnya dibuang saja. Jadi hasilnya = 00102 , bit terkiri yang 0 menandakan bilangan tersebut adalah bilangan +, sehingga hasilnya adalah +210 (lihat tabel).

Contoh lain dalam desimal = (-3) - 4 = -7 atau –3 + (-4) = -7

-310 = 1 1 0 12

-410 = 1 1 0 02

---------------- +

=1 1 0 0 12 ¬ hasil

Hasil tanpa carry adalah 10012 , bit 1 terkiri menandakan bilangan -, dan angka 001 dalam bilangan negatif adalah –7 (lihat tabel).

Contoh lain dalam desimal = (-6) - 4 = -10 atau –6 + (-4) = -10

-610 = 1 0 1 02

-410 = 1 1 0 02

---------------- +

=1 0 1 1 02 ¬ hasil

Hasil tanpa carry adalah 01102 = +610 ???. Memang, jika melebihi batasan nilai yang ditetapkan, akan terjadi overflow.

Lampiran 3 :Tabel Kode ASCII

ASCII TABLES AND DESCRIPTION

Dec

Hx

Oct

Char

Dec

Hx

Oct

Char

0

0

000

NUL

(null)

26

1A

032

SUB

(substitute)

1

1

001

SOH

(start of heading)

27

1B

033

XSC

(escape)

2

2

002

STX

(start of text)

28

1C

034

FS

(file separator)

3

3

003

ETX

(end of text)

29

1D

035

GS

(group separator)

4

4

004

XOT

(end of transmission)

30

1E

036

RS

(record separator)

5

5

005

XEQ

(enquiry)

31

1F

037

US

(unit separator)

6

6

006

ACK

(acknowledge)

Dec

Hx

Oct

Html

7

7

007

BEL

(bell)

8

8

010

BS

(backspace)

9

9

011

TAB

(horizontal tab)

32

20

040

Space

10

A

012

LF

(NL line feed, new line)

33

21

041

!

!

11

B

013

VT

(vertical tab)

34

22

042

"

12

C

014

FF

(NP form feed, new page)

35

23

043

#

#

13

D

015

CR

(carriage return)

36

24

044

$

$

14

E

016

SO

(shift out)

37

25

045

%

%

15

F

017

SI

(shift in)

38

26

046

&

&

16

10

020

DLE

(data link escape)

39

27

047

'

17

11

021

DC1

(device control 1)

40

28

050

(

(

18

12

022

DC2

(device control 2)

41

29

051

)

)

19

13

023

DC3

(device control 3)

42

2A

052

*

*

20

14

024

DC4

(device control 4)

43

2B

053

+

+

21

15

025

NAK

(negative acknowledge)

44

2C

054

,

,

22

16

026

SYN

(syncronus idle)

45

2D

055

-

-

23

17

027

ETB

(end of trans, block)

46

2E

056

.

.

24

18

030

CAN

(cancel)

47

2F

057

/

/

25

19

031

EM

(end of medium)

48

30

060

0

0


ASCII TABLES AND DESCRIPTION

Dec

Hx

Oct

Html

Dec

Hx

Oct

Html

Dec

Hx

Oct

Html

49

31

061

1

1

79

4F

117

O

O

109

6D

155

m

m

50

32

062

2

2

80

50

120

P

P

110

6E

156

n

n

51

33

063

3

3

81

51

121

Q

Q

111

6F

157

o

o

52

34

064

4

4

82

52

122

R

R

112

70

160

p

p

53

35

065

5

5

83

53

123

S

S

113

71

161

q

q

54

36

066

6

6

84

54

124

T

T

114

72

162

r

r

55

37

067

7

7

85

55

125

U

U

115

73

163

s

s

56

38

070

8

8

86

56

126

V

V

116

74

164

t

t

57

39

071

9

9

87

57

127

W

W

117

75

165

u

u

58

3A

072

:

:

88

58

130

X

X

118

76

166

v

v

59

3B

073

;

;

89

59

131

Y

Y

119

77

167

w

w

60

3C

074

<

<

90

5A

132

Z

Z

120

78

170

x

x

61

3D

075

=

=

91

5B

133

[

[

121

79

171

y

y

62

3E

076

>

>

92

5C

134

\

\

122

7A

172

z

z

63

3F

077

?

?

93

5D

135

]

]

123

7B

173

{

{

64

40

100

@

@

94

5E

136

^

^

124

7C

174

|

|

65

41

101

A

A

95

5F

137

_

_

125

7D

175

}

}

66

42

102

B

B

96

60

140

`

`

126

7E

176

~

~

67

43

103

C

C

97

61

141

a

a

127

7F

177



DEL

68

44

104

D

D

98

62

142

b

b

Untuk 7 digit binar, maksimal = 127 desimal = 177 oktal = 7F heksadesimal

Berikut pengembangan kode ASCII

69

45

105

E

E

99

63

143

c

c

70

46

106

F

F

100

64

144

d

d

71

47

107

G

G

101

65

145

e

e

72

48

110

H

H

102

66

146

f

f

73

49

111

I

I

103

67

147

g

g

74

4A

112

J

J

104

68

150

h

h

75

4B

113

K

K

105

69

151

i

i

76

4C

114

L

L

106

6A

152

j

j

77

4D

115

M

M

107

6B

153

k

k

78

4E

116

N

N

108

6C

154

l

l