Tuesday, December 23, 2014

Sunday, December 21, 2014

Library Excel yang Bagus untuk C#

Ngomong-ngomong format data tabel pasti tidak lepas dengan aplikasi buatan microsoft yaitu Excel, nah bagi kalian yang sedang membutuhkan pustaka untuk melakukan export data ke dalam format excel, kebetulan setelah searching kesana kemari, sampailah didapatkan www.epplus.codeplex.com yang powerfull sekali. Kamu bisa melihat cara kerja library untuk write seperti berikut

Thursday, December 11, 2014

Sunday, December 7, 2014

dependecy library di python

[softscients - dependecy library di python] Python menawarkan banyak kemudahan dalam mengembangkan sebuah aplikasi, pengembangan algoritma, bahkan banyak sekali library/modul yang telah disediakan oleh para pengembang!

Tuesday, December 2, 2014

Membuat Studio Mini – Black Box

Studio mini yang dimaksud dalam posting kali ini adalah tempat yang dikondisikan baik sumber cahaya, warna background dinding samping-bawah yang dapat diatur sedimikian rupa pada proses pengambilan gambar. 

Tools Alternatif selain matlab



[softcients - Tools Alternatif selain matlab] Sudah sangat populer sekali matlab digunakan dalam dunia komputasi teknis, entah itu versi crack yang digunakan atau versi lainnya, dengan kemudian function built in yang dibungkus oleh toolbox mulai dari 

Friday, November 21, 2014

Algoritma Manber untuk Deteksi Plagiarisme



[www.softscients.web.idAlgoritma Manber untuk Deteksi Plagiarisme ] Dunia digital telah menawarkan kemudahan proses BAJAK atau juga bisa sering disebut plagiat! Karena begitu mudah dan cepatnya format digital tersebut di copy pastekan, tentu ada caranya yaitu algoritma mendeteksi plagiarisme dengan menggunakan algoritma Manber. Algoritma ini menggunakan beberapa langkah yang sangat mudah. Langkah nya sebagai berikut

Wednesday, November 12, 2014

Teknik penentuan Core Point Sidik Jari

[www.softscients.web.idTeknik penentuan Core Point Sidik Jari]Tahap awal yang ‘agak’ lumayan penting dalam teknik pengenalan sidik jari adalah menentukan lokasi corepoint nya! Ibarat dalam pengenalan wajah, maka harus tahu terlebih dahulu lokasi hidung, mata, mulut.  Nah berikut salah satu contoh citra sidik jari

Friday, November 7, 2014

Simulasi Monte Carlo

[www.softscients.web.id -  Cara cepat Simulasi Monte CarloSimulasi Monte Carlo adalah percobaan elemen kemungkinan dengan menggunakan sampel random (acak). Simulasi monte carlo digunakan dengan mensimulasikan keadaan sistem yang memiliki ketidakpastian dengan jumlah percobaan yang sangat besar. Dengan jumlah percobaan yang besar, 

Wednesday, November 5, 2014

Cara Menggunakan Fitur Debugging di Visual Studio


Proses pengembangan / implementasi sebuah algoritma perlu adanya crosscheck hasil, biasanya dalam proses unit bisnis yang besar akan dipecah dalam function/method yang lebih kecil lagi. Proses pengujian function/method bisa menggunakan fasilitas debug atau langsung cetak hasil nya di ouput. 

Wednesday, October 29, 2014

Saturday, October 25, 2014

Cara Terbaik Membangun aplikasi di Matlab



[www.softscient.web.id - Cara terbaikmembangun aplikasi di matlab]. Banyak kasus riset yang penulis tangani membutuhkan banyak sekali proses kerja, untungnya matlab telah menyediakan banyak sekali function built in terutama yang menyangkut operasi matrix, walaupun begitu tetap saja membutuhkan kerangka kerja dengan baik agar function code yang telah kita buat tertata rapi dan mudah untuk ‘dirawat’ jikalau terjadi bug dikemudian hari. Cara terbaikmembangun aplikasi di matlab yaitu memisahkan dalam bentuk ‘logika bisnis’, yup istilah yang penulis buat sendiri. Maksud nya adalah membuat bagian tertentu secara terpisah dan bisa terhubung kembali. Setiap kali ada order riset yangmenggunakan matlab, penulis akan membuat dalam 1 folder, misalkan

Folder = ‘Aplikasi Voice Recognition – 12 oktober 2014’
Didalam folder tersebut dibuat folder yaitu
Folder = ’daftar_pustaka’ berisi *.m dari implementasi function
Folder = ’daftar_data’ berisi *.mat, *.txt, *.csv
#merapikan code dan logika bisnis
Contoh dalam membuat function yaitu
Disimpan di daftar_pustaka/hitungkarakter.m


function [frekuensi]= hitungkarakter(kalimat,karakter)
%untuk menghitung jumlah karakter yang ada didalam kalimat
%revisi : 20 oktober 2014
%www.softscients.web.id
frekuensi = 0;
for i=1:size(kalimat,2)
    if strcmp(kalimat(i),karakter)==1
        frekuensi = frekuensi + 1;
    end
end      
 


Kemudian untuk memanggil function yaitu disimpan di folder utama/program.m

clc;clear all;close all;
addpath('daftar_pustaka'); %%untuk memanggil semua function
data_kalimat = 'www.softscients.web.id';
jumlah = hitungkarakter(data_kalimat,'t')    
 




Anda bisa memperhatikan semuanya rapi dan mudah untuk dirawat,
Penulisan
[1]. nama function menggunakan huruf kecil dan diletakan di folder ‘daftar_pustaka’
[2]. nama variabel menggunakan huruf kecil dan disipisah dengan karakter _
[3]. Namm folder pun seperti point [2]

sehingga proses developing menjadi rapi dan fokus, bahkan dokumentasi nya singkat mengenai sebuah function menjadi lebih baik



Friday, October 17, 2014

Penentuan Rotasi Citra Sidik jari



Ideal adalah kata yang selalu diinginkan untuk segala penerapan algoritma, mulai dari ideal bentuk nya, resolusi nya, letak nya. Misalka berikut adalah citra sidik jari yang sangat ideal yaitu jelas minuteae, letak center, tidak terjadi rotasi!

Tapi bandingkan dengan yang ini!
 




Blur, tergradasi dan yang paling menjengkelkan adalah mengapa miring??
Anda saja mereka tahu bahwa operasi finger recognition yang lumayan penting adalah core point dan sebaik nya tidak terjadi kemiringan, tapi ya sudahlah, rupanya kita butuh teknik ehancement dan teknik rotasi citra untuk membuat menjadi ideal. Penulis telah membahas sebelum nya mengenai teknik enhancement menggunakan teknik normalisasi, sedangkan pada kasus ini yaitu teknik mererotasi kembali agar tidak terjadi kemiringan. Berikut contoh penerapan dari operasi tersebut


Teknik Enhancement Normalisasi Sidik Jari

Hal pertama yang harus dilakukan dalam teknik finger code recognition adalah perbaikancitra sidik jarifinger enhancement yaitu memperbaiki kualitas citra. Seringkali mungkin kadangkalanya, kita akan mengolah suatu citra yang tidak bagus kualitasnya, entah karena ada noise, blur seperti berikut

Saturday, October 11, 2014

Menghitung Gradient Citra - Operator Sobel



Penentuan gradient citra dapat menggunakan operator sobel, Untuk lebih jelas nya ke




Penulis tidak akan menerangkan lagi dalam bentuk artikel dalam postingan disini, tapi berusaha untuk mengimplementasikan dalam bentuk code yang siap pakai dan menggunakan function dasar yang ada di matlab. Berikut menggunakan operator sobel



Kemudian penulis mengimplementasikannya akan menghasilkan citra berikut



 
code nya berikut

Matlab-Filtering imfilter dan conv2



Ada suatu pertanyaan dari kawan yaitu mengenai cara membuat filter gaussian dan mengimplementasikan kedalam suatu citra
Yaitu ada 2 cara 


menggunakan function imfilter atau conv2


clc;clear all;close all;
%% www.softscients.web.id
I = imread('D:/bird.bmp');
%% menggunakan function buil-in yaitu fspecial
myfilter = fspecial('gaussian',[5 5],2); %%membuat filter 
%% menggunakan function imfilter
Ig(:,:,1) = imfilter(double(I(:,:,1)),myfilter,'same');
Ig(:,:,2) = imfilter(double(I(:,:,2)),myfilter,'same');
Ig(:,:,3) = imfilter(double(I(:,:,3)),myfilter,'same');
figure,imshow(uint8(Ig)),title('imfilter -- www.softscients.web.id');
 
%% menggunakan function yang dibuat sendiri yaitu gaussian2d
myfilter2 = gaussian2d(5,2); %%membuat filter
%% menggunakan teknik convolution yaitu function conv2
Ig2(:,:,1) = conv2(double(I(:,:,1)),myfilter2,'same');
Ig2(:,:,2) = conv2(double(I(:,:,2)),myfilter2,'same');
Ig2(:,:,3) = conv2(double(I(:,:,3)),myfilter2,'same');
figure,imshow(uint8(Ig2)),title('convolution -- www.softscients.web.id');     



Jika kita ingin membuat filter gaussian bisa menggunakan berikut

function f=gaussian2d(N,sigma)
%% http://stackoverflow.com/questions/13193248/how-to-make-a-gaussian-filter-in-matlab
N = N - 1;
[x y] = meshgrid(round(-N/2):round(N/2), round(-N/2):round(N/2));
f = exp(-x.^2/(2*sigma^2)-y.^2/(2*sigma^2));
f = f./sum(f(:));       

citra asli


citra yang diberi filter gaussian - blur

Thursday, October 9, 2014

perbaikan citra digital dengan teknik FFT



Berbicara mengenai teknik perbaikan citra digital sangatlah luas sekali, pada kasus kali ini, penulis kedapatan suatu masalah untuk perbaikan kualitas citra digitalsidik jari yaitu untuk memunculkan kembali sidik pada hasil citra scan untuk dianalisis lebih lanjut. Teknik yang agak rumit pun dipakai yaitu teknik ForierTransform untuk mengubah citra domain ke ruang frekuensi. Teknik yang lebih cepat yaitu menggunakan FFT (fast forier transform) dengan menggunakan pilihan ukuran berupa  8, 16, dan 32.

Teknik ini bekerja dengan non overlapping block yaitu membagi block kecil berukuran 8,16,atau 32 kemudian tiap block dilakukan operasi berikut
misalkan ada data berikut






Maka kita membuat block, sebagai misal block biru dengan ukuran 8*8
matrix_block yaitu matrix berukuran sesuai dengan diatas

fft_ matrix_block  = fft(matrix_block); %%operasi fft

ifft_data = ifft((fft_ matrix_block).*abs(fft_ matrix_block.^k)); %%operasi dot matrix perkalian

dengan k adalah faktor yang bernilai antar 0.01- 0.2

kemudian hasil tersebut di assign kembali, dengan persamaan berikut

matrix_block = ifft_data

misalkan saja citra mempunyai ukuran 300*300 maka perlu di crop menjadi
288*288 saja dari persamaan
Ukuran = floor(300/32) = 9
Ukuran_crop = ukuran*32 = 288

Sehingga jika kita melakukan operasi non overlapping block dengan masing-masing block berukuran 8, maka ada 288/8 = 36 block baris* 36 block kolom dengan masing masing – masing block berukuran 8*8. 

Penulis menggunakan java untuk melakukan implementasi tersebut yaitu



Wednesday, October 8, 2014

Convolution dan Filtering Citra Digital



Jika anda pernah menggunakan software pengolah gambar seperti photoshop, GIMP dan yang lainnya mungkin akan mengenal dengan nama nya filter!
Filter tersebut bekerja menggunakan teknik convolusi mulai dari filter blur, sharpening, edge detection, curl, warp dan yang lain nya

Daripada penulis membuat tutorial, sebaik nya anda bisa merujuk ke
http://fourier.eng.hmc.edu/e161/lectures/convolution/index.html




 

Sunday, October 5, 2014

Library format json di java



Membuat pertukaran data yang efektif, kita dapat menggunakan JSON (dilafalkan "Jason"), singkatan dari JavaScript Object Notation (bahasa Indonesia: notasi objek JavaScript), adalah suatu format ringkas pertukaran data komputer. Formatnya berbasis teks dan terbaca-manusia serta digunakan untuk merepresentasikan struktur data sederhana dan larik asosiatif (disebut objek).

Misalkan ada transaksi berikut





Data tersebut bisa saja kita menggunakan konsep POJO di java yaitu Plain Old Java Object yaitu class yang berisi set() dan get(), akan tetapi jika menggunakan 2 bahasa yang berbeda untuk membangun sebuah aplikasi, maka konsep POJO akan sulit karena tidak fleksible, oleh karena itu data transaksi diatas dapat diubah kedalam format yang terstruktur seperti XML, tapi kali ini kita akan mengubah nya kedalam format JSON, silahkan ke http://www.jsoneditoronline.org/ untuk mencoba secara online. 

Friday, October 3, 2014

Mengenal sample rate audio



Suara yang kita dengar sehari-hari adalah merupakan gelombang analog. Bagaimana caranya suara analog ini dapat dimanipulasi oleh peralatan elektronik yang ada? Alat yang diperlukan untuk melakukan ini adalah transducer. Dalam hal ini, transducer adalah istilah untuk menyebut sebuah peralatan yang dapat mengubah tekanan udara (yang kita dengar sebagai suara) ke dalam tegangan elektrik yang dapat dimengerti oleh perangkat elektronik, serta sebaliknya. Contoh transducer adalah mikrofon dan speaker. Mikrofon dapat mengubah tekanan udara menjadi tegangan elektrik, sementara speaker melakukan pekerjaan sebaliknya. Proses pengubahan sinyal analog menjadi digital harus memenuhi sebuah kriteria, yaitu kriteria Nyquist. Kriteria ini mengatakan bahwa untuk mencuplik sebuah sinyal yang memiliki frekuensi X Hertz, maka harus mencupliknya minimal dua kali lebih rapat, atau 2X Hertz. Jika tidak, sinyal tidak akan dapat dikembalikan ke dalam bentuk semula. 

Ketika sound card mengubah audio menjadi data digital, sound card akan memecah suara tadi menurut nilai menjadi potongan-potongan sinyal dengan nilai tertentu. Proses sinyal ini bisa terjadi ribuan kali dalam satuan waktu. Banyak pemotongan dalam satu satuan waktu ini dinamakan sampling rate (laju pencuplikan). Satuan sampling rate yang biasa digunakan adalah KHz (kilo Hertz)

Kerapatan laju pencuplikan ini menentukan kualitas sinyal analog yang akan diubah menjadi data digital. Makin rapat laju pencuplikan ini, kualitas suara yang dihasilkan akan makin mendekati suara aslinya. Sebagai contoh, lagu yang disimpan dalam Compact Disc Audio (CDA) memiliki sampling rate 44.1 KHz, yang berarti lagu ini dicuplik sebanyak 44100 kali dalam satu detik untuk memastikan kualitas suara yang hampir sama persis dengan aslinya

Sedikit mengenai sampling rate ini, sampling rate secara lebih detail adalah berapa banyak titik yang diambil dari satuan waktu yang nantinya digunakan untuk membuat discrete signal. Ribet ya? Kalau kita lihat gambarnya dibawah ini.


Dibawah ini
Frekuensi asli = 2 Hz
Lihat garis warna merah


Tuesday, September 30, 2014

Parsing String di java

Ada kasus kecil yaitu
melakukan parsing dari sebuah teks sms center.
Program akan menerima inputan dala format seperti ini
REG#NAMALENGKAP#ALAMAT#NOTELP
Semisal
REG#Eka Dian Ismawati#JL CEMPAKA 4 MALANG#081765334221


      
import java.util.ArrayList;

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 *
 * @author www.softscients.web.id
 */
public class Parsing {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
        String pesan = "REG#Eka Dian Ismawati#JL CEMPAKA 4 MALANG#081765334221";
        ArrayList  data  = new  ArrayList();
        int awal = 0;
        int akhir = 0;
        //menentukan jumlah #
        for(int i=0;i<pesan.length();i++)
        {
            if(pesan.charAt(i)=='#')
            {
                akhir = i;
                //System.out.println(awal+" -  "+akhir);
                System.out.println(pesan.substring(awal,akhir));
                awal = akhir+1;                
                
            }
            if(i==pesan.length()-1)
            {
                System.out.println(pesan.substring(akhir+1,pesan.length()-1));
            }
        }
    }
}
 




REG
Eka Dian Ismawati
JL CEMPAKA 4 MALANG
08176533422      
 

Mari belajar Dasar – dasar Sinyal


Sebuah sinyal dapat dibaca dari gambar berikut




Mempunyai

Amplitudo = 5

Frekuensi = 2 Hz dibaca dalam 1 detik terdapat 2 gelombang/getaran

Waktu = 0.5 detik dibaca 1 gelombang/getaran membutuhkan waktu 1 detik

Sunday, September 28, 2014

Realtime Segmentasi Citra Digital dengan Kohonen


Menyambung tulisan sebelumnya. Penulis terapkan pada live webcam, terlihat bahwa segmentasi berjalan dengan baik, dibandingkan dengan metode otsu, maka adaptive segmentasi berbasis kohonen lebih baik



Adaptif Segmentasi Citra dengan Kohonen


Penulis dibuat pusing oleh kasus ini yaitu dengan permasalahan yang sangat sederhana sekali yaitu melakukan segmentasi Black White. Nah operasi untuk mengubah dari format color – grayscal ke format BW paling banyak digunakan adalah metode otsu. Berikut adalah salah satu contoh data gambar yang akan diubah ke BW



Penulis menggunakan matlab yaitu function im2bw menghasilkan berikut




ternyata kurang sempurna yaitu masih banyak noise dikarenakan kurang sempurna. Penulis ingin menggunakan metode adaptif yang lainnya yaitu metode kohonen untuk segmentasi. Berikut contoh implementasi darikohonen, penulis menggunakan java untuk implementasi nya.

 

Friday, September 26, 2014

Menampilkan Histogram Citra

Informasi yang dapat ditampilkan suatu gambar dapat berupa histogram yaitu memuat informasi mengenai frekuensi dari nilai pixel, Biasa nya gambar berwarna terdiri dari nilai RGB dengan tingkat kedalam warna sebanyak 256 bit. Berikut contoh aplikasi yang menyajikan informasi histogram menggunakan pustaka JFreeChart





Download
https://www.dropbox.com/s/5xrd7yetjeyxe5k/aplikasi%20viewer%20histogram%20-%206%20oktober%202014%20-%20java.rar?dl=0

Aplikasi Black White dengan metode Otsu

Mengubah gambar berwarna – grayscale ke gambar hitam putih dapat dilakukan menggunakan metode otsu. Metode otsu mengkalkulasikan histogram gray untuk menghasilkan nilai Threshold. 

Bagaimana teknik Otsu Bekerja?
Thresholding (pengambangan) mencari nilai T (ambang batas) yang digunakan untuk melakukan proses konversi citra true color dalam format black white. Ada banyak metode untuk mendapatkan nilai ambang batas sebagai acuan untuk mengkategorikan nilai suatu pixel termasuk warna hitam atau putih jika dalam format biner maka (1 dan 0) dan format grayscale (0 dan 255) salah satu yang paling banyak dikenal luas dan digunakan sebagai standar yaitu metode Otsu.
Metode Otsu mencari nilai ambang batas (T) dengan melakukan analisis diskriminan pada suatu variabel yang dapat membedakan antara dua atau lebih kelompok yang muncul secara alami.  Misalkan nilai ambang batas yang akan dicari k. Nilai k berkisar 1 sampai dengan L, dengan L = 255
Jika
p(i)         = nilai histogram   
sumT         = jumlah total pixel
wB         = bobot background
wF         = bobot foreground
N         = luas matrix
sumB         = jumlah total pixel ke i
mB         = rata-rata background
mF         = rata - rata foreground




















Berikut adalah contoh dari oeprasi BW





Kemudian dilakukan operasi BW dengan metode Otsu