Jumat, 09 Maret 2012

Bahasa Rakitan


Bahasa rakitan atau lebih umum dikenal sebagai Assembly adalah bahasa pemrograman tingkat rendah yang digunakan dalam pemrograman komputermikroprosesorpengendali mikro, dan perangkat lainnya yang dapat diprogram. Bahasa rakitan mengimplementasikan representasi atas kode mesin dalam bentuk simbol-simbol yang secara relatif lebih dapat dipahami oleh manusia. Berbeda halnya dengan bahasa-bahasa tingkat tinggi yang berlaku umum, bahasa rakitan biasanya mendukung secara spesifik untuk suatu ataupun beberapa jenis arsitektur komputer tertentu. Dengan demikian, portabilitas bahasa rakitan tidak dapat menandingi bahasa-bahasa lainnya yang merupakan bahasa pemrograman tingkat tinggi. Namun demikian, bahasa rakitan memungkinkan programmer memanfaatkan secara penuh kemampuan suatu perangkat keras tertentu yang biasanya tidak dapat ataupun terbatas bila dibuat dengan menggunakan bahasa pemrograman tingkat tinggi.
Pada bahasa rakitan, programmer umumnya menggunakan sebuah program utilitas yang disebut sebagai perakit (bahasa Inggrisassembler) yang digunakan untuk menerjemahkan kode dalam bahasa rakitan tersebut ke dalam kode mesin untuk perangkat keras tertentu. Sebuah perintah dalam bahasa rakitan biasanya akan diterjemahkan menjadi sebuah instruksi mnemonic dalam kode mesin, berbeda halnya dengan kompiler pada bahasa pemrograman tingkat tinggi yang menerjemahkan sebuah perintah menjadi sejumlah instruksi dalam kode mesin.
Beberapa perangkat lunak bahasa rakitan terkenal biasanya menyediakan tambahan fitur untuk memgasilitasi proses pengembangan program, mengontrol proses perakitan, dan alat bantudebugging.








Dasar alasan menggunakan bahasa rakitan

Ada beberapa dasar alasan menggunakan bahasa rakitan dilihat dari sudut pandang penggunaannya:
  • Bahasa rakitan dibandingkan dengan bahasa mesin, bahasa rakitan merupakan representasi atas bahasa mesin yang dirancang agar lebih mudah dipahami oleh manusia. Dengan menggunakan bahasa rakitan, seorang programmer dapat lebih mudah mengingat instruksi-instruksi dengan menggunakan simbol yang lebih dapat dimengerti dibandingkan bila menggunakan simbol mnemonic kode mesin secara langsung. Demikian halnya pula dengan mekanisme lompatan yang umum terdapat dalam bahasa mesin yang biasanya menggunakan alamat memori, programmer dapat lebih mudah menggunakan fasilitas labeling yang terdapat bahasa rakitan dibandingkan menggunakan alamat memori tertentu dalam kode mnemonic.
  • Bahasa rakitan dibandingkan dengan bahasa tingkat tinggi, bahasa rakitan memungkinkan programmer untuk mengontrol serta memanfaatkan secara penuh kapabilitas yang terdapat atas suatu perangkat keras, berbeda halnya dengan bahasa pemrograman tingkat tinggi yang memiliki banyak keterbatasan dalam pemanfaatan secara penuh suatu perangkat keras. Bahasa rakitan menjanjikan tingkat unjuk kerja yang maksimum karena sifatnya yang menerjemahkan secara langsung instruksi rakitan menjadi instruksi mesin, berbeda halnya dengan bahasa pemrograman tingkat tinggi yang biasanya menerjemahkan sebuah instruksi menjadi sejumlah kode mesin.



Representasi kode mesin

Bahasa rakitan menerjemahkan sebuah instruksi rakitan menjadi instruksi mesin, umumnya mekanisme penerjemahan ini bersifat 1-1, karenanya dapat disebutkan pula bahwa setiap instruksi dalam bahasa rakitan merupakan representasi dari instruksi kode mesin.
Sebagai contoh, berikut adalah instruksi yang digunakan pada prosesor x86 untuk memindahkan nilai 97 sebesar 8-bit ke dalam register prosesor AL. Kode biner atas instruksi pemindahan adalah 10110 diikuti dengan 3-bit pengenal atas register yang akan digunakan. Pengenal atas register AL dalam hal ini adalah 000. Kemudian, nilai 97 dalam kode biner adalah 01100001, sehingga kode mesin yang digunakan untuk memindahkannya adalah sebagai berikut:[1]

10110000 01100001
Kode biner ini dapat diubah agar lebih mudah dibaca manusia dengan mengkonversikannya dalam bilangan heksadesimal sebagai berikut:
B0 61
Pada instruksi diatas, B0 berarti: 'Pindahkan nilai berikut ke register AL', dan 61 adalah representasi bilangan heksadesimal untuk nilai 01100001, atau 97 dalam bilangan desimal. Bahasa rakitan untuk prosesor Intel menyediakan simbol mnemonic MOV (yang merupakan singkatan dari move) untuk instruksi serupa sehingga kode mesin sebelumnya dapat ditulis dalam bahasa rakitan sebagai berikut:
MOV AL, 61h       ; Isi register AL dengan nilai 97 (61h)
Bahasa rakitan memungkinkan programmer menambahkan komentar atas setiap instruksi yang ditulis untuk mempermudah pembacaan dan lebih mudah pemahaman.

[sunting]Lihat pula

[sunting]Rujukan

  1. ^ Intel Architecture Software Developer’s Manual, Volume 2: Instruction Set Reference. INTEL CORPORATION. 1 Maret 1999. hlm. 442 and 35. Diakses pada 18 November 2010.

Pengolahan citra

Pengolahan citra adalah salah satu cabang dari ilmu informatika. Pengolahan citra berkutat pada usaha untuk melakukan transformasi suatu citra/gambar menjadi citra lain dengan menggunakan teknik tertentu.







Definisi dasar

Berikut ini adalah definisi dasar yang dipergunakan dalam pengolahan citra :

Citra

Citra adalah gambar dua dimensi yang dihasilkan dari gambar analog dua dimensi yang kontinu menjadi gambar diskrit melalui proses sampling.
Gambar analog dibagi menjadi N baris dan M kolom sehingga menjadi gambar diskrit. Persilangan antara baris dan kolom tertentu disebut dengan piksel. Contohnya adalah gambar/titik diskrit pada baris n dan kolom m disebut dengan piksel [n,m].

Kuantisasi

Ada kalanya, dalam proses sampling, warna rata-rata yang didapat di relasikan ke level warna tertentu. Contohnya apabila dalam citra hanya terdapat 16 tingkatan warna abu-abu, maka nilai rata-rata yang didapat dari proses sampling harus diasosiasikan ke 16 tingkatan tersebut. Proses mengasosiasikan warna rata-rata dengan tingkatan warna tertentu disebut dengan kuantisasi.

Derau

Derau (Noise) adalah gambar atau piksel yang mengganggu kualitas citra. Derau dapat disebabkan oleh gangguan fisis(optik) pada alat akuisisi maupun secara disengaja akibat proses pengolahan yang tidak sesuai. Contohnya adalah bintik hitam atau putih yang muncul secara acak yang tidak diinginkan di dalam citra. bintik acak ini disebut dengan derau salt & pepper.
Banyak metode yang ada dalam pengolahan citra bertujuan untuk mengurangi atau menghilangkan noise.

Operasi pengolahan citra

Operasi yang dilakukan untuk mentransformasikan suatu citra menjadi citra lain dapat dikategorikan berdasarkan tujuan transformasi maupun cakupan operasi yang dilakukan terhadap citra.
Berdasarkan tujuan transformasi operasi pengolahan citra dikategorikan sebagai berikut :
  • Peningkatan Kualitas Citra (Image Enhancement)
Operasi peningkatan kualitas citra bertujuan untuk meningkatkan fitur tertentu pada citra.
  • Pemulihan Citra (Image Restoration)
Operasi pemulihan citra bertujuan untuk mengembalikan kondisi citra pada kondisi yang diketahui sebelumnya akibat adanya pengganggu yang menyebabkan penurunan kualitas citra.
Berdasarkan cakupan operasi yang dilakukan terhadap citra, Operasi pengolahan citra dikategorikan sebagai berikut :
  • Operasi titik, yaitu operasi yang dilakukan terhadap setiap piksel pada citra yang keluarannya hanya ditentukan oleh nilai piksel itu sendiri.
  • Operasi area, yaitu operasi yang dilakukan terhadap setiap piksel pada citra yang keluarannya dipengaruhi oleh piksel tersebut dan piksel lainnya dalam suatu daerah tertentu. Salah satu contoh dari operasi berbasis area adalah operasi ketetanggaan yang nilai keluaran dari operasi tersebut ditentukan oleh nilai piksel-piksel yang memiliki hubungan ketetanggaan dengan piksel yang sedang diolah.
  • Operasi global, yaitu operasi yang dilakukan tehadap setiap piksel pada citra yang keluarannya ditentukan oleh keseluruhan piksel yang membentuk citra.

Alat bantu matematika

Alat bantu matematika yang sering dipakai dalam pengolahan citra adalah sebagai berikut :
  • Statistik inheren
  • Konvolusi
  • Transformasi Fourier
  • Representasi Kontur

Algoritma

Berikut ini adalah algorima yang biasa dipakai dalam pengolahan citra. Algoritma dibawah ini dibagi menjadi beberapa kategori berdasarkan pendekatan yang dilakukan dalam memanipulasi citra asli.

Algoritma berbasis histogram

Algoritma kategori ini menggunakan histogram dari citra awal untuk menghasilkan citra baru.
  • Peregangan Kontras
  • Ekualisasi histogram
  • Filter Minimum
  • Filter Median
  • Filter Maksimum

Algoritma berbasis matematika

Algoritma pada kategori ini menggunakan piksel/beberapa piksel untuk menjadi masukan suatu fungsi matematik untuk menentukan nilai piksel pada citra hasil.
  • Biner
Operasi ini berbasis operasi boolean (AND,OR,NOT) untuk memanipulasi citra
  • Aritmetika
Operasi ini berbasis operasi Aritmatika ( penjumlahan, pengurangan, perkalian dan pembagian citra)
  • Geometri


Algoritma berbasis konvolusi

Algoritma pada kategori ini menggunakan teknik konvolusi untuk menghasilkan citra hasil.

Algoritma berbasis penurunan

Algoritma berbasis morfologi