Selasa, 08 Januari 2013

Game AI yang Menggunakan Algoritma Greedy


AI (Artificial Intelligence) atau kecerdasan buatan merupakan salah satu cabang ilmu komputer yang mempelajari bagaimana cara membuat mesin cerdas, yaitu mesin yang mempunyai kemampuan untuk belajar dan beradaptasi terhadap sesuatu. Atau dapat juga diartikan membuat suatu mesin dapat melakukan pekerjaan seperti yang dilakukan oleh manusia, ataupun memasukan pikiran manusia ke dalam sebuah mesin agar mesin tersebut dapat berpikir layaknya manusia. Dalam permainan Ludo ini juga menerapkan konsep AI, yaitu dengan menggunakan komputer sebagai lawan dari pemain dalam memainkan permainan ini.
          Dalam penerapannya, permainan Ludo menggunakan algoritma Greedy. Algoritma Greedy merupakan satu algoritma yang paling sering digunakan dalam mencari solusi dari persoalan optimasi. Atau persoalan dimana kita mencari suatu solusi yang dapat menyelesaikan masalah secara optimal. Algoritma greedy akan membentuk solusi langkah per langkah. Pada setiap langkah penyelesaian masalah terdapat banyak pilihan langkah yang dapat diambil. Algoritma ini berusaha mengambil keputusan terbaik yang dapat diambil pada saat ini.
          Pada permainan Ludo terdapat kelas pion yang memiliki atribut berupa posisi pion. Kelas pion akan dimiliki oleh kelas pemain yang memiliki array yang berisi empat buah pion. Kelas pemain juga memiliki prosedur melangkah yang akan mengubah posisi pion pada kelas papan. Juga terdapat kelas dadu yang berisi angka yang dapat diambil oleh kelas lain.
          Dalam penerapan algoritma greedy pada permainan Ludo terdapat beberapa algoritma greedy yang dapat digunakan, diantaranya :
1.     Greedy By No One Left Behind
Algoritma ini akan berusaha untuk menggerakkan semua pion menuju titik tujuan bersama – sama. Semua langkah yang dapat diambil digunakan untuk menggerakan semua pion agar semakin dekat dengan tujuan dengan memilih pion dengan prioritas tertinggi yaitu pion yang berada paling belakang.
2.    Greedy By Hitter
Algoritma ini berusaha untuk menggerakan pion agar dapat memukul pion lawan. Pemilihan pion yang digerakkan berdasarkan prioritas posisi pion. Pion yang berada lebih dekat dengan pion lawan, maka pion tersebut yang akan digerakkan.
3.    Greedy By Quick Move
Algoritma ini berusaha untuk menggerakkan pion secepat mungkin menuju tujuan. Pergerakkan pion didasarkan pada pion dengan prioritas tertinggi, yaitu pion yang berada paling dekat dengan tujuan.

Referensi :

Minggu, 06 Januari 2013

PERT Diagram


Teknik penjadwalan proyek dalam system informasi terdapat 2 metode yaitu, Bagan Gantt Chart dan Metode PERT. Bagan Gantt Chart merupakan suatu bagan yang menampilkan setiap tugas atau kegiatan dalam bentuk kotak – kotak. Untuk lama waktu dari setiap kegiatan akan bergantung pada panjang dari kotak –kotak yang mewakili setiap kegiatan.

Metode PERT atau sering disebut sebagai diagram jaringan, merupakan sebuah program yang menggambarkan suatu kegiatan menggunakan jaring simpul dan arah panah yang kemudian dievaluasi untuk kemudian menentukan kegiatan terpenting dari keseluruhan sebuah proyek.

Dalam Metode PERT atau diagram jaringan setiap kejadian akan diwakilkan oleh sebuah simpul. Sedangkan untuk sebuah kejadian akan diwakilkan oleh anak panah.



Jalur Kritis dalam Diagram PERT merupakan jalur yang menunjukkan kegiatan dari awal diagram jaringan sampai dengan kegiatan akhir dari diagram jaringan, yang waktu pengerjaannya tidak dapat ditunda. Karena jika pengerjaanya ditunda maka akan mempengaruhi waktu pengerjaan proyek.



Untuk menentukan jalur kritis dari sebuah proyek dapat menggunakan Algoritma Jalur Kritis. Dengan melakukan pengitungan waktu mulai tercepat ( Earliest Start Time / ES) untuk masing – masing kegiatan dan waktu selesai terlama ( Latest Finish Time / LF). Perhitungan Earliest Start (ES) dan Latest Finish (LF) menggunakan 2 cara, yaitu :
*      
Forward Pass, untuk menghitung waktu mulai tercepat (ES).
Untuk menghitung ES digunakan rumus [Waktu Mulai Tercepat (ES) + Waktu Kegiatan)
Bila terdapat 2 kegiatan yang dilakukan atau lebih dalam 1 simpul, maka pilih kegiatan dengan waktu terbesar diantara kegiatan – kegiatan tersebut.
*      Backward Pass, untuk menghitung waktu selesai terlama (LF).
Untuk menghitung LF digunakan rumus [Waktu Selesai terlama (LF) - Waktu Kegiatan)
Bila terdapat 2 kegiatan yang dilakukan atau lebih dalam 1 simpul, maka pilih kegiatan dengan waktu terkecil diantara kegiatan – kegiatan tersebut.

Menghitung ES :
·         Kejadian 1 : Karena kegiatan awal/waktu mulai tercepat 0
ES1 = 0
·         Kejadian 2 : ES2 = ES1 + waktu kejadian A
ES2 = 0 + 10 = 10
·         Kejadian 3: ES3 = ES1 + waktu kejadian B
ES3 = 0 + 2 = 8
·         Kejadian 4: ES4 = ES1 + waktu kegiatan C
ES4 = 0 + 12 = 12
ES4 = ES3 + Kegiatan D1
ES4 = 8 + 0 = 8
ES4 = 12 (nilai terbesar)
·         Dan seterusnya menggunaka rumus yang sama sampai dengan kegiatan 8.

Menghitung LF
·         Kegiatan 8 : waktu selesai terlamanya sama dengan waktu mulai tercepat.
LF8 = ES8 = 50
·         Kejadian 7 = LF7 = LF8 – Waktu kejadian J
LF7 = 50 – 15 = 35
·         Kejadian 6 = LF6 = LF8 – waktu kegiatan I
LF6 = 50 – 20 = 30
·         Kejadian 5 = LF5 = LF8 – waktu kejadian H
LF5 = 50 – 8 = 42
LF5 = LF7 – waktu kejadian D2
LF5 = 35 – 0 = 35 (paling minimal)
·         Dan seterusnya menggunaka rumus yang sama sampai dengan kegiatan 1.
Jadi jalur kritis terjadi jika memiliki ES dan LF yang sama.



Slack menunjukan waktu dari sebuah kegiatan yang dapat ditunda waktu pengerjaanyan karena tidak akan mempengaruhi waktu penyelesaian dari seluruh proyek. Dalam perhitungan besar Slack memerlukan Waktu Mulai Terlama (Latest Start / LS) dan Waktu Selesai Tercepat (Earliest Finist / EF).



Referensi : Analisis dan Desain Sistem Informasi : Pendekatan Terstruktur (JOGIYANTO HM).

Jumat, 04 Januari 2013

ERD


ERD ( Entity Relational Diagram) merupakan diagram yang menggambarkan salah satu metode pemodelan basis data yang digunakan untuk menghasilkan skema konseptual untuk jenis/model data semantik sistem. Dimana sistem  seringkali memiliki basis data relasional, dan ketentuannya bersifat top-down. Diagram untuk menggambarkan model Entitiy-Relationship ini disebut Entitiy-Relationship diagramER diagram, atau ERD.

Notasi-notasi simbolik yang digunakan dalam Entity Relationship Diagram adalah sebagai berikut :
  • Entitas, Adalah segala sesuatu yang dapat digambarkan oleh data. Entitas juga dapat diartikan sebagai individu yang mewakili sesuatu yang nyata dan dapat dibedakan dari sesuatu yang lain 
  • Atribut, Atribut merupakan pendeskripsian karakteristik dari entitas. Atribut digambarkan dalam bentuk lingkaran atau elips. Atribut yang menjadi kunci entitas atau key diberi garis bawah.
  • Relasi atau Hubungan, Relasi menunjukkan adanya hubungan diantara sejumlah entitas yang berasal dari himpunan entitas yang berbeda.
  • Penghubung antara himpunan relasi dengan himpunan entitas dan himpunan entitas dengan atribut dinyatakan dalam bentuk garis.
Dibawah ini merupakan contoh ERD dari sebuah Apartemen.


Pada diagram ERD di atas dapat disimpulkan bahwa kardinalitas dari diagram ERD tersebut adalah M : 1. Atau Many to One, yang berarti banyak penghuni dapat memiliki 1 apartemen. Jadi setiap penghuni dapat memiliki 1 apartemen, tetapi untuk kamar pada apartemen dapat dimiliki banyak penghuni ataupun 1 penghuni dan banyak kamar dapat dimiliki oleh 1 penghuni ataupun banyak penghuni.

Sedangkan untuk derajat dari diagram ERD diatas berderajat 4 atau N-ary. Karena memiliki 4 buah entitas dari keseluruhan diagram ERD tersebut. 


Pada diagram ERD di atas setiap entitas memiliki atribut key sebagai atribut yang akan digunakan untuk menentukan suatu entity secara unik. Perusahaan di atas menggunakan Oracle sebagai aplikasi database yang digunakan. ERD di atas menjelaskan database dari sebuah apartmene yang menjelaskan hubungan antara Pegawai dengan Apartemen. Apartemen dengan penghuni. Dan Penghubi dengan Penyewa.



Sabtu, 29 Desember 2012

HTML 5


HTML 5 merupakan sebuah bahasa markah yang menstrukturkan dan menampilkan isi dari World Wide Web (WWW). HTML 5 merupakan revisi kelima dari HTML. HTML 5 dikembangkan untuk memperbaiki teknologi HTML agar mendukung teknologi multimedia terbaru, mudah dibaca oleh manusia serta mudah dimengerti oleh mesin.

HTML 5 merupakan salah satu karya dari World Wide Web Consortium (W3C). Bertujuan untuk mendefinisikan sebuah bahasa markah tunggalyang dapat ditulis dengan cara HTML maupun XHTML. HTML 4.01 dan XHTML 1.1 yang selama ini berjalan secara terpisah serta pengimplementasiannya yang secara berbeda oleh perangkat lunak pembuatan web dikembangkan menjadi HTML 5.

Dalam HTML 5 diperkenalkan beberapa elemen dan atribut baru yang merefleksikan penggunaan website modern. Beberapa diantaranya adalah pergantian yang bersifat semantic blok yang umum digunakan: yaitu elemen (<div>) dan inline (<span>), sebagai contoh (<span>) (sebagai blok navigasi website) dan <footer> (biasanya dikaitkan pada bagian bawah suatu website atau baris terakhir dari kode html). Banyak elemen lain yang memberikan kegunaan baru melalui antar muka yang telah distandarkan, seperti elemen multimedia <audio> dan <video>. Beberapa elemen yang telah ditinggalkan juga ditiadakan, termasuk elemen presentasi semata seperti <font> dan <center>, yang sebenarnya dapat dikerjakan menggunakan Cascading Style Sheet (CSS). Semantic menjadi alasan kenapa HTML5 membuat sebuah situs menjadi mudah diakses.

Untuk menambah keluwesan pemformatan, pada HTML5 telah dispesifikasikan pengkodean Application Programming Interfaces (APIs). antarmuka document object model (DOM) yang ada dikembangkan dan fitur de facto didokumentasikan. Beberapa APIs terbaru pada HTML5 antara lain :
  • Elemen canvas, sebagai mode untuk menggambar object dua dimensi (2D). Lihat spesifikasi 1.0 untuk canvas 2D.
  • Timed media playback
  • Media penyimpanan luring (aplikasi web luring).
  • Penyuntingan dokumen
  • Drag and Drop
  • Cross-document messaging
  • Manajemen sejarah kunjungan penjelajah web
  • Tipe MIME dan penanggung jawab protokol registrasi.
Website yang menggunakan HTML 5 (text/html) akan lebih fleksiblel dalam menangani kesalahan yang terjadi pada sintaks. HTML 5 telah didesain agar website lama dapat dengan aman mengabaikan konstruksi HTML 5 yang baru. Terdapat perbedaan yang mendasar dengan HTML versi sebelumnya HTML 4.01 adalah spesifikasi HTML 5 yang memberikan aturan detail untuk meleksikalkan dan memparsing  sebagai persyaratan agar berbagai website tetap memberikan hasil yang sama saat terjadi kesalahan sintaks.


Minggu, 21 Oktober 2012

Membuat Perosotan dengan SketchUp


Google SketchUp merupakan perangkat lunak untuk desain grafis. Dengan menggunakan Google SketchUp ini saya akan membuat sebuah mainan yang biasanya terdapat di playground yaitu perosotan. Berikut langkah – langkah yang digunakan dalam membuat sebuah ayunan menggunakan  Google SketchUp.


1.   Langkah awal yang harus dilakukan adalah membuat sebuah lingkaran yang berada pada red axis sebagai awal untuk memuat tabung yang akan menjadi ibu tangga dari perosotan. Dengan mengklik ikon circle yang ada pada tools bar.

2.    Setelah membuat sebuah lingkaran, selanjutnya kita akan menjadikan lingkaran yang telah di buat menjadi sebuah tabung. Untuk membuat sebuah tabung kita gunakan ikon Push/Pull yang ada pada tools bar.  Arahkan tool pada bagian tengah lingkaran kemudian klik dan tarik hingga membentuk tabung.


Setelah selesai membuat sebuah tabung, buatlah sebuah tabung lagi dengan langkah yang sama.

Setelah di buat ke dua tabung yang berdiri sejajar maka akan menjadi seperti gambar di bawah ini.


3.    Kemudian buat beberapa tabung lagi yang akan digunakan sebagai anak tangga, masih dengan cara yang sama. Tabung dibuat pada green axis ( horizontal) kemudian satukan setiap anak tangga dengan ibu tangga yang telah di buat. Maka akan membentuk seperti gambar di bawah ini.


4.    Kemudian dilanjutkan dengan membuat sebeuah segitiga untuk membuat badan dari perosotan. Dengan cara menarik garis yang saling terhubung sehingga membuat sebuah segitiga. Untuk membuat garis gunakan ikon Line.

5.    Setelah membuat segitiga, kemudian tarik segitiga yang telah dibuat sehingga akan membentuk badan dari perosotan. Untuk menarik segitiga, menggunakan cara yang sama dengan membuat sebuah tabung. Tarik bagian dari segitiga menggunakan tool Push/Pull kemudian tarik hingga terbentuk perosotan kemudian lepas.


6.    Setelah membuat prosotan maka, buatlah pegangan atau pembatas di kedua sisi samping perosotan dengan cara menarik garis hingga membentuk sebuah bidang. Maka akan jadilah sebuah perosotan.

Jika ingin menambahkan warna pada perosotan yang telah dibuat. Pilih tool Paint Bucket untuk memilih warna ataupun pattern yang diinginkan.

Itulah beberapa langkah yang digunakan untuk membuat sebuag perosotan sederhana menggunakan Google SketchUp. Semoga bermanfaat.