Rabu, 12 Mei 2010

BMP (Bitmap)

Tipe file BMP umum digunakan pada sistem operasi Windows dan OS/2. Kelebihan tipe file BMP adalah dapat dibuka oleh hampir semua program pengolah gambar. Baik file BMP yang terkompresi maupun tidak terkompresi, file BMP memiliki ukuran yang jauh lebih besar daripada tipe-tipe yang lain.

File BMP cocok digunakan untuk:

  • desktop background di windows.
  • sebagai gambar sementara yang mau diedit ulang tanpa menurunkan kualitasnya.

File BMP tidak cocok digunakan untuk:

  • web atau blog, perlu dikonversi menjadi JPG, GIF, atau PNG.
  • disimpan di harddisk/flashdisk tanpa di ZIP/RAR, kecuali space tidak masalah bagi Anda.

JPG/JPEG (Joint Photographic Experts Group)

Tipe file JPG sangat sering digunakan untuk web atau blog. File JPG menggunakan teknik kompresi yang menyebabkan kualitas gambar turun (lossy compression). Setiap kali menyimpan ke tipe JPG dari tipe lain, ukuran gambar biasanya mengecil, tetapi kualitasnya turun dan tidak dapat dikembalikan lagi. Ukuran file BMP dapat turun menjadi sepersepuluhnya setelah dikonversi menjadi JPG. Meskipun dengan penurunan kualitas gambar, pada gambar-gambar tertentu (misalnya pemandangan), penurunan kualitas gambar hampir tidak terlihat mata.

File JPG cocok digunakan untuk:

  • gambar yang memiliki banyak warna, misalnya foto wajah dan pemandangan.
  • gambar yang memiliki gradien, misalnya perubahan warna yang perlahan-lahan dari merah ke biru.

File JPG tidak cocok digunakan untuk:

  • gambar yang hanya memiliki warna sedikit seperti kartun atau komik.
  • gambar yang memerlukan ketegasan garis seperti logo.

GIF (Graphics Interchange Format)

Tipe file GIF memungkinkan penambahan warna transparan dan dapat digunakan untuk membuat animasi sederhana, tetapi saat ini standar GIF hanya maksimal 256 warna saja. File ini menggunakan kompresi yang tidak menghilangkan data (lossles compression) tetapi penurunan jumlah warna menjadi 256 sering membuat gambar yang kaya warna seperti pemandangan menjadi tidak realistis. Pada program MS Paint, tidak ada fasilitas penyesuaian warna yang digunakan (color table) sehingga menyimpan file GIF di MS Paint seringkali menghasilkan gambar yang terlihat rusak atau berubah warna. Pada program pengolah gambar yang lebih baik, seperti Adobe Photoshop, color table bisa diatur otomatis atau manual sehingga gambar tidak berubah warna atau rusak.

File GIF cocok digunakan untuk:

  • gambar dengan jumlah warna sedikit (dibawah 256).
  • gambar yang memerlukan perbedaan warna yang tegas seperti logo tanpa gradien.
  • gambar animasi sederhana seperti banner-banner iklan, header, dan sebagainya.
  • print shoot (hasil dari print screen) dari program-program simple dengan jumlah warna sedikit.

File GIF tidak cocok digunakan untuk:

  • gambar yang memiliki banyak warna seperti pemandangan.
  • gambar yang didalamnya terdapat warna gradien atau semburat.
PNG (Portable Network Graphics)

Tipe file PNG merupakan solusi kompresi yang powerfull dengan warna yang lebih banyak (24 bit RGB + alpha). Berbeda dengan JPG yang menggunakan teknik kompresi yang menghilangkan data, file PNG menggunakan kompresi yang tidak menghilangkan data (lossles compression). Kelebihan file PNG adalah adanya warna transparan dan alpha. Warna alpha memungkinkan sebuah gambar transparan, tetapi gambar tersebut masih dapat dilihat mata seperti samar-samar atau bening. File PNG dapat diatur jumlah warnanya 64 bit (true color + alpha) sampai indexed color 1 bit. Dengan jumlah warna yang sama, kompresi file PNG lebih baik daripada GIF, tetapi memiliki ukuran file yang lebih besar daripada JPG. Kekurangan tipe PNG adalah belum populer sehingga sebagian browser tidak mendukungnya.

File PNG cocok digunakan untuk:

  • gambar yang memiliki warna banyak.
  • gambar yang mau diedit ulang tanpa menurunkan kualitas.

File PNG tidak cocok digunakan untuk:

  • gambar yang jika dikompress dengan JPG hampir-hampir tidak terlihat penurunan kualitasnya.

Raster vs Vektor

Semua tipe file gambar yang disebutkan di atas (BMP, JPG, GIF, dan PNG) termasuk jenis gambar raster (atau disebut juga Bitmap). Gambar raster terdiri dari titik-titik pixel yang jumlahnya tetap. Jika diperbesar, baik di-zoom atau diubah ukuran gambarnya, gambar akan terlihat pecah atau tidak sebagus aslinya. Jenis gambar yang lain adalah gambar vektor. Gambar vektor terdiri dari garis, bentuk, bidang, dan warna yang dituliskan dalam instruksi-instruksi matematis. Jika diperbesar, gambar vektor kualitasnya tetap. Aplikasi pengolah gambar vektor misalnya CorelDraw (CDR) dan Adobe Ilustrator (AI). Gambar vektor saat ini tidak dapat digunakan di web atau browser.

Demikian penjelasan mengenai tipe-tipe gambar, dengan memilih tipe gambar yang sesuai, ukuran file gambar jadi lebih kecil, dan pengunjung web/blog kita tidak perlu menunggu lama pada saat loading dan menghemat bandwidth pengunjung, sehingga pengunjung akan lebih kerasan singgah di web atau blog kita. Semoga bermanfaat.

Kamis, 15 April 2010

Salah satu unsur penting kecerdasan buatan adalah menyangkut algoritma pencariannya. Beberapa algoritma pencarian yang dikenal, antara lain:

1. Naive.
Contoh algoritma pencarian ini dapat dilihat pada Breadth First Search (BFS), yang dapat Anda bayangkan sebagai sebuah pohon node seperti pada Gambar 1.

Node teratas (node nomor 1) akan mulai mencari pada node terdekat (node nomor 2, 3, dan 4), proses pencarian berulang dengan cara yang sama pada masing-masing node tersebut, dan dilakukan hingga ditemukannya tujuan pencarian.

Algoritma pencarian naive yang lain adalah Depth First Search dan Best First Search (yang merupakan kombinasi dari Breadth First Search dan Depth First Search).

2. Heuristic.
Proses pencarian heuristic bekerja untuk menemukan jawaban yang paling cocok, ditujukan untuk mendapatkan performa pencarian yang baik dan mudah, dengan konsekuensi tingkat akurasi yang tidak terjamin.

Algoritma heuristic mencoba untuk meniru otak manusia saat menebak, dengan alasan yang masuk akal.

Heuristic umumnya digunakan saat menghadapi masalah yang kompleks atau memiliki informasi yang kurang memadai.

Misalnya pada saat dihadapkan pada pilihan untuk menentukan minuman yang paling enak di antara beberapa jenis minuman, sementara informasi yang adalah harga minuman,maka dapat diciptakan sebuah rule agar secara heuristic akan dipilih minuman dengan harga termahal sebagai minuman yang paling enak.

Tentu saja hal tersebut tidak menjamin bahwa pilihan itu benar, tetapi pilihan tersebut adalah pilihan yang paling masuk akal dan sederhana oleh otak manusia dengan keterbatasan informasi yang tersedia pada kasus tersebut.

3. Local.
Pencarian lokal berusaha untuk melakukan optimasi, misalnya dengan teknik Hill Climbing.

Teknik Hill Climbing dapat digunakan untuk memecahkan persoalan yang memiliki banyak alternatif solusi untuk kemudian memilih solusi yang terbaik. Cara kerjanya dimulai dengan memilih solusi acak, kemudian dilakukan perubahan sedikit demi sedikit, setiap perubahan menghasilkan solusi yang lebih baik.

Saat perubahan yang dilakukan tidak lagi mendapatkan solusi yang lebih baik, algoritma Hill Climbing akan berhenti mencari dan menentukan solusi terakhir sebagai solusi yang optimal.

Contoh penggunaan Hill Climbing pada kecerdasan buatan adalah pencarian rute terbaik, dari berbagai kemungkinan rute yang ada.

Contoh lain dari pencarian local adalah teknik pencarian Beam (Beam Search) dan Simulated Annealing (SA).

4. Genetic.
Pencarian dengan algoritma genetic meniru proses seleksi alam atau proses evolusi seperti inheritance, mutasi, seleksi, dan kombinasi ulang (crossover).

Dengan algoritma genetic, diharapkan mesin dapat menghasilkan kreativitas, hal ini melahirkan cabang kecerdasanbuatan yang dinamakan kreativitas buatan (Artifi cial Creativity). Aplikasinya bisa jadi mengarahkan mesin untuk dapat menciptakan musik, desain, dan lain sebagainya.

Walaupun pada dasarnya bahasa pemrograman yang umum digunakan seperti Visual Basic, C++, Delphi, FoxPro, dan sebagainya memungkinkan untuk menciptakan sebuah aplikasi kecerdasan buatan, tetapi para pengembang kecerdasan buatan telah membuat bahasa pemrograman yang khusus untuk keperluan tersebut.

Beberapa bahasa pemrograman untuk kecerdasan buatan yang dikenal adalah IPL, Lisp, Prolog, STRIPS, dan Planner.