Selasa, 26 November 2013

Pembuatan Aplikasi Pengolahan Citra Deteksi Tepi dengan OpenCV dan Microsoft Visual Studio

Pembuatan Aplikasi Pengolahan Citra dengan OpenCV dan Microsoft Visual Studio 2008




Kelompok Deteksi Tepi Citra
Arif Rahman Suryaman 51410080
Maulana Sahid Akbar     54410274
4IA03

Universitas Gunadarma
2013


PENDAHULUAN
Seiring dengan pesatnya kemajuan teknologi informasi, data atau informasi semakin banyak  bila dilihat dari bentuk dan jenisnya. Mulai dari teks, gambar, audio, dan juga video.
Gambar, atau yang bisa juga disebut sebagai citra, berperan sangat penting sebagai bentuk informasi visual. Ada yang mengatakan bahwa citra (gambar) lebih berarti dari ribuan kata-kata. Saya membenarkan hal tersebut, karena memang benar  dengan melihat suatu gambar kita langsung bisa mendefinisikan sendiri mengenai gambar tersebut. Dan juga bisa memberikan banyak arti lainnya.
Terkadang citra yang ada itu tidak sepenuhnya baik maksudnya tidak sepenuhnya sempurna, perlu dilakukan suatu proses untuk membuatnya menjadi lebih baik. Proses inilah yang dinamakan pengolahan citra.
Teknik pengolahan citra-pun sudah semakin banyak digunakan. Contohnya saja dalam dunia perdagangan. Kita semua mungkin sudah tahu dengan yang namanya barcode. Penggunaan barcode di supermarket dibuat untuk mempermudah pembacaan harga. Bila tidak menggunakan barcode mungkin petugas  bisa  dibuat sulit, karena  harus mengecek harga barang satu-satu.  Selain itu masih ada lagi, sidik jari untuk kehadiran juga termasuk aplikasi pengolahan citra.
Pengolahan citra merupakan suatu proses perbaikan kualitas citra agar mudah di interpretasi oleh manusia atau komputer. Proses-proses yang termasuk ke dalam pengolahan citra, yaitu :
1.  Perbaikan kualitas citra (Image Enhancement)
2.  Pemugaran citra (Image Restoration)
3.  Pemampatan citra (Image Compression)
4.  Segmentasi citra (Image Segmentation)
5.  Pengorakan citra (Image Analysis)
6.  Rekonstruksi citra (Image Recontruction)
Di dalam laporan ini akan dijelaskan bagaimana membuat suatu aplikasi yang berkaitan dengan pengolahan citra deteksi tepi. Sebelumnya, kami akan  memberitahukan bagaimana cara instalasi dan konfigurasi yang diperlukan dalam pembuatan aplikasi tersebut. Di halaman terakhir, penulis juga melampirkan source code yang digunakan dalam pembuatan aplikasi tersebut.

INSTALASI DAN KONFIGURASI
Dalam pembuatan aplikasi pengolahan citra, penulis menggunakan perangkat lunak berikut :
1.  Microsoft Visual Studio 2008
Microsoft Visual Studio adalah software yang digunakan sebagai compiler. Compiler adalah perangkat lunak yang digunakan untuk mengubah source code dari suatu bahasa pemrograman (dalam kasus ini bahasa pemrogramannya yaitu C++) menjadi native code / bahasa mesin (file executable) agar dapat dieksekusi oleh komputer.  Microsoft Visual Studio  ini  dibuat oleh perusahaan Microsoft.
2.  OpenCV 2.1
OpenCV (Open Computer Vision)  merupakan semacam library  yang digunakan dalam membuat aplikasi yang berkaitan dengan computer vision. OpenCV juga menyediakan banyak fungsionalitas, yang tentunya dapat mempersingkat waktu  dalam pembuatan aplikasi yang lumayan rumit.
Spesifikasi minimum sistem yang harus Anda miliki yaitu :
ü  1,6 GHz or faster processor
ü  1024 MB RAM
ü  3 GB or available hard-disk space
ü  5400 RPM hard-disk drive
ü  Direct X 9 – capable video car running at 1024 x 768 or higher display resolution
ü  DVD – ROM drive

 INSTALASI
Langkah-langkah Instalasi Microsoft Visual Studio 2008 :
1.   Masukkan DVD software MS Visual Studio Team System 2008 Team Suite kedalam DVD Room PC/laptop Anda, kemudian akan muncul auto run CD. Jika tidak muncul maka klik file Setup.exe sehingga muncul seperti gambar berikut ini :


2.   Kemudian pilih menu yang paling atas yaitu "Install Visual Studio 2008", lalu klik sehingga muncul seperti gambar berikut ini :   


3.   Tunggulah hingga progressbar selesai loading sehingga muncul tombol "Next" seperti gambar berikut ini :

4.   Kemudian klik tombol "Next" di atas sehingga muncul seperti gambar berikut ini :



5.   Karena saya menggunakan lisensi yang disediakan oleh kantor saya, maka secara otomatis product key number akan terisi. Jangan lupa pilih "I have read and accept the license terms" lalu klik tombol "Next" lagi sehingga muncul seperti gambar berikut ini :



6.   Pilih saja fitur "Default" sesuai rekomendasi sistem. Jika, tampilan Anda sudah sesuai dengan gambar di atas. Silakan klik tombol "Install" sehingga muncul seperti gambar berikut ini :

7.   Inilah proses instalasi komponen, tunggulah beberapa menit hingga proses benar-benar selaesai. Lalu muncul seperti gambar berikut ini :

8.   Instalasi telah selesai dilakukan maka klik tombol "Finish". Perlu diketahui bahwa sebelumnya saya sudah melakukan instalasi Microsoft .NET 2.0, 3.0, dan 3.5.

Kemudian Instal OpenCV 2.1 sampai finish, lalu adapun langkah-langkah konfigurasinya
Ø  Buka Microsoft Visual Studio 2008
Ø  File -> New -> Project
Ø  Pilih Win32 Console Application
Ø  Beri nama :" Hello" -> OK -> Finish

Ø  Configure Project Directories
Pilih Project -> Properties -> Configuration Properties -> VC++ Directories

Ø  Include Direcrories -------->tambahkan : C:\OpenCV2.1\include\opencv;
Ø  Library Directories--------->tambahkan : C:\OpenCV2.1\lib;
Ø  Source Directories--------->tambahkan : C:\OpenCV2.1\src\cv; C:\OpenCV2.1\src\cvaux; C:\OpenCV2.1\src\cxcore; C:\OpenCV2.1\src\highgui; C:\OpenCV2.1\src\ml;
Ø  Linker -> Input -> Additional Dependencies
Ø  Untuk Debug------>tambahkan :  cv210d.lib; cxcore210d.lib; highgui210d.lib;
Ø  Untuk Release---->tambahkan:   cv210.lib; cxcore210.lib; highgui210.lib;



ALGORITMA PEMROGRAMAN
Deteksi Tepi Citra (Edge Detection)
Deteksi tepi pada suatu citra adalah suatu proses yang menghasilkan garis-garis tepi dari obyek citra, tujuannya yaitu untuk :
  • Meningkatkan penampakan garis batas suatu daerah atau objek di dalam citra
  • Mmenandai bagian yang menjadi detail citra
  • Mencirikan batas objek dan berguna untuk proses segmentasi dan identifikasi objek
  • Memperbaiki detail citra yang kabur
Garis tepi tersebut ditandai dengan jauhnya perbedaan selisih antar tiap pixel, sehingga kita dapat menentukan bahwa titik tersebut merupakan tepi.
Terdapat 3 macam tepi dalam citra, yaitu :

a)  Tepi Curam
Tepi curam adalah tepi dengan perubahan intensitas yang tajam. Arah tepi berkisar 90 derajat.
b)  Tepi Landai
Tepi landai yaitu tepi dengan sudut arah yang kecil. Tepi landai dapat dianggap terdiri  dari sejumlah tepi-tepi lokal yang lokasinya berdekatan.
c)  Tepi yang mengandung derau
Umumnya tepi yang terdapat pada aplikasi visi komputer mengandung derau. Operasi peningkatan kualitas citra dapat dilakukan terlebih dahulu sebelum pendektesian tepi.

ALGORITMA
1.  Siapkan gambar.
2.  Terapkan Gaussianblur pada gambar, yang berguna untuk mengurangi noise.
3.  Konversi gambar yang sudah terfilter, menjadi grayscale.
4.  Menggunakan fungsi sobel.

Listing Program
// Deteksi Tepi.cpp : Definisi file-file import yang akan digunakan.
//

#include "stdafx.h"
#include "opencv2/imgproc/imgproc.hpp"
#include "opencv2/highgui/highgui.hpp"
#include <stdlib.h>
#include <stdio.h>

using namespace cv;
using namespace std;
/** membuat function main */
int main( int argc, char** argv )
{

  /// buat variable yang akan kita gunakan
  Mat src, src_gray, src1;
  Mat grad;
  char* window_name = "Hasil Edge Detector";
  const char* before = " Image Before ";
  int scale = 1;
  int delta = 0;
  int ddepth = CV_16S;
  int c;


  /// meload gambar yang akan kita proses ke deteksi tepi
  src1 = imread( "source.jpg",1 );
  src = imread( "source.jpg",1 );
  if( !src.data )
  { return -1; }

  GaussianBlur( src, src, Size(3,3), 0, 0, BORDER_DEFAULT );

  /// rubah warna gambar ke abu-abu
  cvtColor( src, src_gray, CV_RGB2GRAY );

  /// buat interface window untuk outputnya nanti
  namedWindow( before, WINDOW_AUTOSIZE );
  namedWindow( window_name, CV_WINDOW_AUTOSIZE );


 /// untuk menghasilkan gradien_x dan gradien_y
  Mat grad_x, grad_y;
  Mat abs_grad_x, abs_grad_y;

  /// Gradient X
  //Scharr( src_gray, grad_x, ddepth, 1, 0, scale, delta, BORDER_DEFAULT );
  Sobel( src_gray, grad_x, ddepth, 1, 0, 3, scale, delta, BORDER_DEFAULT );
  convertScaleAbs( grad_x, abs_grad_x );

  /// Gradient Y
  //Scharr( src_gray, grad_y, ddepth, 0, 1, scale, delta, BORDER_DEFAULT );
  Sobel( src_gray, grad_y, ddepth, 0, 1, 3, scale, delta, BORDER_DEFAULT );
  convertScaleAbs( grad_y, abs_grad_y );

  /// Total Gradient (approximate)
  addWeighted( abs_grad_x, 0.5, abs_grad_y, 0.5, 0, grad );

  imshow( before, src1 );
  imshow( window_name, grad );
  waitKey(0);

  return 0;
  }

PROGRAM OUTPUT

Sekian dari kami ( Arif dan Maul ) J

Referensi

Kamis, 14 November 2013

Virus dan Worm

Berikut sedikit pembahasan tentang pengertian dan jenis-jenis virus pada komputer.
“Teori SELF ALTERING AUTOMATA” adalah teori dasar virus yang diungkapkan pada tahun 1949 dan diuji pada tahun 1960 oleh para ahli BELL (AT&T).
Virus komputer bisa diartikan sebagai program komputer biasa. Perbedaan mendasar dengan program lainnya adalah virus dibuat untuk menulari program lainnya, mengubah, memanipulasi, bahkan merusak.
Sebuah program dapat dikatakan sebagai jenis virus bila memiliki 5 kriteria ini :
  1. Kemampuan mendapatkan informasi.
  2. Kemampuan menggandakan diri dan menularkan diri.
  3. Kemampuan melakukan manipulasi.
  4. Kemampuan menyembunyikan diri.
  5. Kemampuan memeriksa suatu file.

Siklus hidup virus itu sendiri ada 4 kriteria :
  1. Dormant phase (fase istirahat/tidur)
    Pada fase ini, virus tidak aktif. Virus diaktifkan oleh kondisi tertentu.
  2. Propagation phase (fase penyebaran)
    Pada fase ini, virus akan mengcopikan dirinya pada suatu program atau pada media storage.
  3. Trigerring phase (fase aktif)
    Di fase ini, virus tersebut akan aktif. Hal ini juga dipicu oleh beberapa kondisi pada dormant pase.
  4. Execution phase (fase eksekusi)
    Pada fase inilah virus yang telah aktif akan melakukan fungsinya, contoh : menghapus sebuah file.
Beberapa kriteria jenis – jenis virus komputer. Tinggal liat aja mungkin sekarang lagi ada masalah di komputer anda. Kriteria itu :
  1. Virus makro
    Jenis virus yang biasa kita denger. Virus ini ditulis dengan bahasa pemrograman suatu aplikasi, bukan dengan pemograman suatu sistem operasi.
    Contoh virus ini :
    • Varian W97M. Misal W97M.Panther
      Panjang 1234 bytes, akan menginfeksi NORMAL.DOT dan menginfeksi dokumen jenis terbuka.
    • WM.Twno.A;TW
      Panjang 41984 bytes, akan menginfeksi dokumen jenis Ms.Word. Ekstensi *.DOC
  2. Virus boot sector
    Virus jenis ini umum sekali menyebar. Saat menggandakan dirinya, virus jenis ini akan memindahkan atau mengganti boot sector asli ke program booting virus.
  3. Stealth virus
    Virus jenis ini menguasai tabel interrupt pada DOS yang sering kita kenal “Interrupt Interceptor”. Virus ini berkemampuan mengendalikan level DOS dan biasanya bersembunyi sesuai nama, baik secara penuh maupun ukuran.
  4. Polymorphic virus
    Virus ini dirancang untuk mengecoh program antivirus. Virus ini selalu berusaha agar tidak dikenali antivirus dengan cara mengubah strukturnya setiap kali selesai menginfeksi file/program lain.
  5. Virus file/program
    Virus ini menginfeksi file yang dapat dieksekusi langsung dari sistem operasi, baik itu file *.EXE maupun *.COM. Biasanya, hasil infeksi virus ini dapat diketahui dengan berubahnya ukuran file yang diserang.
  6. Multipartition virus
    Virus ini merupakan gabungan virus boot sector dan virus file. Pekerjaan yang dilakukan berakibat ganda, yaitu meninfeksi file *.EXE atau *.COM dan juga menginfeksi boot sector.
Selanjutnya kita membahas tentang 1 lagi varian malware yaitu worm, worm adalah adalah sebuah program komputer yang dapat menggandakan dirinya secara sendiri dalam sistem komputer. Sebuah worm dapat menggandakan dirinya dengan memanfaatkan jaringan (LAN/WAN/Internet) tanpa perlu campur tangan dari user itu sendiri. Worm tidak seperti virus komputer biasa, yang menggandakan dirinya dengan cara menyisipkan program dirinya pada program yang ada dalam komputer tersebut, tapi worm memanfaatkan celah keamanaan yang memang terbuka atau lebih dikenal dengan sebutan vulnerability. Beberapa worm juga menghabiskan bandwidth yang tersedia. Worm merupakan evolusi dari virus komputer. Hanya ada satu cara untuk mengatasi worm yaitu dengan menutup celah keamanan yang terbuka tersebut, dengan cara meng-update patch atau Service Pack dari operating sistem yang digunakan dengan patch atau Service Pack yang paling terbaru.


Virus komputer memang dapat menginfeksi berkas-berkas dalam sebuah sistem komputer, tapi worm dapat melakukannya dengan lebih baik. Selain dapat menyebar dalam sebuah sistem, worm juga dapat menyebar ke banyak sistem melalui jaringan yang terhubung dengan sistem yang terinfeksi. Beberapa worm, juga dapat mencakup kode-kode virus yang dapat merusak berkas, mencuri dokumen, e-mail, atau melakukan hal lainnya yang merusak, atau hanya menjadikan sistem terinfeksi tidak berguna.

Beberapa contoh dari worm adalah sebagai berikut:
  • ADMw0rm: Worm yang dapat melakukan ekspolitasi terhadap layanan jaringan Berkeley Internet Name Domain (BIND), dengan melakukan buffer-overflow.
  • Code Red: Worm yang dapat melakukan eksploitasi terhadap layanan Internet Information Services (IIS) versi 4 dan versi 5, dengan melakukan serangan buffer-overflow.
  • LoveLetter: Worm yang menyebar dengan cara mengirimkan dirinya melalui e-mail kepada semua akun yang terdaftar dalam Address Book Microsoft Outlook Express/daftar kontak dalam Microsoft Outlook dengan cara menggunakan kode Visual Basic Script (VBScript).
  • Nimda
  • SQL-Slammer
Sekian penjelasan tentang 2 buah malware dari saya 

Referensi :

Rabu, 30 Oktober 2013

Contoh Dokumen SIUP, NPWP, Akta Notaris, dan SPT Pajak

Assalamualaikum :)

Pada kesempatan kali ini saya akan mencoba memberi tahu beberapa contoh dokumen yang terkait dengan tugas softskill Pengantar Bisnis Informatika yang diajarkan oleh dosen Ibu Suharni.

  • SIUP 
SIUP adalah Izin Usaha yang dikeluarkan Instansi Pemerintah melalui Dinas Perindustrian dan Perdagangan Kota/Wilayah sesuai domisili perusahaan. SIUP digunakan untuk menjalankan kegiatan usaha dibidang Perdagangan Barang/Jasa di Indonesia sesuai dengan KLUI “Klasifikasi Lapangan Usaha Indonesia”.
Contoh SIUP : 

  • NPWP
Nomor Pokok Wajib Pajak biasa disingkat dengan NPWP adalah nomor yang diberikan kepada wajib pajak (WP) sebagai sarana dalam administrasi perpajakan yang dipergunakan sebagai tanda pengenal diri atau identitas wajib pajak dalam melaksanakan hak dan kewajiban perpajakannya.
contoh NPWP : 
  • Akta Notaris
Akta Notaris adalah dokumen resmi yang dikeluarkan oleh notaris menurut KUH Perdata pasal 1870 dan HIR pasal 165 (Rbg 285) yang mempunyai kekuatan pembuktian mutlak dan mengikat. Akta Notaris merupakan bukti yang sempurna sehingga tidak perlu lagi dibuktikan dengan pembuktian lain selama ketidakbenarannya tidak dapat dibuktikan. Berdasarkan KUH Perdata pasal 1866 dan HIR 165, akta notaris merupakan alat bukti tulisan atau surat pembuktian yang utama sehingga dokumen ini merupakan alat bukti persidangan yang memiliki kedudukan yang sangat penting
Contoh Akta Notaris :


  • SPT Pajak
Surat Pemberitahuan (SPT) adalah surat yang oleh Wajib pajak digunakan untuk melaporkan penghitungan dan atau pembayaran pajak, objek pajak dan atau bukan objek pajak dan atau harta dan kewajiban, menurut ketentuan peraturan perundang-undangan perpajakan.
Contoh SPT Pajak ;

Referensi :
  1. http://fadla.wordpress.com/2008/07/02/siup-surat-izin-usaha-dagang/
  2. http://id.wikipedia.org/wiki/Nomor_pokok_wajib_pajak
  3. http://id.wikipedia.org/wiki/Akta_Notaris
  4. http://id.wikipedia.org/wiki/SPT
Artikel Kelompok Yang Terkait :


Senin, 14 Oktober 2013

Syntax / Tag yang baru pada HTML5

Assalamualaikum Wr Wb

Setelah teman-teman kelompok saya menjelaskan tentang HTML5, kali ini saya akan mencoba menjelaskan tentang syntax atau tag baru yang ada di HTML5. HTML5 dibuat untuk membuat proses coding menjadi lebih mudah dan logis. Fitur-fitur unik dan mengesankan dari HTML5 datang di dalam departemen multimedia. Banyak dari fiturnya yang yang dibuat dengan pertimbangan bahwa pengguna harus dapat menjalankan konten berat (heavy content) dalam device dengan tenaga rendah (low-powered device).



Pada HTML5 terdapat fitur elemen <video>,<audio> dan <canvas> , tetapi juga integrasi dari konten gambar grafis vektor (yang sebelumnya kita ketahui dengan tag <object>). Artinya, konten multimedia dan grafis dalam website akan dapat ditangani dan dieksekusi dengan lebih mudah dan lebih cepat, tanpa membutuhkan plugin atau API tambahan.

Ada banyak sekali syntax baru yang ditambahkan ke dalam HTML5, tetapi dibawah ini saya akan menyebutkan beberapa syntax yang dirasa paling penting. Sisanya dapat Anda lihat di HTML5 section W3C.

  • <article> tag ini mendefinisikan artikel, posting atau komentar dari pengguna, atau suatu konten yang independen
  • <aside> tag aside pada HTML5 menandakan suatu konten yang terpisah (aside) dari konten sebuah halaman, seperti sebuah sidebar
  • <header>,<footer> Anda tidak perlu lagi mendefinisikan ID header atau footer, gunakan tag ini untuk menggantikannya
  • <nav> navigasi pada website Anda dapat ditaruh didalam tag nav, yang dapat secara otomatis membuat daftar Anda seperti sebuah navigasi
  • <section> tag ini dapat mendefinisikan section apapun dalam document Anda. Section bekerja kurang lebih seperti div yang memisahkan section yang berbeda
  • <audio>, <video> jelas sekali ini adalah tag penanda untuk konten suara dan video, yang sekarang dapat lebih mudah dijalankan dari berbagai device
  • <embed> tag baru ini berfungsi untuk menampilkan konten interaktif (plugin) atau aplikasi eksternal
  • <canvas> canvas tag ini cukup menarik, memungkinkan Anda menggambar menggunakan script kode seperti JavaScript.


DOCTYPE
HTML5 memerlukan DOCTYPE yang ditentukan untuk memastikan bahwa browser merender atau membaca halaman situs dalam mode standar. Deklarasi DOCTYPE untuk sintaks HTML dan bersifat case-sensitive, <DOCTYPE html!>. Doctypes dari versi sebelumnya dari HTML lebih panjang karena masih berbasis SGML dan karena itu diperlukan suatu referensi untuk DTD. Dengan HTML5 ini tidak lagi digunakan dan browser hanya memerlukan syntax yang lebih sederhana, <DOCTYPE html!>.

HTML5 DOCTYPE
<!DOCTYPE html>
 Vesri HTML sebelumnya DOCTYPE menggunakan rerferensi DTD, seperti contoh ini:

HTML 4.01 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
XHTML 1.0
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">


HTML5 Set Karakter
Untuk menampilkan halaman HTML dengan benar, browser harus tahu apa Character Sets (charset) yang digunakan. Pada HTML 5 charset Anda dapat menggunakan elemen <meta> dengan atribut charset yang menentukan pengkodean.

Berikut adalah contoh sederhana:
<meta charset="UTF-8">
Contoh di atas dapat menggantikan pemakaian <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> meskipun sintaks tersebut masih diperbolehkan.

Contoh struktur dokumen HTML5 minimum :
<!DOCTYPE html>
<html>
<head>
   <meta charset="utf-8">
   <title>...</title>
</head>
<body>
  <header>...</header>
  <nav>...</nav>
  <article>
    <section>
      ...
    </section>
  </article>
  <aside>...</aside>
  <footer>...</footer>
</body>
</html>

Sekian penjelasan syntax / tag yang ada di HTML5, mohon maaf bila ada kesalahan kata

Wassalamualaikum Wr Wb

Artikel yang terkait :

Referensi :