Sunday, October 30, 2016

Steganografi

Steganografi adalah teknik dan seni dalam mengamankan pesan yang bersifat pribadi, pesan tersebut terasa biasa saja bagi orang normal, tetapi bagi si pembuat pesan tersebut adalah sebuah rahasia yang akan disampaikan ke penerimanya. dieara teknologi yang modern sekarang steganografi sudah dapat menyembunyikan pesan melalui gambar, lagu, video dan media lainnya. misalnya. Pesan dapat dikodekan dalam low-order bit sehingga tidak terlalu mengganggu gambar (image) yang ditampilkan.

Semakin pentingnya nilai dari sebuah informasi, maka semakin berkembang pula metode-metode yang dapat digunakan untuk melakukan penyisipan informasi yang didukung pula dengan semakin berkembangnya media elektronik.  Berbagai macam media elektronik kini telah dapat digunakan untuk melakukan berbagai fungsi steganografi dengan berbagai macam tujuan dan fungsi yang diharapkan oleh penggunanya. Sebagai fungsi yang umum,steganografi digunakan untuk memberikan cap khusus dalam sebuah karya yang dibuat dalam format media elektronik sebagai identifikasi, (Johnson, dkk, 1998)

pengaruh atau dampak positif yang terjadi pada adanya teknik steganografi ini ialah pesan menjadi aman dan tidak akan mudah di bobol bagi oknum-oknum yang ingin mendapatkan pesan. sebaliknya dampak negatif juga dirasakan tentunya pada oknum kejahatan yang hendak melakukan kejahatan menggunakan teknik steganografi ini sebagai media komunikasi mereka dengan membuat kesepakatan tersendiri, maka akan sulit mengetahui tindakan apa selanjutnya yang akan dilakukan oleh oknum tersebut.


contoh simple steganografi :


Seru disaat rame-rame

riang gembira selamanya
nanti bila azan datang
hati bergerak untuk kesana
rame-rame ke mesjid illahi
rame-rame kita bersama
beribadah dan menuntut ilmu

untuk mengetahui isi dari pesan diatas adalah ambil huruf di awal dan di akhir kalimat, maka isi pesan diatas adalah Serang hari rabu.

Untuk melakukan steganografi pada file mp3 dapat menggunakan software MP3Stego
untuk melakukan steganografi pada gambar juga dapat dilakukan menggunakan software 
Untuk melakukan steanography pada file mp3 dapat menggunakan software MP3Stego

Friday, October 21, 2016

EXCEPTION HANDLING

1.      Pengertian Error Handling (Exception Handling)
Exception handling adalah suatu mekanisme penanganan eror yang mungkin terjadi dalam suatu program. Misalnya sebuah program yang memiliki operasi pembagian, dimana suatu ketika user menginputkan bilangan pembagi atau denumerator 0, maka program tersebut harus memiliki suatu exception handling untuk kasus tersebut. Selain contoh diatas exception handling disini juga berguna saat program kita membutuhkan akses ke CD ROM, USB, Audio&Video File, Internet dll, sehingga apabila alat alat yang kita butuhkan dalam program kita tersebut tiba-tiba terputus aksesnya maka program kita tidak secara tiba-tiba mati dan agar program kita bisa terus berjalan.

Program yang tidak menggunakan exception handling:
·      Menjalankan perintah
·      Jika dalam menjalankan perintah menemui error
·       Program berhenti
Program yang menggunakan exception handling :
·      Menjalankan perintah
·      Jika dalam menjalankan perintah menemui error
·      Exception akan melemparkan error tersebut
·      Catch akan menerima dan memproses error tersebut
·      Program menjalankan perintah selanjutnya
Sehingga dengan menggunakan Exception Handling kita dapat memprevent terjadinya runtime error yang menyebabkan program kita berhenti ditengah tengah jalan.
Sebelum kita merambah ke programnya, mari kita klasifikasikan jenis-jenis error terlebih dahuludalam ilmu pemrograman, terdapat 3 jenis error. yaitu :
1.    Syntax Error
Syntax Error adalah suatu kesalahan dari penulisan syntax pada program sehingga syntax tersebut tidak dapat dieksekusi oleh program yang pasti membuat program tersebut error.
contoh :
public static voit main
pastinya program akan error, VOIT tidak dikenali oleh C#, sehingga program akan error.

2.    Logical Error
Logical Error adalah suatu kesalahan yang disebabkan oleh si programmer sendiri, hal ini disebabkan oleh kesalahan penulisan atau rumus yang diterapkan oleh si programmer. semua angka tidak dapat dibagi oleh 0 (nol). contoh :
int a = 6;
int b = 0;
double c= a / b;
Console.WriteLine(c);

3.    Runtime Error 
Error ini akan muncul apabila terjadi miss communication antara program dan file yang dipanggil dalam program, misalnya program itu membutuhkan database yang bernama db_siswa yang disimpan pada localhost,tapi kenyatannya ternyata si programmer tidak mempunyai atau belum membuat database tersebut di localhost, program akan tetap berjalan, namun saat aksi simpan data, hapus data atau tampil data pasti program akan error.

Exception terdiri dari dua macam kelompok, yaitu :

a) Exception yang merupakan subclass RunTimeException.
b) Exception yang bukan subclass RunTimeException.
RunTimeException biasanya disebabkan oleh kesalahan program atau pada desain program. Misalnya NullPointerException yang disebabkan oleh proses inisialisasi program yang tidak sempurna dan ArrayIndexOutOfBoundsException yang disebabkan akses array yang melebihi kapasitas array yang ada.
Dalam bahasa Java, ketika terjadi kesalahan, otomatis akan dilemparkan sebuah objek yang disebut exception, yang kemudian dapat diproses lebih lanjut oleh fungsi-fungsi yang siap menangani kesalahan tersebut. Proses pelemparan exception tersebut sering dikenal dengan istilah throwing exception, sedangkan proses penerimaan exception yang bersangkutan dikenal dengan istilah catch exception. Terdapat beberapa subkelas yang diturunkan dari kelas exception, yaitu :
·        ClassNotFoundException
Terjadi bila ingin menggunakan kelas yang tidak ada atau belum dibuat.
·        CloneNotSupportedException
Terjadi bila ingin meng-clone atau menggandakan suatu kelas yang tidak didukung oleh method clone
·        RuntimeException
·        NullPointerException
·        ArrayIndexOutOfBoundsException
·        ArithmeticException
·        Khusus untuk operasi aritmatika integer. Seperti pembagian suatu bilangan integer dengan 0
·        IOException
Terjadi bila ada I/O error, seperti gagal menemukan dan membuka file. User memasukkan input yang tidak valid. Subkelas ini memiliki beberapa subkelas lain, seperti InterruptedIOException, EOFException, serta FileNotFoundException.

Error dan Exception Classes
Seluruh exceptions adalah subclasses, baik secara langsung maupun tidak langsung, dari sebuah root class Throwable. Kemudian, dalam class ini terdapat dua kategori umum : Error class dan Exception class.
Exception class menunjukkan kondisi yang dapat diterima oleh user program. Umumnya hal tersebut disebabkan oleh beberapa kesalahan pada kode program. Contoh dari exceptions adalah pembagian oleh 0 dan error di luar jangkauan array.
Error class digunakan oleh Java run-time untuk menangani error yang muncul pada saat dijalankan. Secara umum hal ini di luar control user karena kemunculannya disebabkan oleh run-time environment. Sebagai contoh adalah out of memory dan harddisk crash.

2.      Keyword penting pada exception handling
Ada 5 keyword penting dalam java dalam hal exception handling :
a)   try. Keyword ini biasanya digunakan dalam suatu block program. Keyword ini digunakan untuk mencoba menjalankan block program kemudian mengenai dimana munculnya kesalahan yang ingin diproses. Keyword ini juga harus dipasangkan dengan keyword catch atau keyword finally.
 b)  catch. Jika kita sudah melihat penjelasan try maka secara tidak langsung kita sudah memahami kegunaan dari keyword ini. Dalam java, keyword catch harus dipasangkan dengan try. Kegunaan keyword ini adalah menangkap kesalahan atau bug yang terjadi dalam block try. Setelah menangkap kesalahan yang terjadi maka developer dapat melakukan hal apapun pada block catch sesuai keinginan developer. Keyword catch juga dapat diletakan berulang-ulang sesuai dengan kebutuhan.
 c)  Finally. Keyword ini merupakan keyword yang menunjukan bahwa block program tersebut akan selalu dieksekusi meskipun adanya kesalahan yang muncul atau pun tidak ada.
d)   throw. Keyword ini digunakan untuk melemparkan suatu bug yang dibuat secara manual.
e) throws. Keyword throws digunakan dalam suatu method atau kelas yang mungkin menghasilkan suatu kesalahan sehingga perlu ditangkap errornya. Cara mendefinisikannya dalam method adalah sebagai berikut : type method-name throws exception-list1, exceptio-list2, … {}.

3.      Mekanisme Mengantisipasi Exceptiom
Berikut adalah kemungkinan skenario exception :
1.      Tidak terjadi exception
Program dijalankan, seluruh statement dalam blok try telah dieksekusi dan tidak terjadi exception sama sekali, maka blok catch tidak akan dieksekusi oleh interpreter.

2.      Terjadi exception pada blok method tunggal
Blok method tunggal disini adalah bila method itu tidak memanggil statement dari method yang lain. Bila saat interpreter mengeksekusi block try ada statement yang menyebabkan excepation, maka interpreter akan langsung keluar dari blok try, kemudian mencari blok catch yang bersesuaian dengan exception yang terjadi. Jika interpreter menemukan catch yang sesuai maka interpreter akan mengeksekusi blok tersebut. Bila tidak ada catch yang sesuai, maka interpreter akan menghentikan program dan menampilkan pesan exception yang terjadi.

3.      Terjadi exception pada blok method tersarang
Blok method tersarang maksudnya adalah method yang mendeklarasikan exception (misal method A) memanggil method lainya ( method B ). Method A memanggil Method B. Pada saat interpreter mengeksekusi statement dari method B ini, terjadi exception. Interpreter akan menghentikan eksekusi statement, selanjutnya mencari catch yang sesuai dalam method B. Bila catch ini tidak ditemukan ( dalam method B ), maka interpreter akan pergi ke meyhod A. Bila di temukan, maka interpreter akan mengeksekusi blok tersebut, namun bila tidak ada catch yang sesuai, interpreter akan menghentikan program dan menampilkan pesan exception.

4.   Jenis Exception Handling
1.      Try – Catch
Untuk penanganan exception, dalam Java digunakan blok try dan catch. Blok try digunakan untuk menempatkan kode-kode program Java yang mengandung kode program yang mungkin melemparkan exception. Blok catch digunakan untuk menempatkan kode-kode program Java yang digunakan untuk menangani sebuah exception tertentu. Setelah kita tambahkan blok try – catch untuk mengatasi error yang terjadi, maka program akan menampilkan pesan error bahwa ada error yang terjadi pada konsol. Sintaks blok try – catch adalah sebagai berikut :


Try
{
… kode program yang mungkin menghasilkan exception
}
Catch
{exception xx}{…}
Catch
{exception xx}{…}

Petunjuk Penulisan Program :
Blok catch dimulai setelah kurung kurawal dari kode try atau catch terkait.
Penulisan kode dalam blok mengikuti identasi.

2.      Multiple Catch
Untuk multiple catch akan kita gunakan jika blok try mungkin menimbulkan lebih dari satu exception. Sintaks blok multiple catch adalah sebagai berikut :


try
{
instruksi-1
instruksi-2
instruksi-3
……… diabaikan
instruksi-n
}
catch(tipe_eksepsi_1 e1)
{
}
catch(tipe_eksepsi_2 e2)
{
}
catch(tipe_eksepsi_3 e3)
{
}
….
catch(tipe_eksepsi_n en)
{
}

instruksi-lain
…….





3.      Try – Catch – Finally
Selain try – catch, kita dapat mendefinisikan blok try – catch dan finally yang memiliki proses yang lebih lengkap, karena pada finally kita dapat mendefinisikan kode program yang selalu dieksekusi, baik ada exception yang terjadi maupun bila tidak terjadi exception sama sekali. Bentuk umum dari blok try-catch-finally adalah sebagai berikut

Try
{
//tulis pernyataan yang dapat mengakibatkan exception
//dalam blok ini
}

catch( )
{
//tulis aksi apa dari program Anda yang dijalankan jika ada
//exception tipe tertentu terjadi
}
. . .

catch( )
{
//tulis aksi apa dari program Anda yang dijalankan jika ada
//exception tipe tertentu terjadi
}

Finally
{
//tambahkan kode terakhir di sini
}







Exception dilemparkan selama eksekusi dari blok try dapat ditangkap dan ditangani dalam blok catch. Kode dalam blok finally selalu di-eksekusi. Berikut ini adalah aspek kunci tentang sintak dari konstruksi try-catch-finally:

·         Notasi blok bersifat perintah
·         Setiap blok try, terdapat satu atau lebih blok catch, tetapi hanya satu blok finally.
·         Blok catch dan blok finally harus selalu muncul dalam konjungsi dengan blok try, dan diatas urutan.
·         Blok try harus diikuti oleh paling sedikit satu blok catch atau satu blok finally, atau keduanya.
·         Setiap blok catch mendefinisikan sebuah penanganan exception. Header dari blok catch harus membawa satu argumen, dimana exception pada blok tersebut akan ditangani.
·         Exception harus menjadi class pelempar atau satu dari subclassesnya.



Try-catch yang menggunakan finally maka keyword finally tersebut fungsinya hampir sama dengan keyword default pada switch-case.

Ada 3 sekenario pemrosesan dengan keyword finally yaitu :
Bila tidak terjadi exception,maka blok finally akan di eksekusi . setelah selesai, interpreter akan mengeksekusi statement selanjutnya.

Bila terjadi exception, interpreter akan berhenti mengeksekusi statement dalam blok try berikutnya. Kemudian, interpreter akan mencari catch yang sesuai. Bila ditemukan, interpreter akan mengeksekusi catch dan finally.

 Bila exception terjadi, namun tidak ada catch yang sesuai, maka statement – statemenet try berikutnya yang masih tersisa tidak akan di eksekusi. Selanjutnya, interpreter akan mengeksekusi blok finally.




BAB III
PENUTUP

A.    Kesimpulan


Dan itulah tadi pengertian, dan jenis Exception handling. Exception handling sudah pasti sangat membantu kita saat salah memasukkan data, program tidak akan langsung tertutup tetapi akan di handling oleh Exception handling tersebut.

SISTEM I/O

A.UNIT INPUT DAN OUTPUT
Komputer menerima informasi yang dikodekan melalui perantara perangkat sebuah inputan,yang akan membaca data tersebut.adapun peralatan input yang paling populer adalah keyboard,kapanpun suatu tombol di tekan,huruf,angka dan simbol-simbol yang sesuai akan secara otomatis di terjemahkan menjadi sebuah kode biner yang tepat dan di transmisikan melalui kabel ke memori atau prosessor sedangkan unit ouput adalah untuk mengirimkan hasilnya yang telah di proses ke dunia luar.contoh paling umum dari sebuah peralatan tersebut adalah printer,speaker dll,printer menggunakan mekanikal head impact,ink jet stream,atau teknik fotokopi seperti dalam printer laser untuk melakukan pencetakan.

B. PROSES AKSES PERANGKAT I/O

Salah satu fitur dasar suatu komputer adalah kemampuannya untuk mempertukarkan data dengan perangkat lain. Misalnya menggunakan keyboard, printer, layar display dan alat-alat input lainnya untuk mengolah data, teks, grafik dan lain sebagainya.
Pengaturan sederhana untuk menghubungkan perangkat I/O ke suatu perangkat komputer adalah dengan menggunakan pengaturan bus tunggal, Biasanya pengaturan tersebut terdiri dari tiga set jalur yang digunakan untuk membawa alamat, data, dan sinyal kontrol. Maka setiap perangkat I/O ditetapkan dengan suatu set alamat yang unik. Ketika suatu prosesor menerima atau meletakkan suatu alamat pada jalur alamat, maka perangkat yang mengenali alamat tersebut akan merespon perintah yang telah dinyatakan pada jalur kendali. Prosesor akan meminta operasi baca atau tulis dan data yang telah ditransfer dijalur data.











Gambar. Struktur Bus Tunggal


Kebanyakan dalam sistem komputer menggunakan memory-mapped I/O. Beberapa prosesor memiliki intruksi in dan out khusus untuk menjalankan transfer I/O.


Gambar. Antar muka I/O untuk perangkat input

 Perangakat I/O beroperasi pada kecepatan yang sangat berbeda dengan prosesor. Ketika saat operator manusia memasukkan karakter pada keyboard, prosesor mampu mengeksekusi jutaan intruksi antar entri karakter yang berurutan. Suatu intruksi yang membaca karakter dari keyboard sebaiknya hanya dieksekusi pada saat karakter tersebut tersedia dalam input buffer antar muka keyboard. Dan kita juga harus memastikan karakter input tersebut hanya terbaca satu kali.




C. INTERRUPT
            Interrupt ialah cara kerja sederhana bagi modul lain untuk bisa melakukan interruptsi operasi normal pada CPU.biasanya ,interrupt meng-enable transfer control dari satu program dengan  program lainnya.untuk itu ,dapat menginisiasikan sutu event yang external terhadap computer itu. Interupsi atau interrupt ialah suatu permintaan khusus atau perintah  untuk melakukan sesuatu, jika terjadi interupsi maka komputer akan menghentikan dahulu apa yang sedang dikerjakan dan melakukan apa yang di minta oleh yang menginterupsi, setelah selesai maka aliran program akan kembali ke pernyataan program sebelum terjadinya interupsi. Interupsi merupakan sub rutin yang sudah tersedia dalam memori komputer.
Teknik interrupt I/O  prosesnya ialah CPU memberikan perintah I/O pada modul I/O, bersamaan perintah I/O dijalankan oleh modul, maka CPU dapat melakukan eksekusi perintah-perintah lainnya.  Apabila modul I/O telah selesai menjalankan instruksi yang diberikan, maka modul I/O tersebut akan memberikan interupsi pada CPU bahwa tugasnya telah selesai. Cara kerja teknik interupsi di sisi modul I/O yaitu modul menerima perintah, misalnya read. Kemudian modul melaksanakan perintah pembacaan dari periperhal dan meletakkan paket data ke register data modul I/O, selanjutnya modul mengeluarkan sinyal interupsi ke CPU melalui saluran control. Kemudian modul menunggu datanya diminta CPU. Saat permintaan terjadi, modul meletakkan data pada bus data dan modul siap menerima perintah selanjutnya.
Pengolahan interupsi saat perangkat I/O telah menyelesaikan sebuah operasi I/O adalah sebagai berikut:
1.      Perangkat I/O akan mengirimkan sinyal interupsi ke CPU
2.      CPU menyelesaikan operasi yang sedang dijalankan kemudian merespon interupsi.
3.      CPU memeriksa interupsi
4.      CPU mempersiapkan pengontrolan transfer rountine interupsi. Hal yang dilakukan adalah menyimpan informasi yang di perlukan untuk melanjutkan operasi yang tadi dijalankan sebelum adanya interupsi.
5.      Kemudian CPU akan menyimpan PC (Program Counter) eksekusi sebelum interupsi ke stack pegontrol bersama informasi. Selanjutnya mempersiapkan  PC untuk penanganan interupsi.
6.      Selanjutnya CPU memproses interupsi sampai selesai
7.      Apabila interupsi telah selesai, CPU akan memanggil kembali informasi yang telah disimpan pada Stack pengontrol untuk meneruskan operasi sebelum interupsi
            1. STRUKTUR INTERRUPT ARM
 ARM merupakan prosessor 32-bit RISC yang dikemukakan oleh ARM Limited. Biasa dikenal sebagai Advanced RISC Machine. sebelumnya dikenal sebagai Acorn RISC Machine. Prosesor ARM mempunyai cara kerja exception-handling sederhana tapi sangat berguna. Ada lima source untuk exception, diantaranya hanya dua merupakan jalur interrupt-request eksternal, IRQ & FIQ. Umumnya ARM yaitu prosesor desktop yang kini didominasi oleh keluarga x86. Tetapi rancangan yang sederhana membuat prosesor ARM tepat untuk aplikasi berdaya rendah. Pada hal ini, prosesor ARM kini  mendominasi pasar mobile electronic dan embedded system hanya membutuhkan daya dan harga yang rendah.
Pada tahun 2007, hanya 98% dari satu miliar mobile phone yang terjual menggunakan sebuah prosesor ARM. Dan ketika tahun 2009, prosesor ARM mendominasi hanya 90% dari semua pasar prosesor 32-bit RISC. Prosesor ARM digunakan di segala bidang seperti elektronik umum, termasuk PDA, media player, music player dan periperal komputer seperti hard disk drive dan router.
Exception merupakan pembatalan eksternal dikarenakan error bus & usaha untuk mengeksekusi instruksi yang tidak terdefinisikan. Exception ditangani Berdasarkan menurut struktur yang diutamakan sebagai berikut:
Ø Reset (prioritas tertinggi)
Ø Data abort
Ø FIQ
Ø IRQ
Ø Prefetch abort
Ø Undefined instruction (prioritas terendah)

2. INTERRUPT HARDWARE
Kita nyatakan bahwa sebuah perangkat I/O meminta interrupt dengan mengaktifkkan jalur bus yang di sebut interrupt request.kebanyakan computer tampaknya memiliki beberapa perangkat I/O  yang dapat meminta interrupt.
Jalan aliran interrupt-request tunggal dapat di manfaatkan untuk melayanin perangkat, untuk meminta suatu interrupt, perangkat menutup switch-nya. Sehingga saat semua sinyal  interrupt-request INTR1 hingga INTR2 tidak aktif yaitu jika semua switch terbuka, maka tegangan pada jalur interrupt –request akan setara dengan Vdd, ini adalah keadaan dimana jalur tersebut tidak aktif.
Pada saat perangkat meminta suatu interrupt dengan menutup switch-nya, maka tegangan pada jalur tersebut jatuh ke 0, menyebabkan sinyal interrupt-request, INTR, yang di terima oleh prosesor menjadi 1. Karena menutup satu atau lebih switch akan menyebabkan tegangan sebuah jalur jatuh ke 0, maka untuk nilai INTR adalah logika OR dari sebuah request perangkat individu, yaitu
INTR = INTR1+……+INTRn            
3. ENABLING DAN DISABLING INTERRUPT
          Fasilitas yang tersedia dalam computer harus memberi programer kontrol lengkap pada event yang terjadi selama eksekusi program.
Saat muncul interrupt request dari perangkat eksternal menyebabkan prosesor menunda eksekusi satu program dan mulai mengeksekusi program lain, banyak situasi yang mana prosesor sebaiknya mengabaikan interrupt request, contohnya dalam program computer-print, suatu interrupt request dari printer hanya dapat di terima jika ada jalur output yang akan dicetak.
Pada saat suatu perangkat mengaktifkan interrupt request, perangkat tersebut menjaga sinyal tetap aktif hingga mendapati prosesor telah menerima request-nya.sangat penting untuk memastikan bahwas sinyal request aktif ini tidak menyebabkan interrupsi yang berkelanjutan , yang menyebabkan system memasuki loop yang tidak dapat dipulihkan.
Kemungkinan pertama adalah hardware prosesor mengabaikan jalur interrupt-request hingga eksekusi intruksi pertama dari routine interrupt-service telah selesai, kemudian, dengan menggunakan instruksi interrupt-disable sebagai instruksi pertama dalam routine interrupt- service, maka programar dapat memastikan bahwa tidak ada interripsi lebih lanjut yang terjadi hingga instruksi interrupt-enable dieksekusi.
Pilihan kedua, yang sesuai untuk prosesor sederhana dengan hanya satu jalur interrupt-request, adalah prosesor yang secara otomatis men-disable interrupt sebelum memulai eksekusi routine interrupt-service.
Pilihan ketiga, prosesor memiliki jalur interrupt-request khusus dimana sirkuit interrupt-hendling hanya merespon pada leading edge sinyal, jalur semacam ini di sebut edgetriggered.

D. MENANGANI BANYAK PERANGKAT.
Perangakat komputer memiliki kemampuan untuk menginisiasi interupt terhubung ke prosesor.Informasi yang diperlukan untuk mengetahui apakah suatu perangkat meminta interupt, telah tersedia didalam status register-nya.Pada saat suatu perangkat memunculkan interuppt request , maka salah satu bit didalam status register-nya di-set menjadi 1, yang disebut dengan bit IRQ , contoh bit KIRG dan DIRG  , kedua bit ini adalah bit interrupt  untuk keyboard dan display.Jika ada perangkat yang sedang menginterupsi cara untuk mengenalinya adalah meminta routine interrupt-service mem-poll semua perangakat I/O yang terhubung ke sistem bus.Perangkat yang harus dilayani adalah perangkat yang pertama di temukan dengan bit IRQ dan telah di-set, dan subroutine di panggil untuk menyediakan pelayanan yang di request.
Skema polling mudah untuk diimplementasikan , tetapi skema polling memiliki kerugian yaitu waktu yang dihabiskan untuk mengetahui bit IRQ semua perangkat yang mungkin tidak meminta pelayanan apapun.Pendekatan alternatif adalah dengan menggunakan vectored interrupt , yang di deskripsikan berikutnya.
a.       Vectored Interrupt
Suatu perangkat yang meminta interrupt dapat mengidentifikasi dirinya dengan mengirim kode khusus ke prosesor melalui bus. Panjang kode tersebut biasanya memiliki rentang 4-8 bit. Sisa alamat disediahkan  oleh prosesor berdasarkan pada area dalam memorinya dimana alamat untuk routine interrupt-servis ditempatkan.
Pengaturan ini  menyatakan bahwa routine interrupt-servise untuk suatu perangkat harus selalu mulai pada lokasi yang sama.Lokasi yang ditunjuk oleh perangkat yang mengintruppsi digunakan untuk menyimpan alamat awal routine interuppt-servise .Prosesor mampu membaca alamat , yang disebut unterrupt vector dan me-load ke dalam PC . Interrupt vector dapat pula menyertakan  nilai baru untuk procesor status register.
Pada  komputer , Perangakt I/O mengirim kode interrupt-vector melalui bus data, yaitu dengan menggunakan sinyal kontrol bus untuk memastikan bahwa perangkat tidak saling mempengaruhi satu sama lain.Pada saat prosesor siap untuk menerima kode interrupt-vector , maka prosesor mengaktifkan jalur interrupt-acknowledge ,INTA.Dan perangakat I/O merespon dengan mengirim kode interrupt-vector dan mematikan sinyal  INTR. Jika perangkat mengirim suatu interrupt request , dan prosesor tidak siap untuk menerima kode interrupt-vector , maka perangkat yang mengintrrupsi harus menunggu untuk meletakkan data pada bus saat prosesor siap untuk menerimanya.
b.      Interrupt  Nesting

Perangkat  I/O diatur dalam  struktur prioritas. Suatu  interrupt request dari perangakat high-priority sebaiknya di terima pada saat prosesor melayani request lain dari perangkat lower-priority .Organisasi priority multiple-level berarti selama eksekusi routine interrupt-service ,interrupt  request akan diterima dari beberapa perangkat . Tingkat prioritas prosesor adalah prioritas program yang  sedang dieksekusi.
Prioritas prosesor biasanya di encode dalam beberapa bit word status prosesor. Hal ini dapat diubah dengan intruksi  program yang ditulis ke PS. Ini adalah intruksi privileged, yang dapat di eksekusi saat prosesor sedang berjalan dalam mode supervisor. Usaha untuk mengeksekusi intruksi prinvileged pada saat berada dalam mode user memunculkan type interrupt khusus yang di sebut dengan privilege exception .

Skema multiple-priority dapat di terapkan dengan mudah menggunakan jalur interrupt request dan interupt acknowledge yang terpisah untuk setiap perangkat, dimana suatu request di terima hanya jika memiliki tingkat prioritas yang lebih tinggi daripada yang  sedang ditetapkan ke prosesor.







KET :      
      Sirkuit arbitration prioritas
Gambar 1 : Implementasi prioritas interrupt menggunakan jalur interrupt- request dan acknowledge

c . Request  Serentak
         Polling register status perangakat I/O adalah mekanisme yang paling sederhana.Prioritas ditetapkan dengan urutan perangkat dengan urutan perangkat yang di-poll.Skema yang banyak digunakan  adalah menghubungkan perangkat tersebut untuk membentuk Daisy –Chain . Jalur interrupt-request INTR adalah yang umum digunakan untuk semua perangkat.Jalur- interrupt-acknowledge INTA , dihubungkan dengan cara Daisy-Chain , Sehingga sinyal INTA  memperbanyak secara serial melalui perangkat tersebut.  Dalam pengaturan Daisy-chain  ,perangkat yang paling dekat secara elektrik dengan prosesor memiliki prioritas tertinggi.

Gambar 2 : Skema prioritas interrupt
PROSESOR
                                                    INTR
Device  2
Device 1
Device  n
 


                 INTA





 

Gambar 3 : Pengaturan kelompok Prioritas
       Skema pada gambar 1 mempunyai keutamaan yaitu skema tersebut memungkinkan prosesor menerima interrupt request dari beberapa perangkat tetapi tidak dari beberapa perangkat  yang lain , dan interrupnya tergantung dari prioritasnya masing – masing.Sedangkan pada gambar 2 tidak memerlukan kabel yang terlalu banyak di banding pada gambar 1 . Skema 1 dan 2 jika di gabungkan akan menghasilkan skema yang lebih umum yaitu pada skema no 3.Perangkat diorganisasi dalam kelompok , dan tiap kelompok dihubungkan pada tingkat prioritas yang berbeda . Dalam kelompok , perangkat di hubungkan dalam Daisy- Chain . Organisasi ini banyak di gunakan dalam sistem komputer.
E.  MENGONTROL REQUEST PERANGKAT
                 Proses interrupt –request hanya  di hasilkan  oleh perangkat I/O yang digunakan dalam program tertentu .Hal ini karena perangkat yang diam(idle) tidak diperbolehkan menghasilkan interrupt-  request , sekalipun perangkat tersebut siap berpartisipasi dalam operasi transfer I/O . Maka dari itu kita membutuhkan mekanisme dalam sirkuit antarmuka perangkat individu untuk mengontrol apakah suatu perangkat di izinkan melakukan suatu proses interrupt –request.Biasanya kontrol di sediakan dalam bentuk bit interrupt-enable dalam sirkuit antar muka perangkat.
1)        Misalnya : (a)  Flag keyboard interrupt-enable
(b)     KEN
(c)      Display interrupt –enable
(d)     DEN dalam register CONTROL .
Flag- flag diatas jika di-set , maka sirkuit antar muka menghasilkan interrupt request kapanpun flag status yang sesuai dalam register STATUS di-set.
Dari penjelasan diatas dapat di simpulkan bahwa ada dua mekanisme mandiri untuk mengontrol interrupt  request yaitu Pada ujung perangkat dan pada ujung prosesor .
a.       Pada ujung perangkat jika suatu bit interrupt-enable dalam  register kontrol menentukan apakah perangkat tersebut diijinkan untuk menghasilkan interrupt request.
b.      Pada ujung prosesor jika suatu bit interrupt-enable dalam register PS atau prioritas menentukan apakah interrupt request akan diterima. 

                 Jika suatu prosesor yang menggunakan skema vectored interrupt , dengan alamat awal routine interrupt –servisnya di simpan didalam lokasi memori INTVEC.Maka kita dapat melakukan beberapa hal berikut ini.
1)      Load alamat awal routine interrupt –servise pada lokasi INTVEC
2)      Load alamat MINE dalam lokasi memori PNTR .Routine interrupt –servise akan    menggunakan lokasi ini sebagai pointer untuk menyimpan karakter input dalam memori.
3)      Enable interrupt keyboard dengan men –set bit 2 dalam register CONTROL ke1.
4)      Enable interrupt dalam prosesor dengan men-set bit IE ke 1 dalam prosesor status register ,PS.
                 Setelah inisialisasi selesai  maka pengetikan karakter dalam keyboard akan menyebabkan suatu interrupt request yang dihasilkan oleh antar muka keyboard.
Routine ini harus menjalankan tugas sebagai berikut:

1.Membaca karakter input dari register data input keyboard . Hal ini akan menyebabkan sirkuit antar muka menghilang interrupt requestnya.
2.Menyimpan karakter dalam lokasi memori yang ditunjuk oleh PNTR , dan menaikkan PNTR.
3.Pada saat mencapai ujung jalur , men-disable interrupt keyboard dan memberitahu program Main.
4.Kembali dari interrupt.
                 Operasi I/O pada komputer biasanya lebih banyak diguanakan ,sebagaimana sistem operasi komputer melakukan operasi komputer melalui operasi ini dan atas nama program user.
F . EXCEPTION
                 Exception adalah suatu  event interrupt yang menyebabkan eksekusi satu program ditunda dan eksekusi program lain dimulai.Istilah Exception sering mengacu kepada ivent interrupsi , oleh karenanya Interrupt I/O adalah salah satu contoh exception.
Beberapa jenis Exception :
A . Pemulihan dari error
        Komputer banyak menggunakan berbagai variasi teknik untuk memastikan bahwa semua hardware beroperasi secara baik dan tepat.Jika terjadi error , hardware kontrol mendeteksi dan memberitahukan kepada prosesor dengan memunculkan interrupt.

Main Program
Move                      #LINE,PNTR             Intilialize buffer pointer.
Clear                      EOL                            Clear end –of-line indicator.
BitSet                     #2,CONTROL            Enable keyboard interrupt.
BitSet                     #9,PS                           Set interrupt-enable bit in the PS.
Interrupt-servise routine
READ        MoveMultiple R0-R1,-(SP)                Save register R0 and R1 on stack.
Move                      PNTR,R0                    Load address pointer.
MoveByte              DATAIN,R1               Get input character and
MoveByte              R1,(R0)+                     Store it in memory.
Move                      R0,PTRN                    Up date pointer.
CompareByte         #$0D,R1                     Check if Carriage Return.
Branch6≠0             RTRN                        
Move                      #1,EOL                                   Indicate end of line
BitClear                 #2,CONTROL            Disable keyboard interrupts.
RTRN        MoveMultiple (SP)+,R0-R1               Restore registers R0 and R1.
Return-from-interrupt.

Pada saat pengolahan exception tersebut diinisialisai sebagai berikut dari error ,maka prosesor bekerja dengan cara yang tepat sama seperti dalam hal interrupt request I/O.
B . Debugging
        Software sistem biasanya selalu menyertakan suatu program yang disebut debugger, yang di gunakan untuk membantu programer untuk menemukan suatu error dalam program. Debugger menggunaka dua fasilitas yang penting yang di sebut trace dan breakpoint.
-          Trace adalah suatu exception terjadi eksekusi tiap intruksi, menggunakan debugging program sebagai routine exception-servise.Trace exception di –disable selama eksekusi debugging program.
-          Breakpoint adalah penyedia fasilitas yang mirip dengan program, kecuali program yang di-debug diinterupsi hanya pada titik tertentu  yang dipilih oleh user .Breakpoint mempunyai suatu intruksi yaitu Trap atau Software-interrupt.
C . Privilige Exception.
Adalah intruksi tertentu yang hanya dapat di akses pada saat prosesor berada dalam mode supervisor.

G.  ENGGUNAAN INTERRUPT DALAM SISTEM OPERASI
                 System operasi sangat bertanggung jawab dalam mengkordinasi semua kegiatan di dalam komputer. OS memperluas penggunaan interrupt untuk melakukan operasi I/O dan berkomunikasi dan mengontrol eksekusi program user.Mekanisme interrupt meng-enable sistem operasi untuk menetapkan prioritas , berpindah dari satu program user ke program lain, menerapkan fitur keamanan dan proteksi serta mengkordinir kegiatan I/O.Sistem operasi menggabungkan routine interrupt-servise untuk semua perangkat yang terhubung ke komputer.
Untuk mengilustrasikan interaksi antara program aplikasi dan sistem operasi biasanya menggunakan mode multitasking . Multitasking adalah mode operasi dimana prosesor mengeksekusi beberapa program user pada waktu yang sama.
Routine sistem operasi contoh I/O routines.
IOINIT           Ser prosecc status to Blocked.
                        Initialize memory buffer addres pointer and counter.
                          Call device driver to initialize device  and enable interrupts in the device                           interface.
                        Return from subroutine.
IODATA        Poll devices to determine source of interrupt.
                        Call appopriate driver.
                        If END = 1, then set proces status to Runnable Return from interrupt.


H. DIRECT MEMORY ACCESS
Suatu instruksi dalam mentransfer data input dan output di eksekusi hanya setelah prosessor menetapkan bahwa Perangkat-perangkat I/O telah siap.dalam melakukan hal ini,prosessor melakukan pool flag status di dalam antarmuka perangkat atau menunggu  perangkat tersebut mengirim interrup request.pada kedua kondisi tersebut,dilibatkan sejumlah overhead,karena beberapa instruksi program harus segera di eksekusi dalam tiap word data yang di transfer.selain polling register status perangkat,instruksi di butuhkan untuk meningkatkan address memori dan mencatat word count.pada saat kondisi interrupt di gunakan,terdapat overhead tambahan yang saling terkait dengan penyimpanan dan pemulihan program counter dan informasi keadaan yang lain.
Di dalam melakukan transfer blok besar  data dalam kecepatan tinggi, di gunakan pendekatan yang alternatif.suatu unit control di sediakan yang memungkinkan transfer blok data secara langsung antar perangkat eksternal dan memori utama,tanpa intervensi secara terus menerus dari prosessor. Pendekatan ini di sebut direct memeory access,atau DMA.
Transfer di DMA ini di lakukan oleh sirkuit  kontrol yang mana merupakan bagian dari antar muka perangkat I/O.kita sebut sirkuit ini sebagai sirkuit kontroler DMA.kontroler DMA memeiliki Fungsi yang biasa di lakukan oleh prosessor ketika mengakses memori utama.dalam tiap word yang di transfer.dan kontroler ini menyediakan address memory dan segala sinyal bus yang melakukan kontrol terhadap trsansfer data.karna harus mentransfer blok data,maka kontroler DMA meningkatkan/menaikkan alamat memory untuk setiap word yang berurut dan mencatat jumlah transfer yang di lakukan.walaupun DMA mampu mentransfer data tanpa adanya intervensi dari prosessor,pengoprasiannya harus tetap berada di bawah kontrol program-program yang di eksekusi prosessor.dalam menginisiasi sebuah transfer blok.prosessor akan mengirim adress awal,jumlah setiap word dalam blok,dan arah transfer.ketika menerima informasi ini,controler DMA melakukan operasi yang diinginkan.ketika seluruh blok sudah di transfer,kontroler tersebut akan menginformasikan dan memberi tahu prosessor dengan menampilkan sinyal Interrup.dan saat transfer DMA  di lakukan,program yang di merequest tersebut terhenti dan prosessor dapat di gunakan mengesekusi program lain.Sesudah transfer DMA selesai,prosessor akan kembali ke program yang meminta transfer tersebut.
Operasi I/O Selalu di lakukan oleh operating system sebagai suatu bentuk respon terhadap permintaan dari program aplikasi.operating system juga memiliki tanggung jawab untuk menunda ekseskusi satu program dan memulai eksekusi program lain oleh karena itu untuk operasi I/O Melibatkan DMA,OS dalam menetapkan program yang merequest transfer tersebut pada kondisi blocked.Gamabar berikut akan menunjukkan register kontroler DMA yang di akses prosessor dalam menginisiasi operasi transfer. Dua register di gunakan dalam menyimpan Alamat awal dan word count.dan register ketiga berisi flag kontrol dan statusnya Bit R/W menetukan arah transfer ,dan ketiak bit ini di set ke-1 oleh program instruksi ,kontroler melakukan operasi baca yaitu melakukan transfer data dari memory ke perangkat I/O.sebaliknya kontroler melakukan operasi tulis.ketika kontroler menyelasaikan transfer blok pada data dan telah siap menerima instruksi yang lain,maka flag done di set ke 1.Bit 30 adalah flag interrupt-enable,IE.ketika flag di set ke 1,kontroler akan manampilkan interrupt setelah menyelasaikan transfer blok data.dan selanjutnya kontroler menset bit IRQ  ke 1 setelah merequest interrupt.


IRQ                         31      30                                                                 1          0

IE
DONE
                                                                                                                                     R/W

Strating addrres
 


Word count
                                                                                                                                 
Gambar Pembangunan Kontroler DMA dalam system Komputer sbb:
prosessor
Memori utama
Kontroler disk/DMA
KONTROLER DMA
PRINTER
KEYBOARD
DISK
 









ANTAR MUKA JARINGAN
DISK
                                                     


Suatu contoh sistem Komputer yang terdapat pada gambar tersebut menunjukkan bagaimana kontroler DMA bekerja dan di gunakan.Kontroler Dma menghubungkan jaringan jaringan high-speed ke bus komputer.kontroler disk,yang mengontrol kedua disk selain itu memiliki kemampuan DMA dan menyediakan dua Saluran DMA,kontroler tersebut mampu melakukan dua opersi DMA sekaligus/Mandiri,seakan-akan tiap disk memiliki kontroler DMA Masing-masing .Register yang di  butuhkan dalam penyimpanan address,word count dan lain sebagainya di duplikasi,sehingga satu set bisa di gunakan dengan tiap perangkat.ketika memulai transfer DMA  Suatu Blok data dari memori utama ke salah satu dsik,suatu program menulis informasi address dan word count ke dalam register saluran kontroler disk yang cocok.program tersebut juga menginformasikan kepada kontroler disk untuk mengindentifikasi data untuk pengambilan selanjutnya,Kontroler DMA akan meneruskan implementasi operasi tretentu secara mandiri.ketika transfer DMA selesai,fakta ini di rekam dalam rgister status dan kontrol saluran DMA dengan menset bit done.saat yang sama  apabila BIT IE di set,maka kontroler akan mengirim interrupt request ke prosessor  dan men set bit IRQ.Register staus dapat pula di gunakan dalam merekam informasi lain,contohnya apakah transfer berjalan baik ataukah terjadi error.
Pengaksesan memory oleh prosessor dan kontroler DMA saling terkait.request dari perangkat DMA dlam menggunakan bus selalu mendapat prioritas lebih tinggi daripada request dari prosessor.antar perangkat DMA yang berlainan,prioritas tertinggi akan di berikan untuk peripheral berkecapatan tinggi seperti disk,antarmuka sebuah jaringan berkecapatn tinggi ataukah display grafik.karena prosessor menghasilakan siklus akses yang sangat banyak,kontroler DMA  juga dapat di katakan “mencuri” Proses memori dari sebuah prosessor,oleh karena itu dalam Teknik interweaving ini biasanya disebut “cycle stayling”.atau dapat pula Di katakan kontroler DMA di berikan akses ekslusif ke memori utama dalam mentransfer blok data tanpa interrupsi.dan ini di kenal sebagai mode block atau burst.
Kebanyakan kontroler DMA menggabungkan buffer penyimpanan data,contohnya dalam hal antar muka jaringan pada gambar di atas,Kontroler  DMA membaca blok data memori utama dan menyimpannya dalam input buffernya.transfer ini akan menggunakan burst pada kecepatan yang sesuai dengan memori dan bus komputer.setelah itu data dalam buffer di transmisikan melalui jaringan pada kecepatan sebuah jaringan.Suatu hal akan terjadi jika prosessor dan Kontroler DMA  atau dua kontroler DMA mencoba memakai bus pada kondisi yang bersamaan dalam mengakses memeori utama.

       

BAB III
 PENUTUP
A. Kesimpulan

Teknologi di era ini sudah mengalami kemajuan yang pesat oleh karena itu memudahkan segala aktivitas manusia termasuk dalam memenuhi kebutuhan sehari-hari, contohnya ialah komputer. Komputer(CPU) memiliki sistem yaitu Sistem I/O (Input/Output). Pada  sistem komputer, I/O memiliki peranan atas pengontrolan,pengendalian sebuah perangkat luar ataupun eksternal dan bertanggung jawab pula dalam melakukan pertukaran suatu data antara perangkat-perangkat luar  dengan register-register pada CPU. Di dalam melakukan hal ini, kita memerlukan antarmuka internal dengan komputer(CPU Interface) dan antarmuka dengan perangkat eksternalnya untuk mngetahui jalannya fungsi-fungsi pengontrolan. Selain  dari sistem I/O ada juga modul modul I/O.sistem komputer ini yang memiliki andil atas pengontrolan sebuah perangkat luar atau lebih dan bertanggung jawab pula dalam melakukan  pertukaran-pertukaran data antara perangkat luar lainnya dengan main memori ataupun dengan register – register pada sebuah CPU. Selain itu  ada juga I/O yang terprogram yang berperan dalam  bertukar data antar CPU seperti moving data, pengiriman perintah baca maupun tulis, dan memonitoring perangkat akan tetapi cara ini memiliki kelemahan yaitu  CPU akan menunggu sampai operasi I/O selesai dilakukan modul I/O , apalagi CPU memiliki kecepatan operasi yang sangat bagus. Kunci utama  dalam organisasi I/O ialah mempunyai fungsi dan perintah masing-masing yang memiliki peranan atau andil yang signifikan untuk sistem komputer.

Featured Post

Sistem Informasi Kuis dan Materi (e-learning) 2019