Minggu, 14 Juni 2015

Representasi Digital Data Numerik (1)


Proses pengukuran biasanya bersifat analog, tidak terbatas, dan tentunya bukan data diskrit, misalnya temperatur furnace, rate aliran fluida yang melalui pipa, tekanan fluida, dll. Meskipun ada pula beberapa proses pengukuran yang bersifat diskrit seperti perhitungan unit produksi yang melewati sebuah conveyor belt, tetap saja mayoritas pengukuran di dunia industri adalah analog. Agar perangkat digital dapat memiliki antarmuka dengan sinyal analog, sinyal tersebut perlu didigitalisasikan dengan cara menggunakan konverter dari analog ke digital atau biasa disebut dengan ADC (Analog to Digital Converter). Secara umum, modul ADC menerima sinyal tegangan analog dari sensor dan mengkonversinya menjadi bilangan biner yang proporsional terhadap sinyal. Skala yang biasa dipakai untuk ADC adalah nilai 0 (semua bilangan biner = 0) untuk mewakili input 0 milivolt dan nilai 1 (semua bilangan biner = 1) yang mewakili full-scale dari tegangan input Nilai full-scale pada modul ADC biasanya memiliki tegangan sebesar 5 atau 10 Volt. Sebelum melangkah lebih jauh ke detail pembahasan mengenai kinerja dari ADC ada baiknya kita telaah terlebih dahulu format tipe data yang digunakan pada teknologi komunikasi digital. 

1. Format Bilangan Integer

Integer adalah seluruh bilangan bulat baik itu positif maupun negatif (misalnya 2, 7, 241, 0, -35, -1022). Semua sistem digital modern mewakili kuantitas integer menggunakan penomoran biner, di mana angka integer terdiri dari string "bit" yang memiliki dua kemungkinan, yaitu 0 atau 1. Berbeda dengan sistem penomoran desimal yang merupakan bilangan berbasis sepuluh, penomoran biner merupakan bilangan basis dua. Contoh berikut menunjukkan bagaimana bilangan bulat 603 direpresentasikan dalam dua format, desimal dan biner :

Kemungkinan nilai maksimal untuk bilangan integer adalah basis bilangan dipangkatkan dengan banyaknya bit dikurangi satu. Jadi, untuk 3 digit bilangan desimal, kemungkinan nilai terbesar adalah 103-1 (1000-1=999). Dan misalnya untuk 10 digit bilangan biner, kemungkinan nilai terbesar adalah 210-1 (1024-1=1023).
Keistimewaan dari bilangan biner adalah kemudahannya untuk mengkodekan suatu bentuk fisis. Nilai "1" dan "0" dapar merepresentasikan bentuk dari level tegangan (high atau low), magnetization state, frekuensi sinyal AC, dll. Hal ini membuat bilangan biner menjadi representasi numerik untuk komputer.

Ketika merepresentasikan bilangan integer negatif, kaidah penulisannya cukup dengan menambahkan simbol negatif ke sisi kiri bilangan tersebut. Pada perangkat digital, hal ini dapat diemulasikan dengan menambahkan ekstra "sign bit" yang memiliki nilai 0 atau satu untuk menunjukan apakah bilangan ini positif atau negatif. Metode yang lebih umum digunakan untuk merepresentasikan bilangan bernilai negatif pada perangkat digital adalah "two's complement notation".  
Prinsip penggunanaan two's complement notation adalah dengan menempatkan nilai bobot negatif pada MSB (Most Significant Bit) bilangan tersebut. Berikut contoh penggunaan two's complement notation untuk angka -396.


Nilai positif terbesar pada sistem ini didapat ketika semua bit bernilai "1" kecuali bit pada MSBnya. Misal pada bilangan biner 10 bit, maka angka terbesarnya adalah 0111111111, atau sama dengan  29-1=511. Sedangkan nilai negatif terbesar didapat ketika hanya bit MSB yang bernilai "1", misal 1000000000 pada bilangan biner 10 bit atau sama dengan -512. 

Apakah bilangan biner pada komputer menggunakan sistem two's compelement notation atau tidak itu tergantung dari si programmer itu sendiri. Untuk alasan ini, penting untuk menentukan apakah bilangan biner integer dalam sistem komputer tersebut merepresentasikan data "signed" atau "unsigned". Apabila bilangan integer yang dimaksud "signed", berarti bilangan biner tersebut dapat merepresentasikan bilangan bulat baik itu positif maupun negatif (biasanya menggunakan two's compelement notation). Sedangkan untuk bilangan integer yang dimaksud "unsigned", berarti bilangan biner tersebut hanya dapat merepresentasikan bilangan positif. Sebagai contoh, "unsigned" 16-bit integer memiliki range numerik mulai dari 0-65535. Agak sedikit berbeda dengan unsigned 16-bit integer, range yang dimiliki bilangan "signed" 16 bit integer dimulai dari -32768 to +32767.
Komputer digital biasanya mengatur bilangan biner dalam beberapa cluster. 1 cluster dari 8 bit biasa disebut byte. Jumlah standar untuk sebagian besar komputer modern melebihi 1 byte, dengan panjang bit sebesar 16, 32, atau bahkan 64. Apapun standar panjang bit dalam suatu komputer, panjang bit tersebut akan didefinisikan sebagai tipe data "word". Jadi, bila komputer digital itu dibuat untuk menghandle data biner untuk cluster 32-bit, maka 1 "word" data dalam komputer akan memiliki panjang 32 bit. Ketika komputer terdiri dari bilangan biner 64-bit, maka datanya didefinisikan sebagai “double-word”.

Besaran nilai pada bilangan biner memiliki bit yang cukup panjang, untuk menyingkatnya digunakan penomoran heksadesimal. Prinsip dari penomoran heksadesimal adalah setiap 4 bit (setengah byte atau satu nybble) dari bilangan biner direpresentasikan sebagai 1 karakter heksa yang memiliki range dari 0 sampai F (0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F). Sebagai contoh, bilangan biner 16 bit yang memiliki angka 1001001111011110 ekuivalen dengan 4 digit heksadesimal bernilai 93DE.

Cukup jelas bahwa angka heksadesimal 93DE lebih mudah bagi manusia untuk dikelola dibandingkan dengan angka biner 1001001111011110. Sistem komputer lebih sering menayangkan format numerik dalam heksadesimal agar lebih mudah untuk diinterpretasikan oleh manusia. 

Tidak ada komentar:

Posting Komentar