Apa itu pengolahan citra digital(PCD)? Mungkin itu pertanyaan awal saat mendengar kata PCD, dari yang saya tahu kebanyakan berpikir PCD adalah pengolahan citra menggunakan photoshop atau software semacamnya. Menurut anda bagaimana? Apakah benar pemikiran tersebut? Daripada menerka-nerka tanpa dasar lebih baik kita pahami bagian per bagian mulai dari pengertian citra, citra digital, sampai pengolahan citra digital. Continue reading “Pengolahan Citra Digital – Konsep Dasar”
Algoritma Kurva Bezier
Bezier, bezier, makanan apa lagi nih. Saya juga ga ngerti artinya tapi yang terpenting sebutannya ya “BEZIER” hehehe.. 🙂 . Kalau kata orang-orang pinter sih, bezier curve digunakan untuk penghalusan kurva. Misal terdapat 4 titik seperti gambar dibawah ini
Maka dibuatlah kurva yang lebih smooth dari kurva yang terbentuk dari kurva yang tidak halus.
kemudian setelah pemrosesan akan menghasilkan titik-titik baru seperti berikut.
Prinsip Dasar
Asumsikan kita memiliki titik P0, P1, …, Pn. P terdiri dari (x,y).
Kurva bezier n grade diperoleh dari operasi titik poloigon n+1dengan persamaan :
Tetapi agar lebih simple dan mudah dimengerti persamaan diatas diringkas menjadi berikut dan tentunya tidak merubah artinya:
Kemudian terdapat kasus khusus dalam perhitungan bezier ini
Linear bezier
Quadratic Bezier
Cubic Bezier
Algoritma
Step 1: Menentukan nilai t [0,1].
Step 2: Set Pi[0] (t) = Pi, for i = 0,…,n.
Step 3: For j= 0,…,n, set
for i = j,…,n.
Step 4: g (t) = Pn[n] (t)
Untuk contoh kode dalam java dan C# bisa diunduh di link berikut
Bezier Java
Referensi:
http://www.codeproject.com/KB/recipes/BezirCurves.aspx
http://www.netgraphics.sk/beziers-curves
Auto property set get di C++ class
Welcome to the C++ world ![]()
Kali ini saya akan berbagi tips untuk membuat property otomatis di C++ seperti halnya pada sintax di code C#. Seperti apa tipsnya? Tapi setelah yg satu ini. hehe…Maksudnya setelah kita contoh source code simple header dari kelas berikut:
#ifndef SAMPLECLASS_H
#define SAMPLECLASS_H
//sample header class dengan property set get
class SampleClass
{
public:
void setNo(const int &no);
int no() const;
private:
int no;
}
#endif
Contoh diatas cuma ada 1 private member, tapi jika kita akan membuat kelas dengan banyak private member pasti bener capek buat set get method, belum lagi logic method yang akan digunakan nantinya. Di dalam C# dikenalkan auto property dengan set get method yg inline seperti berikut:
public int No{ set; get; }
Lalu bagaimana caranya supaya bisa buat auto property di C++ seperti code di C#?
Instalasi PHP di IIS server dengan OS Windows 7
Pada IIS server secara default tidak dapat menangani request file php, karena itu agar IIS server mampu menangani request php script harus ditambahkan sendiri secara manual.
- Langkah pertama yang perlu dilakukan yaitu download php terlebih dahulu(unduh non-thread-safe ZIP archive for Windows). Versi PHP yang digunakan penulis yaitu versi 5.3.6.Ekstrak file yang telah didownload tadi kedalam hardisk (misal ekstrak di C:\php5) kemudian salin berkas php.ini-recommended menjadi php.ini. Setelah itu tambahkan konfigurasi berikut:
cgi.force_redirect = 0
cgi.fix_pathinfo = 1
fastcgi.impersonate = 1 - Setelah konfigurasi php selesai, Selanjutnya yaitu install IIS server, caranya dengan pilih START –> Control Panel –> Programs –> Turn Windows Features on or off. Kemudian Aktifkan World Wide Web Service/Application Development Features/CGI dan juga aktifkan Web Management Tools/IIS Management Console. Untuk lebih jelasnya lihat dibawah ini. Continue reading “Instalasi PHP di IIS server dengan OS Windows 7”
Jaringan Syaraf Tiruan – Apa-Apa-Apa
Apa itu Jaringan Syaraf Tiruan(JST)?
Jaringan saraf tiruan (JST) atau neural network adalah suatu metode komputasi yang meniru sistem jaringan saraf biologis. Metode ini menggunakan elemen perhitungan non-linier dasar yang disebut neuron yang diorganisasikan sebagai jaringan yang saling berhubungan, sehingga mirip dengan jaringan saraf manusia. Jaringan saraf tiruan dibentuk untuk memecahkan suatu masalah tertentu seperti pengenalan pola atau klasifikasi karena proses pembelajaran.
Layaknya neuron biologi, JST juga merupakan sistem yang bersifat fault tolerant dalam 2 hal. Pertama, dapat mengenali sinyal input yang agak berbeda dari yang pernah diterima sebelumnya. Sebagai contoh, manusia sering dapat mengenali seseorang yang wajahnya pernah dilihat dari foto atau dapat mengenali sesorang yang wajahnya agak berbeda karena sudah lama tidak menjumpainya. Kedua, tetap mampu bekerja meskipun beberapa neuron-nya tidak mampu bekerja dengan baik. Jika sebuah neuron rusak, neuron lain dapat dilatih untuk menggantikan fungsi neuron yang rusak tersebut. Continue reading “Jaringan Syaraf Tiruan – Apa-Apa-Apa”
Optimasi fungsi Math.Exp dan Math.Pow di C#
Karena tidak ada kerjaan semalam jadi iseng2 ja nyari artikel tentang optimasi di C#, maklumlah ane kan programmer C#. :D. Setelah mencari-cari ternyata nemu cara optimasi yang aneh tapi bener sip. Pertama kali yang saya bahas disini yaitu fungsi exponensial. Dalam C# sudah ada fungsi yang menangani perpangkatan exponensial, tp itu belum cukup optimal karena ada cara lain yang lebih cepat dalam menghitung e^val.
public static double Exp(double val) {
long tmp = (long) (1512775 * val + (1072693248 - 60801));
return BitConverter.Int64BitsToDouble(tmp << 32);
}
Continue reading “Optimasi fungsi Math.Exp dan Math.Pow di C#”
Penyelesaian Kasus Diagonal V dengan Array 2 Dimensi (C#)
Terinspirasi dari artikelnya jefrey hermanto tentang solusi kasus diagonal V, iseng2 ja bikin programnya cz cukup simple. Mungkin ada yang belum tau apa itu diagonal V, tp apa gmna ya njelasinnya. Bingung ndiri, hehehe…Tapi kira-kira bentuknya seperti ini.
Input: 3 3 2 1 2 3 2 3 2 3 2 1 2 3 2 1 2 3 2 3 2 3 2 1 2 3
Nah kira-kira seperti itulah bentuknya, dan solusinya cukup mudah logikanya. Langsung aja saya ambil dari artikelnya jefrey hermanto…hehehe….
KANAN 5 4 3 2 1 2 3 4
BAWAH 4 3 2 1 2 3 4 5
KIRI 4 3 2 1 2 3 4 5
ATAS 5 4 3 2 1 2 3 4
----------->
5 4 3 2 1 2 3 4 5
4 4
3 3
2 2
1 1
2 2
3 3
4 4
5 4 3 2 1 2 3 4 5
<------------
Continue reading “Penyelesaian Kasus Diagonal V dengan Array 2 Dimensi (C#)”
Tutorial jQuery: Dasar-dasar selectors
Bismillah, sudah lama vakum akhirnya bisa nulis jg. Tulisan pertama bulan ini yaitu tutorial jquery tentang selectors. Ga usah basa-basi lagi langsung aja disiapkan peralatan perangnya yaitu NotePad++, jQuery JavaScript Library v1.4, browser tentunya(disarankan menggunakan mozilla firefox + plugin firebug biar gampang debugging-nya) dan jangan lupa berdo’a biar diberi kemudahan oleh Allah dalam memahami tutorial ini.^_^
Anatomi JQuery Script
Pada dasarnya skrip JQuery terbagi atas tiga bagian utama yaitu Selector, action, dan parameter. Contoh penulisannya sebagai berikut :
jQuery("elemen").action("parameter");
//atau bisa juga ditulis sebagai berikut
$("elemen").action("parameter");
Simple kan? Continue reading “Tutorial jQuery: Dasar-dasar selectors”
Sorting kata menggunakan Quick Sort
Setelah lama vakum ngeblog karena diterpa badai skripsi, akhirnya bisa kembali berbagi sedikit code yang mungkin berguna 🙂 .
Langsung saja, bagi yang sering ngoding atau ngutek-ngutek algoritma sorting pasti sudah paham yang namanya quicksort yang sangat cepat dalam proses sorting. Namun sebagian besar dari kita hanya mengetahui penggunaannya untuk sorting angka, bagaimana jika untuk sorting kata? Berikut langkah-langkahnya:
- Jika terdapat kata-kata misalnya “akar” dan “akan” mak untuk melakukan sorting kita perlu membandingkan satu persatu hurufnya mulai dari paling kiri. Tetapi terdapat 3 huruf yang sama dan hanya huruf yang terkhir yang bisa untuk membandingkan. Hasilnya jika disorting secara ascending maka diperoleh “akan” kemudian “akar.
- Jika terdapat code quicksort seperti dibawah ini:
static int partition(ref intp[] arr, int left, int right)
{
int i = left, j = right;
int tmp;
int pivot = arr[(left + right) / 2];
while (i <= j) {
while (arr[i] < pivot)
i++;
while (arr[j] > pivot)
j--;
if (i <= j) {
tmp = arr[i];
arr[i] = arr[j];
arr[j] = tmp;
i++;
j--;
}
};
return i;
}
static void quickSort(ref int arr[], int left, int right) {
int index = partition(ref arr, left, right);
if (left < index - 1)
quickSort(ref arr, left, index - 1);
if (index < right)
quickSort(ref arr, index, right);
} Continue reading "Sorting kata menggunakan Quick Sort"
Instalasi JOGL di Windows
Instalasi JOGL pada Windows
Setting Java Environment
Sebelum memulainya jangan lupa ucapkan Bismillah biar lancar instalasinya ?. Setelah itu kita mempunyai 2 pilihan JOGL yang pertama JOGL lama dan JOGL JSR-231. Tapi tenang saja keduanya dibahas oleh penulis.
Pastikan terlebih dahulu JDK(java development kit) sudah terinstall terlebih dahulu dan classpath-nya sudah diatur. Jika belum tahu pengaturan classpath, baca Setting Classpath pada java.
1. Instalasi JOGL(versi jadul dari JOGL)
Langkah pertama yang dilakukan adalah kunjungi https://jogl.dev.java.net/ dan unduh file JOGL(bukan JSR-231).
Pastikan file yang di unduh berisi :
jogl.jar
dan library(windows): Linux :
Letakkan file jar pada direktori:
adalah C:\Program Files\Java\jdk1.6.0_17\jre\lib\ext
and the libraries in :
adalah C:\Program Files\Java\jdk1.6.0_17\jre\bin
2. Instalasi JOGL JSR 231
Langkah pertama yang dilakukan adalah kunjungi https://jogl.dev.java.net/ dan unduh file JOGL JSR-231.
Archives download berisi File jar :
serta library (Windows): or for Linux :
jogl_awt.dll libjogl_awt.so
jogl_cg.dll libjogl_cg.so
gluegen-rt.dll gluegen-rt.so
Letakkan file jar pada direktori:
adalah C:\Program Files\Java\jdk1.6.0_17\jre\lib\ext
dan letakkan pada direktori berikut :
adalah C:\Program Files\Java\jdk1.6.0_17\jre\bin
C:\Program Files\Java\jdk1.6.0_17 merupakan path dari instalasi java di komputer penulis.
dan langkah-langkahnya sama seperti diatas tetapi C:\Program Files\Java\jdk1.6.0_17 diganti C:\Program Files\Java\jre1.6.0_03
Hal itu dilakukan agar class yang telah di kompile bisa dijalankan oleh run time java.
Setelah proses diatas selesai sekarang siap ngoding openGL di Java.
Untuk melihat hasil dari setting diatas berhasil atau tidak kita perlu membuat program openGL sederhana seperti berikut:
//sayMost.java
import javax.media.opengl.*; //untuk JOGL versi lama pemanggilannya import net.java.games.jogl.*
import java.awt.*;
import java.awt.event.*;
public class sayMost{
public static void main(String[] args)
{
Frame frame = new Frame("Say MOST");
GLCanvas canvas = new GLCanvas();
frame.add(canvas);
frame.setSize(300, 300); //mengatur ukuran frame berukuran 300px x 300px
frame.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
frame.show();
}
}
Maka tampilan dari program diatas adalah sebagai berikut:
Kompilasi program diatas hanya menggunakan command prompt dengan cara kompilasi
javac C:\sayMost.java
dan untuk menjalankannya dengan perintah berikut:.
java C:\sayMost
Setting Classpath pada java
Pertama-tama install terlebih dahulu java development kit dan installernya dapat diunduh di http://java.sun.com.
Setelah instalasi jdk selesai, maka diperlukan untuk mendefinisikan system variabel. Pertanyaannya, untuk apa mendefinisikan system variabel? Dengan mendefinisikan system variable, maka perintah yang dalam direktori yang akan kita definisikan dapat diakses melalui command prompt.
Langkah pertama yaitu klik Start-> Contol Panel-> System / klik kanan My Computer maka akan muncul tampilan seperti dibawah ini:
pilih tab Advanced dan klik pada tombol Environment Variables.
Kemudian pilih Path pada System Variables dan klik tombol Edit, setelah itu isikan PATH atau alamat lengkap dari direktori bin dari JDK, tetapi tidak perlu mencantumkan RT RW. Contohnya alamat bin di komputer penulis adalah C:\Program Files\Java\jdk1.6.0_17\bin maka dalam variable value ditambahkan alamat tersebut dan contohnya seperti pada gambar dibawah ini:
Jika alamat lengkap telah dimasukkan maka klik ok dan klik ok sekali lagi, nah sekarang kita bisa mengakses perintah kompilasi javac dan perintah eksekusi classjava melalui cmd atau command prompt.Setelah proses ini selesai anda bisa menggunakan cmd untuk kompilasi dan menjalankan java class. Namun untuk kemudahan disarankan menggunakan SciTe sebagai editor.
Happy coding….
Algoritma dan Pemrograman
Algoritma adalah logika, metode dan tahapan (urutan) sistematis yang digunakan untukmemecahkan suatu permasalahan.
Algoritma adalah urutan logis pengambilan putusan untuk pemecahan masalah.
int luas; //hanya menggambarkan variabel itu dibuat untuk menampung nilai luas
int iLuas; //terdapat tambahan huruf I yang merepresentasikan tipe data integer
int[] iArrLuas; //Arr merupakan penanda bahwa variabel itu merupakan array
float[] fArrLuas; //Arr merupakan penanda bahwa variabel itu merupakan array dan f adalah penanda jika variabel bertipe float.
Cara penulisan diatas adalah contoh penulisan dengan style saya agar memudahkan debugging(mencari serangga/bug atau kesalahan yang bikin program saya error). Anda bisa menggantinya dengan style anda sendiri yang memudahkan anda. Misalkan iLuas diganti menjadi i_luas atau intLuas.
Terima kasih Pak Wayan atas bimbingannya di kelas.






