Kamis, 30 Oktober 2008

Metode Pengurutan Data

METODE PENGURUTAN DATA
Pengurutan data dalam struktur data sangat penting untuk data yang beripe data numerik ataupun karakter.Pengurutan dapat dilakukan secara ascending (urut naik) dan descending (urut turun). Pengurutan (Sorting) adalah proses menyusun kembali data yang sebelumnya telah disusun dengan suatu pola tertentu, sehingga tersusun secara teratur menurut aturan tertentu. Beberapa metode pengurutan data sebagai berikut :
1. Bubble Shot, pengurutan berdasarkan perbandingan ( comparison based sorting)
2. Shell sort, pengurutan berkurang menurun (diminishing increment sort method)\
3. Quick sort, Pengurutan berdasarkan pembagian dan penguasaan (devide and conquer method )

Bubble Shot
Merupakan algoritma penyortiran yang dimulai dan berakhir pada sebuah daftar dengan n elemen dan memindahkan seluruhnya, menguji nilai setiap pasangan item yang berdekatan dan menukarkannya jika mereka tidak berada dalam urutan yang tepat.
Metode sorting termudah
Diberi nama “Bubble” karena proses pengurutan secara berangsur-angsur bergerak/berpindah keposisinya yang tepat, seperti gelembung yang keluar dari sebuah gelas bersoda..
Bubble Sort mengurutkan data dengan cara membandingkan elemen sekarang dengan elemen berikutnya.
Pengurutan Ascending : Jika elemen sekarang lebih besar dari elemen berikutnya maka kedua elemen tersebut ditukar.
Pengurutan Descending : Jika elemen sekarang lebih kecil dari elemen berikutnya, maka kedua elemen tersebut ditukar.
Algoritma ini seolah-olah menggeser satu per satu elemen dari kanan ke kiri atau kiri ke kanan, tergantung jenis pengurutannya, asc atau desc. Ketika satu proses telah selesai, maka bubble sort akan mengulangi proses, demikian seterusnya sampai dengan iterasi sebanyak n-1.
Kapan berhentinya? Bubble sort berhenti jika seluruh array telah diperiksa dan tidak ada pertukaran lagi yang bisa dilakukan, serta tercapai perurutan yang telah diinginkan.

Shell sort
Mengurutkan data dengan cara membandingkan suatu data dengan data lain yang memiliki jarak tertentu sehingga dibentuk sub-list, kemudian dilakukan pertukaran jika diperluka. Definisi lain merupakan algoritma yang stau jenis dengan insertion sort, dimana pada setiap nilai i dalam n/i item diurutkan. Pada setiappergantian nilai, i dikurangi sampai 1 sebagai nilai terakhir.

Quick sort
Quicksort ditemukan oleh C.A.R Hoare. Seperti pada merge sort, algoritma ini juga
berdasar pada pola divide-and-conquer. Berbeda dengan merge sort, algoritma ini
hanya mengikuti langkah – langkah sebagai berikut :
1. Devidi
Memilah rangkaian data menjadi dua sub-rangkaian A[p…q-1] dan A[q+1…r]
dimana setiap elemen A[p…q-1] adalah kurang dari atau sama dengan A[q]
dan setiap elemen pada A[q+1…r] adalah lebih besar atau sama dengan
elemen pada A[q]. A[q] disebut sebagai elemen pivot. Perhitungan pada
elemen q merupakan salah satu bagian dari prosedur pemisahan.
2. Conquer
Mengurutkan elemen pada sub-rangkaian secara rekursif

Contoh Scrip

#include

#include

#include

void main()

{

int nilai[5];

int j,i;

float total,rata;

clrscr;

cout<<"Masukkan 7 nilai matakuliah SO mahasiswa :"<

j=1;

for(int i=0;i<7;i++)

{

cout<<"Mahasiswa ke "<<<" nilai kuliah SO : ";

cin>>nilai[i];

total=total+nilai[i];

}

cout<<"Data nilai mahasiswa yang dimasukkan:"<

j=1;

for(int i=0;i<5;i++)

cout<<"Nilai rata rata mahasiswa "<<<": "<<<" rata"<

rata=total/5;

cout<<"rata rata : "<

getch();

}

Rabu, 15 Oktober 2008

Pengertian dari Prosedural

PEMROGRAMAN PROSEDURAL

Pengertian
Merupakan suatu paradigma yang berdasarkan pada konsep dari modularity dan pengelompokan kode program. Program utama dianggap sebagai sebuah modul, dimana modul tersebut didukung oleh modul-modul lainnya, baik berupa fungsi ataupun prosedur. Sedangkan kumpulan dari kesatuan modul-modul disebut juga dengan unit atau pakett, yang bisa dianggap sebagai sebuah perpustakaan dari masing-masing unit atau paket tersebut. Sebagai contoh pemograman Visual Basic yang berbasis Basica,Fortran,Pascal,Delphi,C++

Pemrograman dalam paradigma prosedural dilakukan dengan memberikan serangkaian perintah

yang berurutan. Dalam bab ini akan dibahas hal-hal yang menjadi dasar dalam pemrograman

prosedural, meliputi definisi algoritma dan konstruktor pemrograman prosedural, serta konsep

Input, Proses, dan Output yang sangat lazim dalam dunia pemrograman prosedural.

Algoritma

Algoritma adalah serangkaian langkah-langkah yang tepat, terperinci, dan terbatas untuk menyelesaikan suatu masalah. Langkah yang tepat artinya serangkaian langkah tersebut selalu benar untuk menyelesaikan masalah yang diberikan. Langkah yang tidak memberikan hasil yang benar untuk domain masalah yang diberikan bukanlah sebuah algoritma.

Langkah yang terperinci artinya setiap langkah diberikan secara detail dan dapat dieksekusi oleh komputer, instruksi seperti “angkat sedikit ke kiri” merupakan contoh instruksi yang tidak tepat, karena “sedikit” tidak menyatakan sesuatu yang tepat.

Langkah yang diberikan harus terbatas, artinya suatu saat langkah harus berhenti, jika langkah tidak

pernah berhenti (misalnya: “ambil air, masukkan ke bak mandi, ulangi ambil air, dan seterusnya”)

maka serangkaian langkah itu tidak disebut sebagai algoritma (jika: “ambil air, masukkan ke bak mandi, ulangi ambil air sampai bak mandi penuh”, maka bisa disebut algoritma, namun langkah ambil air, masukkan ke bak mandi, harus diperinci).

Konstruktor (elemen) Pemrograman Prosedural

Elemen bahasa pemrograman prosedural yang penting adalah:

1. Program utama

2. Tipe

3. Konstanta 14 Konsep Dasar Pemrograman Prosedural

4. Variabel

5. Ekspresi, operator, dan operand

6. Struktur Data

7. Instruksi dasar

8. Program Moduler

9. File eksternal

10. Rekurens

Konstruktor ini tidak untuk dipelajari secara berurutan, namun semua perlu dipelajari dan dimengerti untuk dapat membuat program dengan baik.

Input, Proses, dan Output

Sekumpulan aksi dalam pemrograman prosedural bisa dibagi menjadi tiga bagian penting yaitu:

input, proses, dan output. Bagian input, proses, dan output dikerjakan secara sekuensial, dan dalam setiap bagian mungkin akan ada input, proses, dan output.

Pengertian OOP

OBJECT ORIENTED PROGRAMMING

Object-Oriented Programming (OOP) adalah sebuah pendekatan untuk pengembangan / development suatu software dimana dalam struktur software tersebut didasarkan kepada interaksi object dalam penyelesaian suatu proses/tugas. Interaksi tersebut mengambil form dari pesan-pesan dan mengirimkannya kembali antar object tersebut. Object akan merespon pesan tersebut menjadi sebuah tindakan /action atau metode. Bahasa pemrograman berbasis object menyediakan mekanisme untuk bekerja dengan:

§ kelas dan object

§ methods

§ inheritance

§ polymorphism

§ reusability

Object-oriented programs terdiri dari objects yang berinteraksi satu sama lainnya untuk menyelesaikan sebuah tugas. Seperti dunia nyata, users dari software programs dilibatkan dari logika proses untuk menyelesaikan tugas. Contoh, ketika kamu mencetak sebuah halaman diword processor, kamu berarti melakukan inisialisasi tindakan dengan mengklik tombol printer. Kemudian kamu hanya menunggu respon apakah job tersebut sukses atau gagal, sedangkan proses terjadi internal tanpa kita ketahui. Tentunya setelah kamu menekan tombol printer, maka secara simultan object tombol tersebut berinteraksi dengan object printer untuk menyelesaikan job tersebut.

Mengapa menggunakan OOP?

Mengapa OOP dibangun dalam sebuah paradigma yang luas untuk menyelesaikan masalah bisnis? Bahasa prosedural mengatur program dalam mode barisan linier yang bekerja dari atas ke bawah. Dengan kata lain, program adalah kumpulan dari tahapan yang dijalankan setelah yang lain berjalan. Programming tipe ini bekerja dengan baik untuk program kecil yang berisi code relative sedikit, tetapi pada saat program menjadi besar, mereka cenderung susah untuk di-manage dan di-debug. Dalam usaha untuk me-manage program, struktur programming diperkenalkan cara untuk mem-break down code-code tersebut melalui functions dan procedures.

Ini adalah sebuah langkah perbaikan, namun pada saat program dijalankan dalam sebuah fungsi bisnis yang kompleks dan berinteraksi dengan sistem lain, maka kelemahan dari struktur metodologi programming muncul kepermukaan meliputi:

1. Programs menjadi lebih susah untuk dimaintain.

2. Fungsi yang tersedia, susah untuk diubah tanpa harus mempengaruhi fungsi sistem secara keseluruhan.

3. Programming tidak baik untuk team development. Programmers harus mengetahui setiap aspek bagaimana program itu bekerja dan tidak menyebabkan terisolasi usaha mereka atas aspek yang lain dari sistem.

4. Butuh usaha yang keras untuk menterjemahkan Business Models dalam programming models. dll

Karakteristik OOP

Dalam section ini, kita akan melihat beberapa konsep dasar dan term-term yang umum untuk seluruh bahasa OOP.

Objects

Jika kita pikir maka kita sekarang hidup dalam sebuah dunia object-oriented. Kamu adalah object. Kamu berinteraksi dengan object lain. Untuk menulis tugas ini kami berinteraksi dengan object komputer. Ketika saya bangun pagi, saya merespon pesan suara object alarm jam. Faktanya, kamu adalah object dengan data-data seperti tinggi dan warna rambut. Kamu mempunyai metode-metode yang kamu akan lakukan, seperti makan dan berjalan.

Jadi, apa itu objects? Dalam term OOP, object adalah sebuah structure yang menggabungkan data dan prosedur untuk bekerja bersama-sama. Contoh, jika kamu tertarik dalam pelacakan data yang dihubungkan dengan produk, kamu akan menciptakan sebuah object produk yang bertanggung jawab untuk me-maintenance dan bekerja dengan data yang bersinggungan dengan produk. Jika kamu ingin kemampuan mencetak dalam aplikasi kamu, kamu harus bekerja dengan sebuah object printer yang bertanggung jawab untuk data serta metode yang digunakan untuk berinteraksi dengan printermu.

Abstraction

Ketika kamu berinteraksi dengan object-object di dunia ini, kamu sering hanya konsentrasi dengan sebuah bagian dari propertiesnya. Tanpa kemampuan untuk mensarikan/abstract atau menyaring untuk dibuang properties object yang asing / tidak ada hubungannya, maka kamu akan menemukan kesulitan untuk memproses informasi yang kebanyakan membombarding kamu. Sebagai hasil abstraction, ketika 2 orang berbeda berinteraksi dengan object yang sama, mereka sering setuju dengan bagian yang berbeda atas atribut. Ketika kami mengendarai mobil, kami perlu tahu kecepatan serta tujuan yang akan dicapai.

Karena mobil itu otomatis, maka kami tidak perlu tahu berapa RPMs dari mesinnya, jadi kami akan membuang informasi ini. Tapi informasi ini sangat diperlukan oleh mekanik atau pembalap.

Ketika membangun objects dalam aplikasi OOP, adalah penting untuk menggabungkan konsep abstraction ini. Jika kamu membangun aplikasi shipping, kamu harus membangun object produk dengan atribut seperti ukuran dan berat. Warna adalah contoh informasi yang tidak ada hubungannya dan harus dibuang. Tetapi ketika kamu membangun order-entry application, warna menjadi penting dan harus termasuk atribut object produk.

Encapsulation

Ciri penting lainnya dari OOP adalah encapsulation. Encapsulation adalah sebuah proses dimana tidak ada akses langsung ke data yang diberikan, bahkan hidden. Jika kamu ingin mendapat data, kamu harus berinteraksi dengan object yang bertanggung jawab atas dara tersebut. Dalam contoh inventory, jika kita ingin melihat atau mengupdate informasi atas produk, kita seharusnya bekerja melalui object produk. Untuk membaca data, kita mengirimkan pesan ke object produk, kemudian object produk akan membaca pesan dan mengirim pesan balik ke kamu.

Object produk mendefinisikan bahwa operasi dapat dilakukan pada data produk. Jika kamu mengirim pesan untuk memodifikasi data dan jika object produk menentukan bahwa permintaan itu valid maka permintaan tersebut akan dilakukan dan akan mengirimkan pesan balik bersama hasilnya.

Pikirkan mengenai Human Resource Department (HRD), yang meng-encapsulasi informasi mengenai karyawan. Mereka menentukan bagaimana data ini dapat digunakan da dimanipulasi. Setiap permintaan data karyawan atau permintaan untuk mengupdate datanya harus dijalankan melalui mereka. Contoh lain, network security. Setiap permintaan informasi security atau perubahan kebijakan security harus dilakukan melalui network administrator. Data security di-encapsulate dari user network.

Dengan melakukan encapsulasi pada data, berarti kamu membuat data dari sistemmu lebih secure dan terpercaya. Karena kamu mengetahui bagaimana data diakses dan operasi apa yang sedang berjalan pada data. Hal ini membuat maintenance program menjadi lebih mudah. Kamu juga dapat memodifikasi metode yang digunakan untuk kerja pada data, dan jika kamu tidak merubah bagaimana metode itu diminta dan tipe response dikirim balik, maka kamu tidak dapat merubah object lain dengan menggunakan metode tersebut. Pikirkan ketika kamu mengirim surat melalui pos. Kamu membuat permintaan ke kantor pos agar mengantar surat, dan bagaimana kantor pos menyelesaikannya kita tidak perlu tahu. Jika ada perubahan rute yang digunakan, maka hal itu tidak mempengaruhi keinginan untuk kirim surat lewat kantor pos. Kamu tidak perlu tahu prosedur internal yang digunakan oleh kantor pos untuk mengantar surat.

Polymorphism

Polymorphisms adalah kemampuan 2 buah object yang berbeda untuk merespon pesan permintaan yang sama dalam suatu cara yang unik. Contoh, saya melatih anjing saya dengan perintah untuk menggonggong dan juga saya melatih burung untuk merespon perintah saya untuk berkicau. Saya lakukan latihan untuk merespon kepada mereka dengan perintah lisan. Melalui polymorphism saya tahu bahwa anjing dan burung akan merespon dengan gonggongan atau kicauan.

Bagaimana hal ini berhubungan dengan OOP? Kamu dapat membuat objects yang dapat merespon pesan yang sama dalam implementasi yang unik. Contohnya, kamu dapat mengirim pesan print ke object printer yang akan mencetak pada printer, dan kamu juga dapat mengirim pesan yang sama ke object screen yang akan menuliskan pada screen monitor. Dalam OOP, kamu menerapkan tipe polymorphism melalui proses yang disebut overloading. Kamu dapat mengimplementasikan metode yang berbeda pada sebuah object yang mempunyai nama yang sama.

Inheritance

Banyak objects diklasifikasikan menurut hirarki. Contoh, kamu dapat mengklasifikasikan sebuah mobil yang mempunyai karakteristik umumnya mobil, seperti mempunyai ban, mesin, serta body. Keturunan berikutnya diklasifikasikan dengan atribut umum seperti ukuran, jumlah roda, isi silinder dll atau mengklasifikasikan mereka atas dasar daya angkutnya. Contoh, ada kendaraan komersial atau kendaraan pribadi, ada truk atau mobil penumpang. Kamu menggunakan inheritance dalam OOP untuk mengklasifikasikan objects dalam program sesuai karakteristik umum dan fungsinya. Hal ini akan membuat pekerjaan bersama object lebih mudah dan lebih intuitif. Hal ini juga membuat programming lebih mudah karena memungkinkan kita untuk mengkombinasikan karakteristik umum kedalam object parent dan mewariskan karakteristik ini ke child object.

Aggregation

Aggregation adalah kondisi ketika object berisi gabungan dari object-object yang berbeda dan bekerja bersama. Contoh mesin pemotong rumput terdiri dari object roda, objects mesin, object pisau dll. Object mesinpun merupakan gabungan dari berbagai object. Kemampuan untuk menggunakan aggregation dalam OOP adalah satu feature yang powerful yang memungkinkan model menjadi akurat.

Konsep dari object oriented programming (OOP) adalah lebih dari sekedar sebuah konsep pemrograman, Object oriented programming adalah cara berpikir tentang aplikasi yang mempelajari untuk berpikir bahwa aplikasi bukan sekedar prosedur melainkan sebagai object dan real entity. Object yang dimaksud disini memiliki pengertian suatu modul yang mengkombinasikan antara data dan kode program yang bekerja sama dalam program dengan melewatkan proses satu sama lain. Jadi object oriented programming merupakan cara yang paling efisien untuk menulis program komputer yang sangat mudah untuk di kombinasikan dan untuk dipergunakan kembali.

Object oriented programming lebih memfokuskan kepada manipulasi object. Kenapa seorang programmer harus mempelajari object oriented programming bahkan seorang programmer yang tidak pernah bekerja dengan object oriented programing pun harus mempelajarinya juga. Hal ini dikarenakan pada suatu hari nanti semua bahasa pemrograman akan menambahkan kemampuan object oriented programming pada bahasanya. Object oriented programming yang paling populer adalah java dan C++, tetapi visual basic pun sudah ikut menambahakan kemampuan ini sejak meluncurkan VB 4.0. Pada kesempatan kali ini kita hanya akan membahas tentang visual basic dan C++ saja. Sesuai dengan namanya object oriented programming maka konsep object merupakan jantung dari object oriented programming.

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