6/22/12

Mengenal istilah 32-bit dan 64-bit pada komputer





Kita sering mendengar istilah 32-bit atau 64-bit pada komputer, itu maksudnya apa? Tulisan berikut ini mencoba menjelaskan tenant pegertian 32-bit dan 64-bit pada komputer. 32-bit dan 64-bit mengacu pada arsitektur processor. Processor 32-bit artinya register2 nya (unit penyimpanan data terkecil di dalamnya) berukuran 32 bit. Processor 64-bit artinya register2 nya berukuran 64 bit.

( Register2 inilah yang digunakan untuk melakukan macam2 operasi. Misalnya c = a + b, maka register “eax” akan me-load nilai dari “a” (di memory), kemudian pada register “eax” ditambahkan nilai dari “b”, lalu “eax” ditulis ke memory pada posisi variabel “c” )

Pengaruh ukuran register terhadap kecepatan:
Setiap proses baca/tulis dari memory (disebut dengan load/store) membaca/menulis informasi sebesar ukuran register; maka register 64-bit potensial membaca/menulis memory 2x kecepatan register 32-bit.
Tapi ini teoretis saja, karena kenyataannya prosesor juga menghabiskan waktu untuk melakukan hal-hal lain selain load/store, seperti pemrosesan matematis, vector-processing, dll.


Pengaruh ukuran register terhadap presisi:
Secara simplistik: Makin panjang register, makin banyak angka di-belakang-koma yang bisa dihitung secara akurat.
Sebagai gambaran: Misalkan resolusi bilangan real pada 32-bit adalah 0.0001, maka resolusi bilangan real pada 64-bit bisa mencapai 0.0000001 (jadi jauh lebih presisi).

Pengaruh ukuran register terhadap ukuran memori:
Salah satu dari sekian banyak register adalah “addressing register”. Addressing register (atau registers, kalau lebih dari satu) adalah register yang memiliki fungsi ‘menunjuk’ ke alamat tertentu dalam memory. Jangkauan (range) penunjukan ini disebut dengan istilah memory space.
Pada arsitektur 32-bit, addressing registers mampu ‘menunjuk’ posisi memory dari 0 s/d 4′294′967′295 (4 GiB – 1). Inilah yang mengakibatkan muncul “batasan 4 GiB” pada sistem berbasis arsitektur 32-bit.

Pada arsitektur 64-bit, addressing registers mampu ‘menunjuk’ posisi memory dari 0 s/d 18′446′744′073′709′551′615 (16 EiB – 1). Seperti kita lihat, tidak ada lagi ‘batasan 4 GiB’ pada sistem berbasis arsitektur 64-bit.

Pengaruh ukuran register terhadap dataset:
“Dataset” adalah istilah untuk ’seperangkat data yang di-load ke dalam memory untuk diproses dan (optionally) ditulis kembali ke hard disk’.

Sistem 32-bit terbatas pada dataset sebesar (2^32)-1, atau (4 GiB – 1). Mengingat sebagian memory harus digunakan untuk OS dan program database ybs, maka biasanya dataset nya hanya sebesar 1-2 GiB saja.

Artinya, sebuah database yang berukuran, katakanlah, 20 GiB (tidak asing dalam konteks perusahaan besar), harus diproses 10~20x.

Sistem 64-bit tidak memiliki batasan di atas. Dia dapat me-load dataset sebesar ketersediaan memory. Artinya, database 20 GiB di atas dapat di-load seluruhnya (asal memory mencukupi), diproses dalam sekali jalan saja.

Agar kita dapat memperoleh keunggulan sistem 64-bit, maka baik software dan hardware harus mendukung.

Software 32-bit jalan di hardware 64-bit tidak bisa memanfaatkan kelebihan arsitektur 64-bit. (Software hanya akan menggunakan 32-bit saja dari 64-bit yang tersedia; 32-bit sisanya tidak dikenali) ==> disebut mode 32-bit.

Sebaliknya, software 64-bit tidak bisa jalan di hardware 32-bit karena kebutuhannya akan lebar register 64-bit tidak bisa dipenuhi.

Windows XP 32-bit dan Windows Vista 32-bit adalah 2 sistem operasi yang masih beroperasi di mode 32-bit.

Windows XP 64-bit dan Windows Vista 64-bit adalah 2 sistem operasi yang mampu beroperasi di mode 64-bit.

AMD64 adalah terobosan (breakthrough) AMD dalam dunia processor x86.

Dahulu hingga prosesor Pentium 3, Intel bersikukuh menggunakan hanya arsitektur 32-bit pada processor x86. Intel menghabiskan uang jutaan dollar untuk mengembangkan arsitektur 64-bit yang samasekali baru (artinya: tidak kompatibel dengan dunia x86) dalam bentuk Intel ITANIUM.

AMD kemudian mengembangkan instruction set (dan arsitektur) dari processor x86 yang dibuatnya (AthlonXP) sehingga lahirlah Athlon64: Processor x86 yang memiliki arsitektur 64-bit.

Instruction set yang diperluas ini disebut AMD64 oleh AMD. Intel terpaksa melakukan cross-license, dan menggunakan instruction set tersebut juga (tapi dengan nama EMT64, bukan AMD64. Biasalah, masalah corporate pride…)

Saya tidak yakin dengan Mac OS X.
Tetapi Linux memiliki versi 32-bit dan versi 64-bit.
Contoh, Ubuntu yang ada di ftp://dl2.foss-id.web.id/iso/ubuntu/releases/hardy/
Ada versi AMD64 (64-bit) dan ada versi i386 (32-bit)

Kelebihan dan kekurangan?
Kita sudah melihat kelebihan dari arsitektur 64-bit. Sekarang kekurangannya:

Banyak Software 32-bit yang tidak bisa jalan di arsitektur 64-bit, khususnya driver.

Mengapa bisa begitu?
Komputer adalah benda yang sangat kompleks. Untuk bisa berguna bagi manusia, komputer perlu melakukan apa yang disebut “Input/Output” (I/O). Contoh I/O adalah kirim/terima data via LAN, kirim gambar ke Monitor via VGA Card, dll.

Nah, semua tindakan I/O membutuhkan buffer. Sebagai contoh, kita kenal “memory VGA” pada VGA Card; itu sebetulnya adalah buffer untuk membantu VGA Card menampilkan gambar di monitor.

Masalahnya, agar I/O bisa berlangsung dengan mulus dan cepat, ‘buffer’ ini perlu mendapatkan alamat. Dan alamat ini di ambil dari memory space. Hal ini terjadi meskipun komponen pelaksana I/O ini memiliki buffernya sendiri (contoh: VGA Card terbaru dari nVidia / ATI biasanya punya minimal 256 MiB RAM pada card nya). Tetap saja memori pada card tersebut akan dipetakan ke memory space.

Agar tidak bentrok dengan Sistem Operasi, yang biasanya di-load ke dalam memory ‘rendah’ (Bottom Memory = memory dengan alamat kecil), maka biasanya pemetaan buffer ini dilakukan di memory ‘tinggi’ (Top Memory = memory dengan alamat besar, atau dihitung mundur dari alamat memori terbesar (2^32)-1)

Catatan: Ini juga alasan yang menyebabkan RAM komputer kalau terpasang 4 GiB hanya akan bisa dipakai Max 3,25 GiB (atau kalau untung 3,5 GiB), ada yang ‘hilang’ karena ‘tertutupi’ oleh buffer dari komponen I/O.

Nah, pada arsitektur 64-bit, hal yang sama pun dilakukan: Buffer untuk I/O dipetakan ke Top Memory. Masalahnya, Top Memory pada arsitektur 64-bit jelas terletak pada posisi yang berbeda dengan Top Memory pada arsitektur 32-bit.

Driver adalah korban yang paling jelas; mereka berusaha mengakses Top Memory 32-bit, padahal lokasi buffer tidak di situ. Akibatnya: Crash.

Software2 lain yang juga coba-coba mengakses Top Memory secara langsung akan mengalami crash juga.

Lucunya, banyak game 32-bit yang malah jalan dengan tanpa masalah di sistem 64-bit; hal ini karena mereka tidak berusaha mengakses Top Memory secara langsung, melainkan meminta bantuan Microsoft DirectX Layer untuk mengakses fitur dari sebuah VGA Card.

source :http://kuncen.cmi.web.id/it-basic/140-mengenal-istilah-32-bit-dan-64-bit-pada-komputer-

Data Definition Language(type domain, integrity constraint)




1. Integrity Constraints (Batasan Integritas)

Constraint (batasan) merupakan aturan yang diberikan pada suatu tabel agar data yang dimasukkan terjamin validitasnya. Batasan integritas akan menjaga basis data dari kerusakan yang terjadi secara tidak sengaja dengan memastikan bahwa perubahan yang diperbolehkan tidak mengakibatkan terjadinya inkonsistensi data.

Constraint dapat diklasifikasikan sesuai dengan elemen dari basis data yang bersangkutan menjadi sebagai berikut.
  • Constraint tersebut intra-relasional apabila batasan (constraint) terpenuhi dalam satu tabel. Constraint ini sendiri dapat dibedakan menjadi 2 yaitu: tuple constraint dan domain constraint. Tuple constraint merupakan constraint yang bisa dievaluasi secara independen pada setiap tuple-nya. Domain constraint atau sering disebut sebagai value constraint merupakan suatu constraint dengan referensi kepada nilai (value) tertentu. Implementasi dari penggunaan domain constraint pada SQL adalah penggunaan klausa check .
 
  • Suatu constraint dikatakan inter-relasional apabila melibatkan lebih dari satu relasi. Bentuk dari constraint ini adalah referential integrity.

2. Domain Constraint


Domain constraint merupakan bentuk integrity constraint yang paling sederhana. Setiap ada pemasukan data baru, maka akan langsung diperiksa oleh sistem. Domain constraint diterapkan pada atribut basis data sehingga sangat dimungkinkan beberapa atribut memiliki domain yang sama.



Tipe-tipe Domain dalam SQL
SQL-92 standar mendukung bermacam-macam tipe domain yang built-in sebagai berikut :
- char(n) : tipe karakter dengan panjang yang tetap (n) (fixed-length character)
- varchar(n) : tipe karakter dengan panjang bervariasi. Maksimum panjang n.
- int : integer
- smallint : small integer
- numeric (p,d) : p menunjukkan jumlah digit bilangan dan d menunjukkan jumlah digit dibelakang titik desimal.
- real, double precision : floating-point dan double-precision floating point
- float (n) : floating-point number
- date : tipe kalender
- time : tipe hari dalam jam,menit dan detik

SQL-92 menggunakan klausa create domain untuk mendefinisikan domain.
Contoh :
create domain nama_perusahaan char(20)

Untuk menciptakan domain baru dapat digunakan perintah create domain. Sebagai contoh adalah pada perintah:

create domain Dollar numeric (12,2)

create domain Pound numeric (12,2)

Perintah ini akan mendefinisikan domain Dollar dan Pound dengan yang merupakan angka desimal sebanyak 12 digit dengan 2 digit berada di belakang koma. Pada bahasa SQL juga terdapat klausa check yang bisa digunakan untuk memeriksa suatu kondisi nilai tertentu yang diinginkan. Berikut adalah contoh penggunaan klausa check pada perintah create domain.

Create domain HourlyWage numeric(5,2) constraint wage-value-test check (value>=4.00)

Perintah tersebut akan mengecek nilai dari domain HourlyWage harus ≥ 4.00

Referential Integrity (Integritas Referensial)

Integritas referensial adalah seperangkat aturan yang mengatur hubungan antara kunci primer dengan kunci tamu milik tabel-tabel yang berada dalam suatu basis data relasional untuk menjaga konsistensi data. Tujuan integritas referensial sendiri adalah untuk menjamin dan memastikan agar entitas dalam suatu tabel yang menunjuk ke suatu pengenal unik pada suatu baris di tabel lain benar-benar menunjuk pada nilai yang memang ada. Sehingga kejadian seperti pada ilustrasi Gambar 2.7 tidak akan terjadi.

Berdasarkan operasi yang dilakukan, integritas referensial dapat dibedakan sebagai berikut:

penambahan (insert)

penghapusan (delete)

peremajaan (update)

Integritas referensial membuat ketiga operasi di atas dapat dilaksanakan pada tabel yang memiliki relasi. Sehingga proses penghapusan ataupun peremajaan suatu kolom juga akan terjadi pada kolom tabel lain yang mempunyai referensi dengannya.

Dalam bahasa Data Definition Language SQL, kunci primer, kunci kandidat, dan kunci tamu, dapat dispesifikasikan sebagai bagian dari pernyataan SQL create table. Kunci kandidat merupakan kunci yang secara unik dapat digunakan untuk mengidentifikasi suatu baris dalam tabel. Berikut adalah salah satu contoh DDL dari pembuatan tabel perusahaan_utama.

create table perusahaan_utama

(kode_perusahaan char(6) not null,

nama varcar(25),

alamat char(9),

primary key (kode_perusahaan),

foreign key (kod) references nama on delete cascade)

Assertion

Penggunaan constraint berupa kunci primer dan kunci tamu pada deklarasi awal tabel merupakan salah satu cara untuk memelihara integritas data. Domain constraint dan Referential integrity constraint merupakan salah satu bentuk dari assertion. Pada beberapa basis data penggunaan kunci primer dan kunci tamu sudah cukup untuk menjaga integritas data. Tetapi pada beberapa kasus basis data diperlukan suatu constraint ataupun aturan yang lebih baik.

Metode lain yang sering digunakan dalam pemeliharaan integritas adalah assertion dan trigger. Assertion digunakan untuk mengekspresikan suatu kondisi basis data sesuai dengan yang kita inginkan. Seperti halnya prosedur, assertion diberikan nama tertentu sehingga bisa dibatalkan apabila ada kondisi tertentu yang menuntut perubahan struktur basis data. Syntax dari definisi assertion adalah sebagai berikut.

create assertion AssertionName check (predicate)

Ketika assertion dibuat, maka sistem akan melakukan pengecekan validitas dari assertion yang dibuat. Jika assertion yang dibuat valid maka perubahan terhadap basis data hanya akan berlaku ketika tidak menyalahi assertion yang telah dibuat. Pengecekan validitas tersebut akan memakan biaya yang besar terutama apabila assertion yang dibuat cukup rumit, sehingga penggunaan dan pembuatan assertion harus dilakukan dengan hati-hati. Karena itu tidak banyak developer sistem dan DBMS yang menyediakan fasilitas ini.

Trigger

Trigger merupakan pernyataan yang dieksekusi secara otomatis oleh sistem basis data sebagai akibat dari perubahan basis data. Ada beberapa persyaratan yang harus dipenuhi untuk merancang mekanisme trigger, yaitu:

Menspesifikasikan kapan trigger harus dieksekusi.

Menspesifikasikan perintah yang akan dilaksanakan ketika trigger dijalankan.

Sistem basis data yang berbasis SQL pada umumnya menggunakan trigger, walaupun sebelum versi SQL:1999 belum dimasukkan ke dalam standar SQL. Hanya saja setiap sistem basis data menerapkan trigger melalui syntax yang berbeda-beda. Syntax SQL:1999 mirip dengan syntax trigger pada IBM DB2 dan Oracle.

Trigger sebenarnya tidak lain adalah suatu pemrograman PL/SQL yang mirip dengan procedure. Perbedaan mendasar dengan procedure adalah aktivasinya, dimana procedure dapat dipanggil secara langsung sementara trigger dipanggil melalui pemicu yang berupa bahasa DML (Data Manipulation Language). Bahasa DML yang digunakan sebagai pemicu adalah insert, update dan delet


shodik-qlaw. Powered by Blogger and Supported by qlaw community - bebas asalkan sopan