Senin, 26 November 2012

Perbedaan Antara Pemrograman Genetika dengan Algoritma Genetika


Algoritma genetika adalah teknik pencarian di dalam ilmu komputer untuk menemukan penyelesaian perkiraan untuk optimisasi dan masalah pencarian. Algoritma genetika adalah kelas khusus dari algoritma evolusioner dengan menggunakan teknik yang terinspirasi oleh biologi evolusioner seperti warisan, mutasi, seleksi alam dan rekombinasi (atau crossover). Algoritma genetika dapat menggunakan representasi graph, biner, integer, permutasi, dan real dalam pengkodeannya. Sedangkan pemrogaman genetika merupakan salah satu dari komputasi evolusioner yang sering dipakai untuk machine learning (seperti prediksi, klasifikasi, dan sebagainya) yang menggunakan representasi tree atau graph dalam proses pengkodean. Pemrograman genetika bisa menggunakan proses rekombinasi dan mutasi dengan probabilitas tertentu, tapi tidak dapat keduanya. Rekombinasi dilakukan dengan cara saling menukar ranting (sub tree), sedangkan mutasi dilakukan dengan mungubah pohon secara acak. Pemrograman genetika digunakan untuk autamtic programming.
Algoritma genetika dan pemrograman genetika diterapkan sebagai simulasi komputer dimana sebuah populasi representasi abstrak (disebut kromosom) dari solusi-solusi calon (disebut individual) pada sebuah masalah optimisasi akan berkembang menjadi solusi-solusi yang lebih baik. Panjang kromosom dalam satu populasi pada algoritma genetika memiliki ukuran yang sama panjang, sedangkan pada pemrograman genetika, kromosom-kromosom bisa memiliki panjang yang berbeda-beda dalam satu populasi. Ukuran populasi pada algoritma genetika bisa bervariasi, sedangkan pada pemrograman genetika ukuran populasi relative besar (ribuan individu).
Kromosom pada pemrograman genetika bisa memiliki ukuran yang berbeda-beda, sehingga pada generasi pertama  bisa dilakukan proses inisialisasi dengan membatasi kedalaman pohon. Sedangkan pada algoritma genetika, proses pembangkitan populasi awal biasanya dilakukan dengan menggunakan pembangkitan acak.
Evolusi pada algoritma genetika dimulai dari sebuah populasi individual acak yang lengkap dan terjadi dalam generasi-generasi. Dalam tiap generasi, kemampuan keseluruhan populasi dievaluasi, kemudian multiple individuals dipilih dari populasi sekarang (current) tersebut secara stochastic (berdasarkan kemampuan mereka), lalu dimodifikasi (melalui mutasi atau rekombinasi) menjadi bentuk populasi baru yang menjadi populasi sekarang (current) pada iterasi berikutnya dari algoritma. Sedangkan pada pemrograman genetika populasi awal dikenakan seleksi orang tua yang biasanya dilakukan secara proporsional terhadap nilai fitness.
Agar lebih efisien, seleksi ortu dilakukan dengan cara:
  •   Buat perankingan berdasarkan fitness dan bagi individu ke dalam dua grup
  • Grup 1 berisi x% individu terbaik dan Grup 2 berisi (100-x)% individu yang lain.
  •   Lakukan 80% seleksi ortu pada Grup 1 dan 20% pada Grup 2.
  •   Untuk ukuran populasi = 1000, 2000, 4000, dan 8000 gunakan secara berturut-turut x = 32%, 16%, 8% dan 4%.
Setelah seleksi orang tua, populasi akan dikenakan proses rekombinasi atau mutasi (pilih salah satu). Kemudian seleksi survivor untuk generasi berikutnya. Umumnya, pemrograman genetika menggunakan model populasi generational scheme sehingga tidak ada seleksi survivor.
Algoritma genetika tidak terfokus pada salah satu bahasa pemrograman karena bersifat general programming, sedangkan pemrograman genetika lebih terfokus pada bahasa LISP. Dalam pemrosesannya, pemrograman genetika lebih lambat dibandingkan dengan algoritma genetika.

Rabu, 07 November 2012

TEKNOLOGI DI BELAKANG FACEBOOK


PHP
Seluruh website Facebook dibangun menggunakan PHP (PHP Hypertext Preprocessor). PHP adalah bahasa scripting server-side yang membuat dan menghasilkan output dinamis halaman HTML. Facebook mengubah PHP ke dalam kode C++ yang disebut dengan HipHop untuk framework PHP. Pengkonversian ini menyebabkan performa website lebih cepat dan tidak terlalu memberatkan server, memberikan user kelancaran, dan pengalaman yang tidak diinterupsi.
Cache
Facebook mengandalkan Memcached menyembunyikan dan menyimpan halaman Web pada memori. Memcached berperan sebagai layer antara server hosting biasa dengan server database MySQL. Hal ini membantu loading Facebook lebih cepat dibandingkan dengan social network lainnya. Secara umum, caching membantu untuk mempercepat website dengan menyimpan file yang biasa digunakan dan mendapatkannya kembali dari buffer memori server.
Database
Dalam menyimpan data, Facebook menggunakan database MySQL. MySQL adalah software database open-source. MySQL adalah salah satu komponen utama dari teknologi di belakang Facebook. Facebook mempunyai lebih dari 30.000 server dengan porsi yang besar dari server data base MySQL.
Photo Storage
Sejak Juni 2011, Facebook adalah website foto sharing terbesar dunia pada Internet. Untuk mengatasi volume foto yang besar yang diupload dan dilihat pada website, perusahaan ini menggunakan Haystack. Haystack adalah software open-source yang merupakan platform penyimpanan objek dengan perfomansi tinggi.

Rabu, 31 Oktober 2012

Message Passing Interface (MPI)

MPI is a specification for the developers and users of message passing libraries. By itself, it is NOT a library - but rather the specification of what such a library should be.
Simply stated, the goal of the Message Passing Interface is to provide a widely used standard for writing message passing programs. The interface attempts to be
  • practical
  • portable
  • efficient
  • flexible
Reasons for Using MPI:

  • Standardization - MPI is the only message passing library which can be considered a standard. It is supported on virtually all HPC platforms. Practically, it has replaced all previous message passing libraries.
  • Portability - There is no need to modify your source code when you port your application to a different platform that supports (and is compliant with) the MPI standard.
  • Performance Opportunities - Vendor implementations should be able to exploit native hardware features to optimize performance. 
  • Functionality - Over 115 routines are defined in MPI-1 alone.
  • Availability - A variety of implementations are available, both vendor and public domain.

Parallel Computing

Parallel Computing is the simultaneous use of multiple compute resources to solve a computational problem :
  • To be run using multiple CPUs
  • A problem is broken into discrete parts that can be solved concurrently
  • Each part is further broken down to a series of instructions
  • Instructions from each part execute simultaneously on different CPUs
  • The compute resources might be:
    • A single computer with multiple processors;
    • An arbitrary number of computers connected by a network;
    • A combination of both.
  • The computational problem should be able to:
    • Be broken apart into discrete pieces of work that can be solved simultaneously;
    • Execute multiple program instructions at any moment in time;
    • Be solved in less time with multiple compute resources than with a single compute resource.
Parallel computing is an evolution of serial computing that attempts to emulate what has always been the state of affairs in the natural world: many complex, interrelated events happening at the same time, yet within a sequence.

Main reason using parallel computing :
  1. Save time and/or money.
  2. Solve larger problems.
  3. Provide concurrency.
  4. Use of non-local resources.
  5. Limits to serial computing.
Type of parallel computer based on Flynn's Classical Taxonomy :
  1. Single Instruction Multiple Data (SIMD)
  2. Multiple Instruction Single Data (MISD)
  3. Multiple Instruction Multiple Data (MIMD)
Parallel Computer Memory Architectures :
  1. Shared memory
  2. Diatributed memory
  3. Hybrid distributed-shared memory

Source : Introduction to Parallel Computing, Author: Blaise Barney, Lawrence Livermore National Laboratory

Rabu, 24 Oktober 2012

3D Studio Max


S
uka kah kamu dengan film-film berbasis 3D  seperti Toy Story, Up, Despicable Me, dan Bug’s Life? Tak hanya anak-anak yang menyukai film animasi 3D ini, bahkan orang dewasa pun menyukainya hingga bisa menonton sampai berkali-kali. Ini dikarenakan film-film tersebut sangat menghibur dan dapat menghilangkan stress pada saat weekend setelah seminggu bekerja keras. Film-film 3D ini adal ah hasil dari proses manipulasi gambar visual secara digital, lalu di buat bergerak atau menjadi animasi.
Banyak software-software yang mendukung pengolahan gambar 3D ini. Dari yang open source, yaitu Blender, ataupun yang berbayar seperti 3ds Max. Kali ini kami akan membahas tentang 3ds Max beserta fitur-fiturnya. Silahkan disimak J

3D Studio Max (3ds Max)  atau biasa dikenal dengan 3D Max adalah suatu software (Perangkat lunak) untuk membuat sebuah grafik vektor 3 dimensi dan animasi. Dikembangkan  oleh Autodesk Media & Entertainment, yang dulunya dikenal sebagai Discreet and Kinetix. Para desain grafis banyak menggunakan software ini untuk membuat sebuah film animasi, arsitektur rumah, ataupun membuat logo suatu perusahaan. Untuk menjalankan aplikasi ini dibutuhkan spesifikasi komputer yang cukup tinggi agar mendapat kenyamanan saat menggunakannya. Ini dikarenakan banyak proses yang membutuhkan grafik yang tinggi untuk melakukan rendering dan sebagainya.
Fitur-fitur 3ds Max :
1.      Fitur untuk membuat model organic dan unorganic.
Model organic dapat berupa karakter model makhluk hidup nyata seperti manusia, hewan. Dan model makhluk hidup yang tidak nyata (khayalan) seperti monster, peri, dan lain-lain. Model unorganic dapat berupa model objek-objek benda mati seperti mesin, bangunan, mobil, sepeda motor, furniture, dan lain-lain.
Pada 3ds max feature yang digunakan untuk membuat model organic umumnya dengan menggunakan teknik Polygonal modeling dan NURBS modeling. Teknik Polygonal modeling adalah teknik membuat model dengan memakai objek-objek geometry dasar yang kemudian dikembangkan menjadi objek model yang lebih kompleks. Umumnya memakai bentuk objek geometry box (kotak) yang kemudian dihaluskan lagi permukaannya (smooth). Sedangkan teknik NURBS modeling adalah teknik membuat model dengan memakai garis-garis yang dibuat seperti rangka objek yang diinginkan kemudian diberi surface (bentuk permukaan).
Model unorganic umumnya dibuat dengan menggunakan teknik Compound modeling dan Spline modeling (dapat juga dengan menggunakan teknik Polygonal Modeling). Teknik Compound modeling adalah teknik membuat model dengan mengkombinasikan (menggabungkan, memotong atau mengambil perpotongan) antar bentuk objek-objek geometry. Sedangkan teknik Spline modeling adalah teknik membuat model dengan membuat bentuk objek 2d-nya terlebih dahulu yang kemudian “ditransfer” menjadi bentuk 3d dengan memberikan ketebalan pada objek 2d tersebut.

2.    Fitur untuk memberikan rangka pada objek karakter 3d yang telah dibuat, sehingga karakter 3d tersebut dapat bergerak seperti layaknya manusia. Ada 2 teknik yang dapat dilakukan, yaitu dengan teknik Bone dan teknik Biped. Teknik Bone adalah dengan membuat tulang secara satu-persatu yang kemudian dihubungkan antar masing-masing tulang yang saling berhubungan. Sedangkan teknik Bipel memungkinkan untuk membuat tulang yang telah terintegrasi menjadi satu kesatuan rangka yang utuh, sehingga tidak perlu lagi menghubungkan satu-persatu.

3.    Fitur membuat tekstur real dan tekstur kartun. Objek 3D yang dibuat dapat diberikan tekstur yang realistik sehingga terlihat nyata atau berupa tekstur kartun. Tekstur real adalah memberikan tekstur yang sebenarnya sesuai dengan sifat dan karakteristik permukaan suatu objek atau benda, sehingga akan diperoleh hasil yang tampak asli dan nyata. Fitur yang digunakan dengan menggunakan material standard. Sedangkan tekstur kartun adalah memberikan tekstur seperti kartun, yang warnanya cerah dan terang. Fitur yang digunakan adalah material Ink’npaint.

4.     Fitur membuat efek-efek api, asap (fire effect), kabut (fog), pendar cahaya (volume light), dan lain-lain. Efek-efek ini dapat diterapkan dengan memakai feature effect dan environment effect.

5.    Fitur membuat efek-efek yang terjadi bila mata/kamera melihat objek bergerak, misalnya efek motion blur dan depth of field (dof). Efek motion blur adalah efek bagaimana mata kita atau lensa kamera menangkap gambar objek yang bergerak yang memperlihatkan bias (blur) pergerakannya. Dof adalah efek bagaimana bila mata kita atau lensa kamera focus melihat satu objek, maka objek-objek di sekitarnya pasti akan menjadi tidak fokus (blur). Pemberian efek-efek ini tentu akan memberikan kesan yang semakin tampak realistis.

6.     Fitur untuk membuat efek-efek sinar cahaya. Efek-efek tersebut dapat berupa cahaya matahari, sunset, dan lain-lain  yang tentunya akan semakin memperkaya dan mempercantik desain 3D yang dibuat. Untuk membuatnya dapat memakai fitur effect.

7.   Fitur untuk membuat objek-objek bulu, rumput, dan lain-lain. Objek-objek ini memerlukan fitur aplikasi khusus yaitu fitur Hair & Fur.

8.    Fitur untuk membuat objek kain atau baju. Fitur yang digunakan adalah Cloth Simulation. Dengan fitur ini dapat membuat kain atau baju dengan lebih natural dan realistik, menyerupai dengan sifat baju/kain seperti dalam kondisi real/nyata.

9.    Fitur untuk membuat objek-objek liquid/cairan. Aplikasinya banyak ditujukan untuk membuat environment, seperti environment (panorama) di sungai, laut, kolam, dan lain-lain. Sama halnya seperti pembuatan objek bulu, objek liquid memerlukan tingkat kekompleksan yang sangat khusus, karena object ini sangat berat “dibaca” oleh komputer, apalagi bila tingkat akurasi liquisnya tinggi. Fitur yang dipergunakan adalah Meta Particle dan BlobMesh.

1   Fitur yang membuat cahaya yang realistis. Cahaya yang tampak realistis adalah cahaya yang memantul dan menyebar ke segala arah, sesuai dengan arah pantulan objeknya. Fitur yang dipakai adalah Global Illumination dengan beragam teknik, seperti Light Tracer, Radiosity atau MentalRay.

1    Fitur untuk membuat animasi dinamis. Banyak diaplikasikan untuk membuat animasi objek-objek yang saling bertubrukan/tabrakan, berbenturan, pecah, dan lain-lain. Tidak hanya dapat diterapkan untuk benda-benda (objek) solid/keras (rigid), tetapi dapat juga diterapkan untuk benda-benda lunak(soft), kain (cloth), tali (rope), dan lainnya.

Jumat, 15 Juni 2012

VB.Net (Visual Basic.Net)

SEJARAH
VB.Net berasal dari Bahasa BASIC (Beginner’s All Purpose Symbolic Code) yang sintaknya mirip dengan bahasa Inggris. VB.Net adalah bahasa yang full OOP, walaupun bahasa yang mendasarinya belum mendukung OOP.Pada awalnya, BASIC digunakan dalam komunitas perguruan tinggi sebagai bahasa “dasar” dalam pemrograman computer Pada tahun 70-an, bahasa ini diambil oleh produsen microcomputer pada zaman tersebut untuk digunakan sebagai bahasa pemrograman sederhana ROM tertanam serta system quasi untuk control input/output. Pada awal tahun 80-an, bahasa ini diambil oleh Microsoft dan berkembang secara signifikan di luar maksud aslinya “Visual Basic” yang dijual sepanjang tahun 1990 sebagai “pengembangan aplikasi cepat”.

SPESIFIKASI NAMA
Penulisan pada pemberian nama pada vb.net mempunyai aturan :

- Diawali dengan karakter alphabet atau underscore.
- Hanya terdiri dari karakter alphabet, digit decimal, dan underscore.
Harus terdiri sedikitnya satu karakter alphabet atau digit decimal jika dimulai dengan underscore.
Panjang nama tidak boleh lebih dari 1023 karakter.
Penulisan nama bersifat insensitive (ditulis dengan lowercase ataupun uppercase memiliki arti yang sama).

TIPE DATA
1.       Numeric data types
a.       Tipe integral : short, integer, long, dan byte
b.      Tipe nonintegral : decimal, single, double
2.       Character data types
a.       Tipe char
b.      Tipe string
3.       Miscellaneous data types
a.       Boolean
b.      Date
               c.     Object



Mengatasi Product Key invalid dari Tuneup Utilities 2012


Tuneup utilities merupakan suatu tool yang berguna dalam mengoptimalkan PC atau laptop Anda. Tuneup yang t. Sepertinya sekarang ini produsen Tuneup yang jauh disana sedang berhati-hati, karena setiap product key yang tidak asli alias bajakan (maklum bajakan dapat menghemat biaya,,hehe) dapat diketahui dengan cepat ketika terhubung ke Internet. Meskipun pada awalnya product key yang dimasukkan valid, tapi setelah Tuneup Utilities di restart, akan kembali diminta untuk memasukkan product key (hal ini karena Tuneup update secara otomatis). Lalu, apa solusinya??
Ketika product key sudah dimasukkan dan menunjukkan bahwa product key valid, jangan tutup klik finish/exit terlebih dahulu, tapi lakukan hal berikut :
1. Klik kanan pada toolbar Tuneup Utilities yang ada di pojok kanan taskbar, lalu pilih Configure Live Optimatization.
2. Pilik update check.
3. Lalu hilangkan centang pada "Automatically check for updates".
4. OK
Semoga bisa membantu :)