Senin, 12 Oktober 2009

Meningkatkan Performa Database MySQL

Langkah berikut bisa digunakan untuk meningkatkan kecepatan akses terhadap database MySQL, terutama jika akses dilakukan dari komputer dengan sistem non Linux.

1. Memperbaiki DNS setting dan memasukkan ip address / nama host client yang mengakses mysql kedalam file /etc/hosts di server mysql.
Proses edit file /etc/hosts ini bisa dilakukan menggunakan webmin ataupun diedit langsung. Berdasarkan ujicoba langsung, tips ini meningkatkan kecepatan koneksi hingga 10X

2. Memperbaiki / meningkatkan setting konfigurasi MySQL pada file my.cnf.

Secara default, setting mysql menggunakan setting normal dengan memori kecil.
# This is for a system with little memory (32M – 64M) where MySQL plays
# an important part, or systems up to 128M where MySQL is used together with
# other programs (such as a web server)
Dengan memori yang ada pada server (misalnya sebesar 1 GB), kemampuan MySQL dapat lebih ditingkatkan dengan menaikkan key_buffer_Size (untuk model tabel MYISAM) dan innodb_buffer_pool_size (untuk tipe table Inno-db) dan table_cache. Jangan lupa, angka yang diisikan adalah angka dalam bentuk umum memory (kelipatan dari 2n), misalnya 128 MB, 256 MB, 512 MB dll.
Dalam beberapa proses instalasi, biasanya ada juga file konfigurasi untuk mysql yang dijalankan pada komputer dengan memori besar. Nama file konfigurasinya : my-large.cnf. Pelajari file konfigurasi tersebut agar bisa diujicoba pada file konfigurasi my.cnf.

Sebelum melakukan perubahan setting, backup terlebih dahulu konfigurasi yang lama, untuk berjaga-jaga jika setting yang baru justru memunculkan masalah. Berdasarkan pengalaman, setting yang tidak tepat-terlalu tinggi misalnya-membuat MySQL tidak bisa dijalankan.

Jangan lupa, perubahan konfigurasi MySQL sebaiknya dilakukan dalam posisi MySQL off sehingga setelah selesai dire-konfigurasi bisa langsung ditest.

3. Meningkatkan kapasitas memori server

Memori yang lebih tinggi akan membuat server leluasa dalam melayani trafik yang tinggi. Jika memori mencukupi, server tidak akan menggunakan memori cadangan dari swap file yang biasanya berimplikasi pada kecepatan akses data.

4. Pada aplikasi, hindari query SELECT yang tidak spesifik seperti SELECT * …
Pastikan memilih kolom yang akan diambil dan sedapat mungkin hindari model Select *

5. Gunakan indeks pada key table yang sering digunakan.

Misalnya pada tabel karyawan yang menggunakan NIK (Nomor Induk Karyawan) sebagai primary key, indeks table menggunakan key ini. Jika ada proses query yang sering menggunakan nama field lainnya, buat indeks juga untuk field tersebut.
Referensi tuning dari Linux Magazine bisa didownload disini.
Referensi :

1. MySQL Amazing Tips to Improve, Tuning and Increase MySQL Performance
2. http://dev.mysql.com/books/hpmysql-excerpts/ch06.html
3. http://dev.mysql.com/doc/refman/5.0/en/server-parameters.html
4. http://www.linux-mag.com/index.php?option=com_content&task=view&id=911&Itemid=2035

Selasa, 25 Agustus 2009

Sekilas OOP

Program adalah algoritma ditambah dengan struktur data. Struktur data adalah : tempat penyimpanan data yang tertata atau terstruktur yang dibutuhkan program pada komputer agar data yang disimpan mudah untuk diakses.

Belajar pemograman berarti belajar untuk membuat strategi penyelesaian masalah, bukan belajar bahasa pemograman. Karena bahasa pemograman adalah adalah alat untuk mempelajari pembuatan program seperti bahasa pemograman Java.

Pemograman adalah proses menentukan instruksi-instruksi untuk menyelesaikan sebuah proses pada komputer. Dengan kata lain untuk membuat program itu harus ditentukan terlebih dahulu urutan instruksi yang nantinya akan dijalankan oleh komputer, karena suatu program komputer tersusun atas urutan instruksi

Instruksi -instruksi tersebut kemudian disimpan di dalam sebuah file dengan ekstensi sesuai dengan bahasa pemograman yang digunakan, seperti .java untuk bahasa pemograman java. File program dapat dibuat dengan menggunakan program editor untuk membuat program.

Setelah kode program dibuat, dibutuhkan sebuah perangkat lunak yang disebut compiler, untuk membaca kode program dan mengubah kode-kode program tersebut menjadi bahasa mesin yang dapat dimengerti dan dijalankan komputer atau ada juga yang disebut interpreter, dalam hal ini file yang dijalankan komputer biasanya bukan merupakan fiile eksekusi (.exe). Compiller atau interpreter membaca sebuah kode program secara terurut, dan akan melakukan pembacaan kode jika syarat sebuah blok kode tidak dipenuhi.

Pada aplikasi, sebuah program dapat terus dikembangkan untuk menambah fungsi - fungsi yang ada.

Object Oriented Programming
(OOP) atau Pemrograman berorientasi objek adalah pemrograman yang mempertinggi kualitas dan produktifitas pengembangan software. Program pengembangannya dilakukan dengan pendekatan building block. Setiap blok, disebut dengan objek, bersifat independen dan mampu berjalan sendiri atau saling kunci dengan objek lain dengan mudah dan otomatis. Objek-objek berinteraksi dengan saling memberikan informasi satu terhadap yang lainnya. Masing-masing objek harus berisikan informasi mengenai dirinya sendiri (encapsulation) dan objek yang dapat dikaitkan (inheritance).

Pada lingkungan pemrograman berorientasi objek, object merupakan suatu penyelesaian pendefinisian secara unik dan struktur. Masing-masing object memiliki nilai pada variabelnya yang dikenal dari kelasnya
(class) dan dapat memberikan respon dari metode permintaan terhadap kelas tersebut.

Class
Atau kelas adalah kumpulan atas definisi data dan fungsi-fungsi dalam suatu unit untuk suatu tujuan tertentu

Atribut
Atribut dari sebuah kelas adalah variabel global yang dimilliki sebuah kelas. Atribut pada sebuah kelas memiliki izin akses jika kelas digunakan oleh kelas lain, izin akses itu seperti privat, publik dan protected.


Pemrograman berorientasi objek memiliki tiga konsep dasar yang penting, yaitu enkapsulasi, inheritas, dan polimorfisme.

Encapsulation
Atau
Enkapsulasi dapat dianggap sebagai sebuah bungkusan. Enkapsulasi inilah yang diimplementasikan dalam sebuah kelas bahwa didalam sebuah kelas bahwa di dalam sebuah kelas terdiri dari atribut dan metode yang dibungkus dalam satu kelas. Enkapsulasi pada sebuah kelas bertujuan untuk melindungi atribut dan metode-metode yang ada di dalam kelas agar tidak sembarangan diakses oleh kelas lain.

Inheritance
Atau inheritas adalah untuk mengatur
polimorfisme dan enkapsulasi dengan mengijinkan objek didefinisikan dan diciptakan dengan jenis khusus dari objek yang sudah ada - objek-objek ini dapat membagi (dan memperluas) perilaku mereka tanpa harus mengimplementasi ulang perilaku tersebut (Catatan : bahasa berbasis-objek tidak selalu memiliki inheritas.)

Polymorphisms

Atau Polimorfisme adalah kemampuan 2 buah object yang berbeda untuk merespon pesan permintaan yang sama dalam suatu cara yang unik

Dengan menggunakan OOP maka dalam melakukan pemecahan suatu masalah kita tidak melihat bagaimana cara menyelesaikan suatu masalah tersebut (terstruktur) tetapi objek-objek apa yang dapat melakukan pemecahan masalah tersebut