jump to navigation

Padanan Komponen StringGrid di C# June 8, 2009

Posted by dennyhermawanto in Uncategorized.
add a comment

Di C# memang tidak ada komponen StringGrid seperti di Delphi atau C++ Builder. Tetapi sebagai gantinya adalah komponen Datagridview. Komponen ini multifungsi, bisa digunakan untuk menampilkan data dari database, object ataupun diisi data string secara langsung.
Cara menggunakan mengisikan data string ke komponen DataGridView adalah
sebagai berikut:

dataGridView1.Rows[x].Cells[y].Value = data[i];

x = index baris
y = index kolom
i  = index dari data

Konversi file backup database MS SQL 7.0 ke file backup MySQL June 2, 2009

Posted by dennyhermawanto in Uncategorized.
add a comment

Ada yang mau konversi dari file backup database Microsoft SQL Server 7.0 ke file backup MySQL.  Tapi karena MS SQL 7.0 itu database Microsoft yang lumayan jadul jadi kalo di restore di MSSQL yang versi baru (sekarang versi 10) gak bisa :(

Berikut metodenya:
-Install MS SQL 7.0 di komputer dan setting
-Install MySQL dan MyODBC
-Restore database MS SQL dari file (.bak) pakai tool restore di Enterprise    Manager nya SQL Server
-Unduh dan jalankan program MSSQL2MySQL dari sini http://www.kofler.cc/mysql/mssql2mysql-gui2.zip
(Untuk menjalankan program tadi di komputer harus ada VB6 atau runtime nya VB6)
 a. Masukkan setting untuk server MS SQL dan server MySQL dan Save Setting
 b. Klik Connect untuk menyambungkan ke database
 c. pilih database yang mau di konversikan dan klik Start untuk memulai proses konversi
-Cek di database MySQL apakah database hasil konversi sudah ada
-Selanjutnya tinggal mengkonversikan database dalam MySQL ke file menggunakan sqldump atau tool MySQL Administrator
yang bisa diunduh dari sini http://dev.mysql.com/doc/administrator/en/index.html

Metrology Challenge 2009 March 25, 2009

Posted by dennyhermawanto in Uncategorized.
add a comment

Lomba Metrology se-SMA Jabodetabek yang diadakan oleh KIM-LIPI.
Website: http://mc2009.lipi.go.id

Jaringan Syaraf Tiruan Perceptrons February 18, 2009

Posted by dennyhermawanto in Uncategorized.
add a comment

Dari sinilah semuanya dimulai, Backpropagation, Kohonen, Recurrent NN, Reinforcement NN, semuanya adalah pengembangan dari algoritma ini. Inilah implementasi papernya Minsky and Papert yang diterbitin di tahun 1960, yang membikin heboh dunia pada saat itu. Inilah dia: ”Perceptrons”.

/*   Simple PERCEPTRON for emulating AND function
     Programmed by: Denny Hermawanto
     Mail: [[Email Removed]]
     URL:  http://dennyhermawanto.webhop.org
*/

class Perceptron{
    Perceptron(){
        w = new float[2];
        x = new float[4][2];
        s = new float[4][2];
        t = new float[4];

    }
    private void Initialization(){
        System.out.println(“Initializing…”);
        //input value for AND problem
        s[0][0] = 0;
        s[0][1] = 0;
        t[0] = -1;
        s[1][0] = 1;
        s[1][1] = 0;
        t[1] = -1;
        s[2][0] = 0;
        s[2][1] = 1;
        t[2] = -1;
        s[3][0] = 1;
        s[3][1] = 1;
        t[3] = 1;
        //initial weights value
        for(int i=0;i<w.length;i++){
            w[i] = 0;
        }
        //initial bias value
        b = 0;
    }
    private void Training(){
        float sum=0;
        //System.out.println(“Input Patterns:”);
            for(int i=0;i<x.length;i++){
                for(int j=0;j<x[i].length;j++){
                    x[i][j] = s[i][j];
                    //System.out.print(“x=”+x[i][j]);
                }
                //System.out.println(“”);
            }
        System.out.println(“Training:”);

        for(iteration=0;iteration<max_iteration;iteration++){
            //System.out.println(“Iteration number:”+iteration);
            System.out.print(“.”);
            for(int i=0;i<x.length;i++){
                //System.out.println(“Pattern Number:”+i);
                sum = 0;
                for(int j=0;j<x[i].length;j++){
                    sum += x[i][j]*w[j];
                }
                y_in = b + sum;
                if(y_in>threshold){
                    y = 1;
                }
                else if(y_in>=-threshold && y_in<=threshold){
                    y = 0;
                }
                else if(y_in<-threshold){
                    y = -1;
                }
                //update the weights
                if(y!=t[i]){
                    for(int j=0;j<w.length;j++){
                        w[j] = w[j] + (learn_rate*t[i]*x[i][j]);
                    }
                    b = b + learn_rate*t[i];
                    //System.out.println(“weight changes”);
                }
                else{
                    //System.out.println(“no weight changes”);
                }

            }
        }
        System.out.println(“Finished”);
    }

    private void Mapping(){
        float sum = 0;
        float[] map_output = new float[4];

        for(int i=0;i<x.length;i++){
            for(int j=0;j<x[i].length;j++){
                x[i][j] = s[i][j];
            }
        }

        System.out.println(“Mapping”);
        for(int i=0;i<x.length;i++){
            sum = 0;
            for(int j=0;j<x[i].length;j++){
                sum += x[i][j]*w[j];
            }
            y_in = b + sum;
            if(y_in>threshold){
                y = 1;
            }
            else if(y_in>=-threshold && y_in<=threshold){
                y = 0;
            }
            else if(y_in<-threshold){
                y = -1;
            }
            if(y==-1){
                map_output[i] = 0;
            }
            else{
                map_output[i] = 1;
            }
            //System.out.println(y);
        }
        System.out.println(“0 AND 0 = “ + map_output[0]);
        System.out.println(“0 AND 1 = “ + map_output[1]);
        System.out.println(“1 AND 0 = “ + map_output[2]);
        System.out.println(“1 AND 1 = “ + map_output[3]);
    }

    public void RunPerceptron(){
        learn_rate = (float)1;
        threshold = (float)0.2;
        max_iteration = 10;
        Initialization();
        Training();
        Mapping();
    }

    public static void main(String[] args){
        Perceptron perceptron = new Perceptron();
        perceptron.RunPerceptron();
    }

    //variables
    private float[] w;
    private float b;
    private float[][] x;
    private float[][] s;
    private float y;
    private float learn_rate;
    private float threshold;
    private float[] t;
    private float y_in;
    private int iteration;
    private int max_iteration;
}

Processor usage 100% October 16, 2008

Posted by dennyhermawanto in Uncategorized.
add a comment

Beberapa waktu lalu laptop saya terasa performanya menurun sekali (OS WindowsXP Home Original) padahal memory yang terpasang sudah mentok 2GB. Ternyata waktu saya lihat di task manager (Ctrl-Atl-Del) processor usage mencapai 100%. Saya coba menon-aktifkan banyak service-service yang jalan di background, tapi tetep aja processor usage 100%. Wah kalau dibiarkan processor laptop saya bisa gak tahan lama nih karena panas sekali. Saya coba scan pake PCMAV tetep aja gak terdeteksi adanya virus. Saya ubek-ubek registry dan msconfig windows sepertinya gak ada yang aneh. Tapi anehnya begitu laptop konek ke Internet, processor usage jadi normal kembali. Wah perkiraan saya ini pasti ada service atau program yang berusaha konek ke internet. Saya curiga program buat parallel computing yang baru saya install tapi setelah saya uninstall tetep aja. Hmmm…pusing juga.

Akhirnya saya coba scan pake tools nya windows “Windows Malicious Software Removal Tool“. Dan ternyata terdeteksi ada malware yang dikenali sebagai Win32/Frethog yang aktifitasnya adalah mengirim data-data account password dari komputer kita ke internet. Malware tersebut jadi infinity loop dan menggunakan 100% resource processor untuk mencari koneksi dan mengirim data.

Summary: Win32/Frethog is a large family of password-stealing trojans that target confidential data, such as account information, from Massive Multiplayer Online Games (such as World of Warcraft, for example).

Symptoms: There are no obvious symptoms that indicate the presence of this trojan on an affected system.

Setelah di scan pake tool ini akhirnya processor usage laptop saya jadi normal kembali.

Mencegah penularan virus lewat Flashdisk October 16, 2008

Posted by dennyhermawanto in Uncategorized.
add a comment

Penularan virus lewat flashdisk USB memang susah dicegah karena si virus langsung beraksi tanpa kita ketahui. Hal ini bisa terjadi karena mekanisme autorun yang langsung mengakses ke flashdisk begitu flashdisk masuk ke PC. Jika anda pengguna Windows berikut ada beberapa hal yang dapat kita lakukan untuk mencegah penularan virus lewat flashdisk.

1. Mematikan fasilitas Autorun yang dimiliki windows. Tutorial mengenai cara menon-aktifkan fasilitas autorun di windows dapat dilihat di BLOG ini http://maseko.com/2008/04/17/blocking-autoruninf/

2. Menggunakan program USB Firewall dari Net-studio. Program ini efektif mem-blok aktifitas autorun jika aktifitasnya adalah berusaha untuk meng-copykan program ke PC (yang biasanya virus seperti boot.exe atau q.com) pada saat flashdisk masuk ke PC. Jika diinstal program ini akan berjalan sebagai service di tray yang akan selalu memonitor jika ada flashdisk yang masuk. Program ini dapat didownload di sini. http://www.net-studio.org/software/USB_FW.exe

Semoga bermanfaat bagi kita semua.

Menghilangkan virus MS32DLL.dll.vbs (VBS Redlof / Small) July 12, 2007

Posted by dennyhermawanto in Uncategorized.
add a comment

Virus ini memang susah dideteksi dan membuat akses ke drive menjadi lambat, antivirus yang bisa mendeteksi adanya virus ini adalah AVG. Tetapi AVG tidak bisa untuk menghilangkan virus ini. Untuk dapat menghilangkan virus ini harus dilakukan secara manual dari command prompt Windows.
Caranya masuk ke prompt Windows dari Start->Accessories->CommandPrompt
Setelah masuk di prompt misalnya C: maka ikuti prosedur berikut:

1. File virus ini tersimpan di folder utama drive dan bukan di dalam directory (misalnya di C: atau D:), oleh karena itu command prompt harus kita set supaya ke main directory:
Caranya tinggal ketik aja di command prompt C:<ENTER>

2. Untuk melihat adanya file tersebut dengan mengetikkan perinyah berikut di command prompt:
C:\>dir /ah <ENTER>
kalau di daftar terdapat file dengan nama: MS32DLL.dll.vbs dan autorun.inf , berarti komputer/flashdisk kita telah terinfeksi virus VBS Redlof

3. Untuk menghilangkan virus tersebut maka status file tersebut harus dirubah dahulu menjadi un-hidden kemudian di-delete, caranya adalah sebagai berikut:
Karena file MS32DLL.dll.vbs dan autorun.inf di-hidden maka kita harus mengembalikan status file tersebut dalam kondisi tidak hidden, misalnya direktori utamanya adalah C:, maka caranya ketik:
C:\>attrib -r -s -h autorun.inf<ENTER>
C:\>attrib -r -s -h MS32DLL.dll.vbs<ENTER>

4. Untuk melihat apakah file2 tersebut sudah tidak ter-hidden lagi di C: ketik:
C:\>dir *.inf<ENTER>
C:\>dir *.vbs<ENTER>
maka kedua file tadi akan terlihat.

5. Proses selanjutnya adalah dengan menghapus file tersebut secara manual, caranya:
C:\>del autorun.inf<ENTER>
C:\>del MS32DLL.dll.vbs<ENTER>

6. Restart komputer….

7. Proses pembersihan virus selesai, sekarang virus tersebut sudah hilang dari komputer anda. SELAMAT…
Untuk lebih yakin sekarang scan lagi drive yang terkena virus dengan antivirus AVG.

Selamat mencoba, semoga berhasil

Download file di indowebster.com pake Flashget June 15, 2007

Posted by dennyhermawanto in Uncategorized.
add a comment

Indowebster (http://www.indowebster.com) adalah situs untuk storage multimedia seperti Youtube di Indonesia. Secara default file yang ada di situs tersebut dapat didownload dengan memasukkan angka konfirmasi kemudian menekan tombol download yang ada di situs tersebut.

Kita dapat melewati tahapan memasukkan angka konfirmasi dengan cara mengambil/mengcopy bagian ftp://ftp.indowebster.com/xxx.flv  kemudian di paste di Flashget. Maka file tersebut dapat didownload dengan Flashget yang kecepatan downloadnya lebih besar daripada download langsung, karena Flashget dapat download satu file secara simultan dari beberapa mirror. Apalagi jika Flashget nya sudah dimodifikasi seperti pada artikel sebelumnya.

<embed src=’http://www.indowebster.com/players/amJeroenPlayer/mediaplayer.swf’ FlashVars=’file=ftp://ftp.indowebster.com/7e6632c30d3743cbe6755038251ebcc8.flv&image=http://www.indowebster.com/images/indowebsterv1.jpg&logo=http://www.indowebster.com/images/idws.png&autostart=true’ width=’480′ height=’385′  type=’application/x-shockwave-flash’ pluginspage=’http://www.macromedia.com/go/getflashplayer’ menu=’false’ allowfullscreen=’true’>

Trik FlashGet biar download lebih cepat May 25, 2007

Posted by dennyhermawanto in Uncategorized.
add a comment

Untuk download file biasa dilakukan dengan meng-klik kiri mouse kemudian akan muncul Message Dialog untuk menyimpan file. Cara lain adalah dengan meng-klik kanan file yang akan di download kemudian memilih Save As…

Tetapi dengan cara ini kecepatan download lambat dan kalau pada saat download koneksi internet terputus maka download gagal, sehingga kita harus mulai dari awal. Cara untuk mengatsi masalah ini adalah dengan menggunakan software aplikasi downloader seperti misalnya FlashGet. Salah satu kemampuan flashget adalah kita bisa download satu file secara simultan (seolah-olah kita download melalui beberapa jalur secara parallel)

Maximum download simultan setting untuk Flashget adalah  5 jalur. Untuk meningkatkan kemampuan simultan download flashget dapat dilakukan dengan cara menambah sebuah Key dalam Registry Windows. Caranya:

1. Klik “Start Menu”

2. Klik “Run”

3. Di kotak isian ketik “Regedit”

4. Klik di “HKEY_CURRENT_USER”

5. Cari dan Klik Folder “Software”

6. Didalam folder “Software” cari dan klik folder “JetCar”

7. Didalam folder “JetCar” cari dan klik folder “JetCar”

8. Didalam folder “JetCar” cari dan klik folder “General”

9. Klik kanan pilih “New” dan pilih “String Value”

10. Isi “New Value” dengan “Max Parallel Num”

11. Klik kanan di  “Max Parallel Num” kemudian pilih “Modify”

12. Isi valuenya dengan angka desimal yang besar misal: 200

Beberapa Metode Seleksi Algoritma Genetika May 11, 2007

Posted by dennyhermawanto in Uncategorized.
add a comment

Beberapa metode seleksi:

  • Rank-based fitness assignment: populasi diurutkan menurut nilai objektifnya. Nilai fitness dari tiap-tiap individu hanya tergantung pada posisi individu tersebut dalam urutan, dan tidak dipengaruhi oleh nilai objektifnya.

  • Roulette wheel selection: Individu-individu dipetakan dalam suatu segmen garis secara berurutan sedemikian hingga tiap-tiap segmen individu memiliki ukuran yang sama dengan ukuran fitness nya. Sebuah bilangan random dibangkitkan dan individu yang memiliki segmen dalam kawasan bilangan random tersebut akan terseleksi. Proses ini diulang hingga diperoleh sejumlah individu yang diharapkan.

  • Stochastic universal sampling: Individu-individu dipetakan dalam suatu segmen garis secara berurutan sedemikian hingga tiap-tiap segmen individu memiliki ukuran yang sama dengan ukuran fitnessnya seperti halnya pada seleksi roda roulette. Kemudian diberikan sejumlah pointer sebanyak individu yang ingin diseleksi di garis tersebut. Andaikan jumlah individu yang akan diseleksi sama dengan N maka jarak antar pointer adalah sama dengan 1/N dan posisi pointer pertama diberikan secara acak pada range 1,1/N

  • Local Selection: Setiap individu yang berada di dalam konstrain tertentu disebut dengan nama lingkungan lokal. Interaksi antar individu hanya dilakukan id dalam wilayah tersebut. Lingkungan tersebut ditetapkan sebagai struktur dimana populasi tersebut terdistribusi. Lingkungan tersebut juga dapat dipandang sebagai kelompok-kelompok pasangan yang potensial.

  • Truncation Selection: Seleksi pemotongan, digunakan oleh populasi yang jumlahnya sangat besar. Individu-individu diurutkan berdasarkan nilai fitnessnya. Hanya individu-individu yang terbaik saja yang akan diseleksi sebagai induk. Parameter yang digunakan dalam metode ini adalah suatu nilai ambang trunc yang mengindikasikan ukuran populasi yang akan diseleksi sebagai induk yang berkisar antara 50%-10%. Individu-individu yang ada dibawah nilai ambang ini tidak akan menghasilkan keturunan.

  • Tournament Selection

    Pada metode seleksi dengan turnamen ini, akan ditetapkan suatu nilai tour untuk individu-individu yang dipilih secara random dari suatu populasi. Individu-individu yang terbaik dalam kelompok ini akan diseleksi sebagai induk. Parameter yang digunakan pada metode ini adalah ukuran tour yang bernilai antara 2 sampai N (jumlah individu dalam suatu populasi).

Referensi:

- Sri Kusumadewi, Hari Purnomo, “Penyelesaian Masalah Optimasi dengan Teknik-Teknik Heuristik”, Graha Ilmu, 2005