< Previous 19 0010 10100 1010 10110 0011 10101 1011 10111 0100 01010 1100 11010 0101 01011 1101 11011 0110 01110 1110 11100 0111 01111 1111 11101 f. Kode ASCII Sebuah standar Amerika untuk menunjuk sebuah karakter diberi namaAmerican Standard Code for Information Interchange (ASCII), standar ini dapat digunakan untuk membuat kode sejumlah 128 buah karakter. Kode ASCII pertama digunakan tahun 1963, karena ada penambahan kode beberapa karakter maka kode ini disempumakan pada tahun 1967. Setiap kode ASCII dinyatakan dalam bilangan heksa, kode ini merupakan cikal bakal sistem komunikasi digital antar perangkat komputer dan merupakan sistem kode yang pertama kali digunakan dalam sistem komputerdan komunikasinya. Sampai saat ini setiap komputer yang diproduksi menggunakan kode ASCII, baik pada komputer personal, laptop maupun jenis komputerb lainnya. Tabel 1.2 merupakan sistem kode ASCII yang disusun secara matrik, bit ke 1 sampai bit ke 4 menunjukan kode belakang dan bit ke 5 sampai bit ke 7 menunjukan kode depan. Kode ASCII berdasarkan tabel 1.2 tersebut merupakan bilangan heksa desimal, jadi untuk karakter A (kapital) dari kolom menunjukan 100 berarti sama dengan 4 dan dari baris menunjukan 0001 yang berarti nilai 1 sehingga kode huruf A adalah 41 dalam bilangan heksa. Misal ditanyakan berapa kode huruf b dalam heksa berdasarkan kode ASCII, maka jawabnya dilihat pada tabel 1.2 dari kolom = 110 dan dari baris diperoleh 0010 sehingga diperoleh kode 110 0010 = 62 dalam heksa. 20 Kode ASCII yang terdiri dari 7 bit akan memiliki pengkodean karakter sejumlah 27 = 128, yaitu mulai dari 000 0000 sampai dengan 111 1111. Pemanfaatan kode ASCII dalam transmisi data adalah dengan menambahkan 1(satu) bit lagi sehingga kode karakter menjadi 8 bit, fungsi dari bit ke delapan adalah untuk memberikan identitas paritas pada data terkirim.Penambahan satu bit pariti ini dapat dimanfaatkan untuk menguji apakah data berupa karakter terkirim dengan benar atau tidak, atau dengan kata lain berfungsi untuk deteksi kesalahan bit pada data berupa kode ASCII terkirim. Dalam menentukan paritas karakter dapat dipilih, yaitu menggunakan paritas genap (even parity)atau diinginkan menggunakan paritas ganjil (odd parity). Tabel 1.2. Kode ASCII Bit pariti akan menjadi bit MSB kode ASCII, sehingga dengan penambahan 1 bit setiap karakter akan membentuk jumlah logika 1(satu) pada kode tersebut. Jika diharapkan kode dengan paritas ganjil maka jumlah logika 1(satu) harus ganjil, demikian juga jik diharapkan kode berparitas genap maka jumlah logika dalam kode tersebut berjumlah genap. 21 Misalkanuntuk huruf A berdasarkan tabel 1.2 ditemukan kode 100 0001=(41H), pada kode ternyata memiliki jumlah logika 1 adalah dua buah. Jika diinginkan pengiriman data dengan paritas ganjil maka bit ke delapan sebagai pariti harus berlogika 1, demikian pula untuk kebalikannya jika diinginkan data terkirim dengan paritas genap maka bit ke delapan sebagai pariti harus berlogika 0. Standar telekomunikasi ITU-T merekomendasikan bit terbesar (MSB) dari kode karakter untuk digunakan sebagai bit paritas, artinya untuk kode ASCII yang menggunakan 7 bit maka bit ke delapanlah sebagai bit paritasnya (lihat contoh untuk karakter A). g. Blok Data Pengkodean untuk pengiriman data secara blok yang dilengkapi dengan paritas ganjil atau paritas genap merupakan cara pengujian lebih baik, karena satu blok data akan disertai dengan paritas yang diletakan pada akhir blok data. Untuk menguji data terkirim terjadi kesalahan bit (bit error) atau tidak bit paritas tersebutlah yang digunakan sebagai kunci uji untuk setiap karakter terkirim, dalam sistem transmisi data secara blok data artinya beberapa karakter terkumpul menjadi satu blok data maka bit paritas ini juga bisa dimanfaatkan. Gambar 1.14. Rangkaian pembangkit paritas Adapun penempatan bit paritas pada blok data adalah ditempatkan pada akhir sebuah blok, dengan demikian bit akhir dari blok data inilah yang disebut dengan block check character(BCC). Paritas dapat dibangkitkan melalui software atau melalui hardware, baik secara 22 software maupun secara hardware memiliki metode logika yang sama. Berikut merupakan pembangkitan paritas menggunakan gerbang EXOR: Berdasarkan gambar 1.14 jika kode ASCII yang ingin dikirimkan memiliki logika bit 101 0010 maka akan didapatkan paritas sebagai berikut: Gambar 1.15. Pembangkitan paritas dengan masukan 101 0010 Bit-0 EXOR bit-1 = 1, bit-2 EXOR 1 = 1, bit-3 EXOR 1 = 1, bit-4 EXOR 1 = 0, bit-5 EXOR 0 = 0, bit-6 EXOR 0 = 1. Dengan demikian didapatkan paritas genap berlogika 1 dan paritas ganjil didapatkan logika 0. Kelemahan kode paritas ini adalah apabila terjadi kesalahan atau error pada 2 bit maka error tidak terdekteksi sebagai error, sebagai contoh data = 1010000 paritas genap digunakan sehingga data terkirim adalah 01010000. Ternyata pada penerima data terkirim menjadi 01010011, maka secara rumus paritas data adalah benar pada hal terdapat kesalahan pada bit 0 dan bit 1 yaitu berubah dari 00 menjadi 11. Dengan demikian erroratau kesalahan pada bit 0 dan bit 1 tidak terdeteksi, perbaikan dari sistem ini adalah dengan mengirimkan data bukan perkarakter tetapi melalui blok data. Misalkan dalam satu blok data disusun dari 7 buah karakter, dan isi data berupa pesan berbunyi “selamat” maka paritas dapat dicari dengan cara sebagai berikut: Bit 7 6 5 4 3 2 1 0 23 Karakter s e l a m a t 1 0 0 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 1 0 1 1 0 1 0 0 0 0 1 0 1 0 1 1 0 0 0 0 0 0 1 1 0 1 1 1 0 BCC 0 1 1 0 1 1 1 1 Dari blok data yang terbentuk dari pesan selamat dicari kode ASCII setiap karakter, kemudian dicari paritasnya dalam kode ini diambil paritas genap dan dituliskan pada bit-7. Setelah ditemukan semua paritas dari setiap karakter pembentuk pesan dan dituliskan pada bit-7, maka langkah selanjutnya adalah mencari paritas dari setiap kolom mulai bit-0 sampai bit-7 dan dituliskan secara mendatar pada baris BCC. Adapun fungsi dari paritas pada bit-7 adalah sebagai kunci uji data untuk mencari error setiap karakter secara horisontal, istilah deteksi error secara horizontal adalahlongitudinal redundancy check (LRC). Sedang fungsi paritas pada BCC sebagai baris penutup blok data difungsikan sebagai deteksi error secara vertikal, istilah deteksi vertikal adalah vertical redundancy check (VRC). Dari kedua paritas inilah terbentuk model matrik deteksi error yaitu kombinasi dari deteksi LRC dan deteksi VRC. h. Kode Humming Kerusakan data atau kesalahan data yang diterima oleh terminal penerima dalam sistem komunikasi data sering terjadi, hal yang mendasar sebagai penyebab adalah adanya interferensi sinyal luar yang masuk ke dalam jalur komunikasi, koneksi kawat penghubung, terminal, konektor pada layer terendah yang kurang baik. Hal tersebut menyebabkan sinyal gangguan (noise), sebagai akibat gangguan tersebut muncul permasalahan pada data yang diterima oleh penerima berupa data error. 24 Terlebih pada transmisi data serial dengan kecepatan tinggi dan kualitas jalur transmisi yang rendah kesalahan (error) sangat mungkin terjadi, ukuran banyaknya bit error dalam blok data disebut sebagai bit error rate (BER}.Terdapat toleransi kesalahan bit dalam sistem transmisi data, dan batasan nilai BERdalam satu kelompok data 105 bit. Dalam penanganan kesalahan (error handling) bit terkirim tahapan utama dalam penerimaan data adalah deteksi kesalahan bit terkirim, selanjutnya dilakukan koreksi terhadap kesalahan (error). Perbaikan data bisa dilakukan oleh penerima atau pengirim melalui permintaan pengiriman ulang data, permintaan ini melalui sinyal NAK dari penerima ke pengirim. Seperti telah dijelaskan sebelumnya bahwa proses deteksi kesalahan melalui bit yang ditambahkan (redundant bit) ke dalam data, dengan metode pengkodean tersebut dapat ditentukan kesalahan bitnya. Sistem pengkodean yang lain yang dapat digunakan dalam komunikasi data adalah kode Hamming. Konsep penerapan kode Hamming adalah dengan menggunakan bit paritas untuk disisipkan pada posisi tertentu dalam blok data, dengan demikian memungkinkan untuk dapat digunakan dalam pemeriksaan kesalahan dalam blok data. Aturan untuk menyatakan bit Hamming adalah melalui pendekatan 2n, nilai n dan n adalah bilangan bulat positif, cara untuk menentukan bit Hamming adalah sebagai berikut: x Data = 1011 → penyisipan bit Hamming adalah 101x1xx x Nilai x dapat dipilih 1 atau 0 dan disisipkan pada data x Menentukan jumlah modulo-2 bit-1 agar data berparitas genap. Bit ke- 7 6 5 4 3 2 1 Data 1 0 1 x 1 x x Langkah selanjutnya adalah menentukan bit-Hamming yang harus disisipkan ke dalam bit-bit data, dalam hal ini semua bit yang ditandai dengan hurf x adalah tempat posisi bit Humming yang seharus disisipkan. Dengan demikian data yang semula terdiri dari 4 bit data maka pada akhirnya jumlah bit adalah 7 bit. x Tabel penentuan bit-Hamming 25 Bit Humming Ke Memeriksa Bit Data Keterangan Membuat Paritas Genap 1 posisi 3, 5, dan 7 diberi logika 1 2 posisi 3, 6, dan 7 diberi logika 0 4 posisi 5, 6, dan 7 diberi logika 0 x Bit-Hamming disisipkan ke dalam data, sehingga menjadi: Bit ke- 7 6 5 4 3 2 1 Data 1 0 1 0 1 0 1 x Deteksi data error yang diakibatkan data berubah saat transmisi, diasum-sikan terjadi perubahan pada bit ke 3 dari nilai logika 1 menjadi logika 0. Sehingga data yang diterima sebgai berikut: Bit ke- 7 6 5 4 3 2 1 Data 1 0 1 000 1 x Pemeriksaan data melalui bit-bit Hamming ditemukan error berikut posisi bitnya, pada contoh terjadi error pada posisi bit ke 3. Tabel penentuan error(modulo-2) Bit Humming Ke Memeriksa Bit Data (Modulo-2)Paritas 1 posisi 3, 5, dan 7 ganjil (ada kesalahan) → 1 2 posisi 3, 6, dan 7 ganjil (ada kesalahan) → 1 4 posisi 5, 6, dan 7 genap (benar) → 0 x Berdasarkan tabel penentuan error diperoleh nilai biner 011, yang berarti bisa ditentukan kesalahan adalah pada posisi bit ke 3 pada data. Perbaikan logika bit dapat dilakukan dengan melakukan inverting bit ke dari data, dengan demikian tidak diperlukan lagi pengiriman NAK ke pengirim untuk melakukan pengiriman ulang 26 i. Kode Koreksi Error Kode Hamming digunakan untuk mendeteksi error dan perbaikan kode pesan terkirim, kode koreksi error adalah sebuah algoritma untuk mendeteksi adanya kesalahan dalam pesan yang dikirimkan sekaligus memperbaiki pesan tersebut sehingga pesan dapat tersampaikan dengan benar melalui sistem transmisi data melalui sistem jaringann berbasis pada isi pesan itu sendiri. Sedang Error dapat terjadi yang disebabkan oleh berbagai sebab, sebuah bit dalam pesan mungkin ditambah, terhapus atau berubah. Kode koreksi Error banyak diaplikasikan pada CD player, high speed modem, dan cellular phone. Deteksi error lebih sederhana dibanding perbaikan sebuah error. Sebagai contoh pengujian digit sering kali dijumpai secara embedded pada sejumlah credit card dengan tujuan mendeteksi keslahan. Berikut merupakan sebuah contoh bagaimana mendeteksi dan memperbaiki kesalahan pada pesan yang dikirimkan: Aturan main: x Data asli yang akan dikirimkan dinyatakan dalam variabel Di dan check bit dengan (Cj ). x Posisi biner diawali dari bit 1, posisi check bit Cj pada 2n,yaitu 1, 2, 4, 8, ... x Penentuan check bit dilakukan melalui EXOR untuk semua bit data. Untuk penentuan kode humming dari 4 bit data, maka terdapat D1, D2, D3 dan D4 dan untuk check bit 2n didapat C0, C1 dan C2, sebagai berikut: Cj = (2n) 26 25 24 23 22 21 20 Posisi bit 1 1 1 1 1 0 1 0 1 1 0 0 0 1 1 0 1 0 0 0 1 Kode D4 D3 D2 C2 D1 C1 C0 C0= D1 xor D2 xor D4 C1= D1 xor D3 xor D4 C2= D2 xor D3 xor D4 27 Latihan: Terdapat dua buah data yang akan dikirimkan meliputi: a. 101 b. 011 Buatlah pesan yang harus dikirim dengan mengikutkan kode Humming! Jawab: Oleh karena data terdiri dari 3 bit yaitu D1, D2 dan D3, maka format pesan dengan sisipan kode Hamming sebagai berikut: a. Penyelesaian untuk data = 101 Kode pesan yang akan dikirim 28 b. Penyelesaian untuk data = 011 Kode pesan yang akan dikirim: c. Memperbaiki data: Permasalahan 1: Misal pada penerima untuk data 101 terdapat perubahan, yaitu dari pesan yang benar terkirim adalah 101101 ternyata diterima oleh penerima mejadi 111101. Carilah posisi bit ke berapa yang mengalami perubahan menggunakan aturan main kode Hamming! Solusi: Berdasarkan data yang diterima maka perubahan terjadi pada posisi bit ke 101, yaitu dari logika 0 mejadi logika 1 sehingga dapat digambarkan sebagai berikut: Next >