Selasa, 04 Desember 2012

Algoritma Genetika Untuk Menentukan Tata Letak Barang Di Gudang


1.        JUDUL
Aplikasi Algoritma Genetika Untuk Menentukan Tata Letak Barang Di Gudang
2.        LATAR BELAKANG
Di era zaman sekarang, khususnya dalam dunia industri perencanaan fasilitas merupakan hal pokok dalam membangun sebuah fasilitas-fasilitas industri dimana dimaksudkan sebagai sarana untuk perbaikan layout khususnya dalam penanganan material, penentuan peralatan dalam proses industri, dan perencanaan fasilitas secara keseluruhan. Ada 2 hal pokok dalam perencanaan fasilitas yaitu , berkaitan dengan perencanaan lokasi pabrik dan perencanaan fasilitas produksi yang meliputi perancangan struktur pabrik, perancangan tata letak fasilitas dan perancangan sistim penanganan material.
Guna menciptakan kelancaran proses produksi, perusahaan harus memegang peranan penting dalam pengaturan fasilitas pabrik agar tercapai aliran kerja yang teratur, aman, dan nyaman. Kelancaran produksi merupakan salah satu kunci profitable dari sebuah perusahaan yang harus ditangani secara bijaksana. Yang kedua yaitu berkaitan dengan tata letak pabrik. Tata letak ini berhubungan dengan perencanaan dan pengaturan tata letak barang di sebuah gudang, peralatan, aliran bahan, dan orang-orang yang bekerja di masing-masing stasiun kerja. Hal yang perlu diingat disini bahwasanya kesalahan dalam pengaturan fasilitas akan berdampak negatif secara terus menerus jika ada ketidakberaturan pada sistem produksi.   

Oleh karena itu diperlukan sebuah metode dimana pada metode tersebut akan tercipta suatu perencanaan, tata letak, dan fasilitas secara teratur dalam dunia industri. Maka secara tidak langsung studi kasus diatas dapat diimplementasikan pada suatu metode yaitu algoritma genetika dimana metode ini menganalisis tentang suatu cara menentukan tata suatu barang dalam sebuah pabrik untuk mendapatkan total flow cost yang minimum.
3.        RUMUSAN MASALAH
Berdasarkan latar belakang yang telah disebutkan diatas, maka dapat dirumuskan suatu masalah yaitu bagaimana tata cara untuk menentukan suatu letak barang dalam sebuah gudang?
4.        TUJUAN
Tujuan dari studi kasus diatas yaitu untuk mengetahui tata cara pengaplikasian algoritma genetika dalam penentuan tata letak barang di gudang.
5.        TINJAUAN PUSTAKA
5.1.Pengenalan JAVA
Java adalah bahasa pemrograman yang berorientasi objek (OOP) dan dapat dijalankan pada berbagai platform sistem operasi. Perkembangan Java tidak hanya terfokus oada satu sistem operasi, tetapi dikembangkan untuk berbagai sistem operasi dan bersifat open source.  
Pada 1991, sekelompok insinyur Sun dipimpin oleh Patrick Naughton dan James Gosling ingin merancang bahasa komputer untuk perangkat konsumer seperti cable TV Box. Karena perangkat tersebut tidak memiliki banyak memori, bahasa harus berukuran kecil dan mengandung kode  yang liat. Juga karena manufaktur – manufaktur berbeda memilih  processor yang berbeda pula, maka bahasa harus bebas dari manufaktur manapun. Proyek diberi nama kode ”Green”.
Karena orang – orang di proyek Green berbasis C++ dan bukan Pascal maka kebanyakan sintaks diambil dari C++, serta mengadopsi orientasi objek dan bukan prosedural. Mulanya bahasa yang diciptakan diberi nama ”Oak” oleh James Gosling yang mendapat inspirasi dari sebuah pohon yang berada pada seberang kantornya, namun dikarenakan nama Oak sendiri merupakan nama bahasa pemrograman yang telah ada sebelumnya, kemudian SUN menggantinya dengan JAVA. Nama JAVA sendiri terinspirasi pada saat mereka sedang menikmati secangkir kopi di sebuah kedai kopi yang kemudian dengan tidak sengaja salah satu dari mereka menyebutkan kata JAVA yang mengandung arti asal bijih kopi. Akhirnya mereka sepakat untuk memberikan nama bahasa pemrograman tersebut dengan nama Java. 
Sebagai sebuah bahasa pemrograman, Java dapat membuat seluruh bentuk aplikasi, desktop, web dan lainnya, sebagaimana dibuat dengan menggunakan bahasa pemrograman konvensional yang lain. 

5.2.Karakteristik JAVA
Berdasarkan white paper resmi dari SUN, Java memiliki karakteristik berikut:
1.    Sederhana (Simple)
Bahasa pemrograman Java menggunakan Sintaks mirip dengan C++ namun  sintaks pada Java telah banyak diperbaiki terutama menghilangkan penggunaan pointer yang rumit dan  multiple inheritance. Java juga menggunakan automatic memory allocation dan memory garbage collection.
2.    Berorientasi objek (Object Oriented)
Java mengunakan pemrograman berorientasi objek yang membuat program  dapat dibuat secara modular dan dapat dipergunakan kembali. Pemrograman berorientasi objek memodelkan dunia nyata kedalam objek dan melakukan  interaksi antar objek-objek tersebut.
3.    Terdistribusi (Distributed)
Java dibuat untuk membuat aplikasi terdistribusi secara mudah dengan adanya
libraries networking yang terintegrasi pada Java.
4.    Interpreted
Program Java dijalankan menggunakan interpreter yaitu  Java Virtual Machine (JVM). Hal ini menyebabkan  source code  Java yang telah dikompilasi menjadi Java bytecodes dapat dijalankan pada platform yang berbeda-beda.
5.    Robust
Java mempuyai reliabilitas yang tinggi. Compiler pada Java mempunyai kemampuan mendeteksi error secara  lebih teliti dibandingkan bahasa pemrograman lain. Java mempunyai  runtime-Exception handling  untuk membantu mengatasi error pada pemrograman.
6.     Secure
Sebagai bahasa pemrograman untuk aplikasi internet dan terdistribusi, Java memiliki beberapa mekanisme keamanan untuk menjaga aplikasi tidak digunakan untuk merusak sistem komputer yang menjalankan aplikasi tersebut.
7.    Architecture Neutral
Program Java merupakan  platform independent, berarti program yang ditulis dalam bahasa Java dapat dengan mudah dipindahkan antar berbagai jenis sistem operasi dan berbagai jenis arsitektur komputer. Aspek ini sangat penting untuk dapat mencapai tujuan Java sebagai bahasa pemrograman Internet di mana sebuah program akan dijalankan oleh berbagai jenis komputer dengan berbagai jenis sistem operasi. Sifat ini berlaku untuk level source code dan binary code dari program Java. Berbeda dengan bahasa C dan C++, semua tipe data dalam bahasa Java mempunyai ukuran yang konsisten di semua jenis platform. Source code program Java sendiri tidak perlu dirubah sama sekali jika Anda ingin mengkompile ulang di platform lain. Hasil dari mengkompile source code Java bukanlah kode mesin atau instruksi prosesor yang spesifik terhadap mesin tertentu, melainkan berupa bytecode yang berupa file berekstensi .class. Bytecode tersebut dapat langsung Anda eksekusi di tiap platform yang dengan menggunakan Java Virtual Machine (JVM) sebagai interpreter terhadap bytecode tersebut.
JVM sendiri adalah sebuah aplikasi yang berjalan di atas sebuah sistem operasi dan menerjemahkan bytecode program Java dan mengeksekusinya, sehingga secara konsep bisa dianggap sebagai sebuah interpreter. Proses pengeksekusian program Java dapat dilukiskan seperti gambar dibawah ini:
Kode Natif (mesin)
 
Source Code
 
Bytecode
 
 

                            Kompiler                           JVM
                               java
Dengan cara ini, sebuah program Java yang telah dikompilasi akan dapat berjalan di platform mana saja, asalkan ada JVM di sana.
Kompiler dan interpreter untuk program Java berbentuk Java Development Kit (JDK) yang diproduksi oleh Sun Microsystems. JDK ini dapat didownload gratis dari situs java.sun.com. Interpreter untuk program Java sendiri sering juga disebut Java Runtime atau Java Virtual Machine. Interpreter Java, tanpa kompilernya, disebut Java Runtime Environment (JRE) dapat didownload juga di situs yang sama. Untuk mengembangkan program Java dibutuhkan JDK, sementara jika hanya ingin menjalankan bytecode Java cukup dengan JRE saja. Namun untuk mengeksekusi applet (sebuah bytecode Java juga) Anda biasanya tidak perlu lagi mendownload JRE karena browser yang Java-enabled telah memiliki JVM sendiri.
8.    Portable
Source code maupun program Java dapat dengan mudah dibawa ke platform yang berbeda-beda tanpa harus dikompilasi ulang.
9.    Performance
Performance pada Java sering dikatakan kurang tinggi. Namun performance Java dapat ditingkatkan  menggunakan kompilasi Java lain seperti buatanInprise, Microsoft ataupun Symantec yang menggunakan  Just In Time Compilers (JIT).
10.     Multithreaded
Java mempunyai kemampuan untuk membuat suatu program yang dapat melakukan beberapa pekerjaan secara sekaligus dan simultan.
11.     Dynamic
Java didesain untuk dapat dijalankan pada lingkungan yang dinamis. Perubahan pada suatu  class  dengan menambahkan properties ataupun method dapat dilakukan tanpa menggangu program yang menggunakan class tersebut.

5.3. Algoritma Genetika
Algoritma ini ditemukan di Universitas Michigan, Amerika Serikat oleh John Holland (1975) melalui sebuah penelitian dan dipopulerkan oleh salah satu muridnya,David Goldberg.
Algoritma genetika adalah algoritma pencarian heuristik yang didasarkan atas mekanisme evolusi biologis. Keberagaman pada evolusi biologis adalah variasi dari kromosom antar individu organisme. Variasi kromosom ini akan mempengaruhi laju reproduksi dan tingkat kemampuan organisme untuk tetap hidup. Pada algoritma ini, teknik pencarian dilakukan sekaligus atas sejumlah solusi yang mungkin yang dikenal dengan istilah populasi. Individu yang terdapat dalam satu populasi disebut dengan istilah kromosom. Kromosom ini merupakan suatu solusi yang masih berbentuk simbol. Populasi awal dibangun secara acak, sedangkan populasi berikutnya merupakan hasil evolusi kromosom-kromosom melalui iterasi yang disebut dengan istilah generasi. Pada setiap generasi, kromosom akan melalui proses evaluasi dengan menggunakan alat ukur yang disebut dengan fungsi fitness. Nilai fitness dari suatu kromosom akan menunjukkan kualitas kromosom dalam populasi tersebut. Generasi berikutnya dikenal dengan istilah anak (offspring) terbentuk dari gabungan 2 kromosom generasi sekarang yang bertindak sebagai induk (parent) dengan menggunakan operator penyilangan (crossover). Selain operator penyilangan, suatu kromosom dapat juga dimodifikasi dengan menggunakan operator mutasi. Populasi generasi yang baru dibentuk dengan cara menyeleksi nilai fitness dari kromosom induk (parent) dan nilai fitness dari kromosom anak (offspring),serta menolak kromosom-kromosom yang lainnya sehingga ukuran populasi (jumlah kromosom dalam suatu populasi) konstan. Setelah melalui beberapa generasi, maka algoritma ini akan konvergen ke kromosom terbaik.
5.4.Proses Seleksi dengan Roda Roulette
Metode seleksi roda roulette ini merupakan metode yang paling sederhana serta paling banyak digunakan, dan sering juga dikenal dengan nama stochastic sampling with replacement. Pada metode ini, orangtua dipilih berdasarkan nilai fitnessnya, semakin baik nilai fitnessnya maka semakin besar kemungkinannya untuk terpilih. Diandaikan semua kromosom diletakkan pada sebuah roda roulette, besarnya kemungkinan bagi setiap kromosom adalah tergantung dari nilai fitnessnya.
Seleksi ini bertujuan untuk memberikan kesempatan reproduksi yang lebih besar bagi anggota populasi yang memiliki fitness tinggi untuk melakukan reproduksi. 
Berikut algoritma dari roulette wheel selection:
1.    Dihitung nilai fitness masing-masing individu (fi, dimana i adalah individu ke 1 s/d ke-n
2.    Dihitung total fitness semua individu
3.    Dihitung fitness relatif masing-masing individu
4.    Dari fitness relatif tersebut, dihitung fitness kumulatifnya.
5.    Dibangkitkan nilai random
6.    Dari bilangan random yang dihasilkan, ditentukan individu mana yang terpilih dalam proses seleksi
5.5.Crossover
Crossover atau Crossing over merupakan faktor utama perbedaan antara algoritma genetik dengan algoritma optimisasi lainnya. Crossover (penyilangan) dilakukan atas 2 kromosom untuk menghasilkan kromosom anak (offspring). Kromosom anak yang terbentuk akan mewarisi sebagian sifat kromosom induknya. Pada metode ini, offspring dibentuk dengan cara memilih sebagian jalur dari suatu induk, kemudian menata ulang jalur berdasarkan urutan tertentu dari induk yang lainnya.


5.6.Mutasi
           Mutasi Gen merupakan operator yang menukar nilai gen dengan nilai inversinya, Pada  mutasi,  tiap  lokasi  menjadi  sasaran  mutasi acak,  dengan  probabilitas  independen  yang  kecil.  Sebuah digit dimutasikan pada anak pertama, ketiga, dan keempat. Algoritma  genetik  mengkombinasikan suatu kecenderungan  menaik  dengan  pengeksplorasian  acak  di antara  thread  pencarian  paralel.  Keuntungan
utamanya,bila ada, datang dari operasi crossover. Namun, secara  matematis  dapat  tunjukkan  bahwa  bila  posisi  dari kode genetik di permutasikan di awal dengan urutan acak, crossover  tidak  memberikan  keunggulan.  Secara  intuisi, keuntungannya  didapat  dari  kemampuan  crossover  untuk menggabungkan  blok-blok  huruf  berukuran  besar  yang telah  berevolusi  secara  independen  untuk  melakukan fungsi yang bermanfaat sehingga dapat menaikkan tingkat granularity di mana pencarian dilakukan.
  1.  METODOLOGI PENELITIAN
Pembuatan aplikasi untuk menentukan tata letak barang di gudang dengan menggunakan algoritma genetika ini dilakukan dalam beberapa tahap, sebagai berikut:
1.    Pembuatan rancangan input dan output. Desain rancangan input dan output dibuat dalam satu “jendela” , dimaksudkan untuk memudahkan dalam membandingkan gambar output dengan masukan yang sama.
2.    Pembuatan logika pemrograman. Logika program dibuat dengan menggunakan bentuk diagram alur.
3.    Pembuatan naskah program.
Berikut adalah gambar flowchart dari simulasi yang akan kami bangun:
Twitter Delicious Facebook Digg Stumbleupon Favorites More

 
Design by Free WordPress Themes | Bloggerized by Lasantha - Premium Blogger Themes | GreenGeeks Review