Monday, May 21, 2012

Peluang Besar Industri Games

(Suara Merdeka Minggu – Rubrik Konek 18 Desember 2011)
Peluang
 Besar Industri Games


Sampai saat ini cukup banyak dari kita melihat Game hanya sebatas program pengisi waktu di kala suntuk, menunggu antrian, atau mengisi waktu luang. Sehingga kesan yang muncul, Game bukanlah sesuatu yang serius apalagi bisa dijadikan sebagai masa depan.
 
Padahal ada peluang yang besar di dalam industri kreatif Game tanah air. Bukan hanya dari sisi pasokan karena jumlah industri Game yang masih sedikit di tanah air, tetapi juga dari sisi permintaan karena kebutuhan akan Game-Game baru yang tak pernah berhenti dan terus berkembang.
Hal tersebut yang juga membuat perusahaan Game global dari Prancis, GameLoft, tertarik menanamkan modalnya di Indonesia. Mereka bahkan mengakui kebutuhan akan tenaga programmer dan animasi di bidang Game masih cukup tinggi, guna memenuhi permintaan pasar Game dunia yang kian berkembang.
Program-program permainan yang akan dihasilkan masih banyak, namun sumber daya manusia yang fokus di bidang tersebut masih terbatas. Sementara kebutuhan produk-produk hasil industri kreatif ini makin tak terbendung karena potensi keuntungan finansial yang semakin besar.
Jika melihat dari jumlah industri Game di tanah air yang masih sedikit, maka besar harapan dan peluang bagi lulusan-lulusan di bidang Teknologi Informasi (TI) untuk bisa ikut mengisi kebutuhan di dalamnya, baik sebagai tenaga ahli maupun wirausaha di bidang Game.

Dukungan Pemerintah
Pemerintah tampaknya juga menyadari peluang besar di bidang industri kreatif ini, terutama jika dilihat dari kontribusi produk domestik bruto (PDB) dari industri kreatif yang telah mencapai angka tujuh persen.
Dukungan kepada industri kreatif Game juga dinyatakan dalam Masterplan Percepatan dan Perluasan Pembangunan Ekonomi Indonesia (MP3EI), yang dalam implementasinya diwujudkan dengan pemberian insentif terhadap industri kreatif dan dukungan beasiswa bagi pelajar yang berminat di bidang tersebut
.
Diprediksi kebutuhan tenaga ahli dan wirausaha di bidang ini akan terus berkembang dalam jangka waktu yang lama, seiring dengan penetrasi ponsel, tablet, dan laptop yang makin meluas ke masyarakat. Apalagi saat ini peningkatan kebutuhan Game juga dirasakan oleh bidang-bidang lain, seperti pendidikan dan kedokteran.
Di dalam buku Stimulasi Kecerdasan Anak Melalui Teknologi Informasi, keberadaan Game sebagai media belajar sangat membantu penyampaian pengetahuan kepada anak-anak secara menyenangkan. Sedangkan untuk di bidang kedokteran, Game dibutuhkan sebagai media terapi untuk pasien.
Dampak Positif
Dalam salah satu penelitian yang dilakukan oleh University of Rochester di New York disebutkan bahwa dampak positif Game yang dapat dirasakan oleh para penggunanya antara lain adanya peningkatan fokus dan kemampuan visual, serta kemampuan dalam mengelola strategi. Melihat manfaat-manfaat tersebut, akan terbuka kemungkinan kebutuhan dari bidang-bidang yang lain.
Industri kreatif Game secara nasional maupun global merupakan masa depan yang menjanjikan bagi lulusannya. Jika ditambah dengan keahlian wirausaha, maka bukan tidak mungkin, industri kreatif Game di tanah air dapat berkembang dan bersaing dengan negara lain.
Beberapa universitas di Indonesia juga mulai mengikuti perkembangan tersebut, dengan membuka bidang studi Game Technology di bawah Fakultas Komputer, Arsitektur, ataupun Teknik.
Ke depannya, akan banyak produk-produk unggulan yang dihasilkan oleh tangan-tangan kreatif bangsa kita. Selain itu juga diharapkan mampu menyerap banyak tenaga kerja dan menggerakkan perekonomian Indonesia

teknolgi informasi dan Akuntansi

Peran teknologi informasi dalam membantu proses akuntansi dalam perusahaan/organisasi telah lama berlangsung. Alasan utama penggunaan IT dalam akuntansi ialah efisiensi, penghematan waktu dan biaya. Alasan lain termasuk peningkatan efektifitas, mencapai hasil/output laporan keuangan dengan benar. Alasan lainnya yaitu ditambah dengan perlindungan atas aset perusahaan.

Jika kita gunakan ilustrasi piramida organisasi, tugas akuntansi akan berada pada level paling bawah yaitu level operasional dan transaksional. Level ini punya ciri khas yaitu teknis, repetitive, prosedural, standar dan juga dapat membuat bosan. Contohnya, akuntansi yang menangani transaksi pembelian, penjualan, pengiriman barang, pembayaran transaksi, penerimaan hasil penjualan, penyusunan laporan. Ciri khas ini yang menjadi alasan utama mengapa teknologi informasi sangat berkaitan erat dengan akuntansi. Bahkan, kisah hubungan ini telah terjadi jauh-jauh hari pada saat komputer masih berbadan besar dan boros tenaga (mainframe).

Bagaimana dengan sekarang? saya kira masih sama. Peran TI dalam akuntansi masih penting bahkan makin semakin penting! Kemajuan pesat TI sangat berpengaruh terhadap perkembangan dan aplikasi ilmu akuntansi. Munculnya istilah enterprise systems, e-business, business intelligence, conforming to assurance and compliance standards, IT governance, business continuity management, privacy management, business process improvement, mobile and remote computing, XBRL, dan knowledge management menunjukkan bahwa dunia akuntansi akan semakin kompleks, tidak hanya berkutat pada jurnal dan penyusunan laporan keuangan saja. Ini membuat dunia akuntansi lebih menarik! Peran akuntan dapat meliputi tiga bidang: perancang, pengguna dan pemeriksa (auditor). Dalam ketiga peran ini, TI akan sangat berperan dalam kesuksesan kerja akuntan.

Bagi mahasiswa akuntansi di Indonesia, patut disadari bahwa kurikulum yang ada belum mendukung terciptanya seorang akuntan yang juga handal dibidang TI. Tentu yang saya maksud bukan handal secara teknis (walaupun ini juga baik sekali jika dapat disiapkan) tapi handal dalam artian paham dan mampu menggunakan TI dalam menunjang peran seorang akuntan.

Tentu saja pengetahuan tentang TI bukan segalanya dalam konteks ilmu sistem informasi akuntansi. Diperlukan pemahaman lainnnya seperti database, pelaporan yang baik, pengendalian, business operation, pemrosesan transaksi, pengambilan keputusan manajemen, pengembangan dan penggunaan sistem, komunikasi, dan pemahaman prinsip akuntansi dan audit.

Tuesday, May 8, 2012

Algoritma Games Tebak Kata

             Anagram yang dalam bahasa Yunani disebut anagrammatismos mempunyai arti ana-(up, again, back, new) dan gram (letter). Dalam bahasa Inggris, anagram sebagai kata benda mempunyai makna yaitu sebuah kata atau frase baru yang dibentuk dengan menyusun kembali huruf-huruf dari kata atau frase tersebut. Sebagai contoh dari kata Elvis menjadi Lives. Sedangkan anagram sebagai kata kerja bermakna yaitu untuk menyusun kembali huruf-huruf sedemikian rupa.


Anagram adalah salah satu jenis permainan tebak kata. Objektif permainan anagram adalah menebak kata dengan huruf-huruf yang telah diacak. Huruf yang tersedia harus dipakai sebanyak jumlahnya. Contoh yang sederhana, pemain diberikan empat huruf ”upla”, maka pemain harus menebak kata menggunakan huruf ’u’, ’p’, ’l’, ’a’; dengan tiap huruf tepat sebanyak jumlahnya. Sehingga kata-kata yang bisa dibentuk adalah ”lupa”, ”palu”, ”pula”, ”luap”, dan seterusnya. Kata yang ditebak harus valid, valid dalam arti kata tersebut termasuk dalam suatu database yang ditentukan. Semakin banyak tebakan kata yang benar nilainya semakin baik (Assaat, 2007, hal:1).


Dalam penelitian yang dilakukan Assaat, 2007 algoritma backtracking dapat digunakan dalam mencari anagram dari sebuah kata. Pada penelitian tersebut algoritma backtracking dipakai untuk membangun list kata yang merupakan kumpulan kata yang dapat disusun oleh huruf-huruf yang telah diacak dan terdapat di database. Program permainan anagram yang di rancang oleh Assaat, 2007 melibatkan tiga elemen utama. Pertama adalah pemain, kedua adalah komputer dalam arti program itu sendiri, dan ketiga adalah database kata, dimana database tersebut telah terurut secara alfabet.


Secara umum kerja dari program yang di rancang oleh Assaat, 2007 adalah program melakukan tiga hal utama, yaitu memilih kata dari database secara acak, membangun list kata valid dari huruf-huruf kata yang terpilih, dan terakhir mencocokan string masukan pemain dengan list yang telah dibuat serta dibutuhkan beberapa data-data tambahan dan fungsi khusus untuk membantu menyelesaikan permasalahan yang ada.
Data dan fungsi tambahan yang diperlukan adalah data indeks huruf. Dalam melakukan pencarian apakah string ada atau tidak dalam database, akan sulit bila setiap pencarian dilakukan dari awal. Sama seperti halnya menandai halaman awal tiap huruf buku tebal ensiklopedi dengan jelas agar mudah dicari. Sehingga tiap huruf mempunyai indeks jumlah kata yang diawalinya. Sebagai contoh, indeks kata yang diawali huruf ‘d’ yang pertama dalam database adalah 3.325, sehingga pencarian dimulai dari indeks angka tersebut.

Fungsi tambahan berikutnya adalah fungsi pembatas indeks, dengan masukan array of karakter, maka fungsi akan mengembalikan indeks terendah dan tertinggi kata yang masih bisa diawali oleh masukan karakter tersebut. Sebagai contoh, bila masukan fungsi tersebut adalah “da” maka fungsi akan mengembalikan indeks pertama dan terakhir kata yang diawali “da”. Bila tidak ada kata yang bisa dibentuk maka fungsi mengembalikan angka -99 untuk kedua keluaran. Untuk efektifitas pencarian,angka indeks, algoritma pencarian yang digunakan adalah binary search agar waktu pencarian setara untuk setiap huruf.

Skema umum langkah-langkah program adalah sebagai berikut : 

1. Pencarian Kata dan Pengacakan

Program membangun bilangan acak dari angka 1 hingga [JumlahKataDatabase]. Program akan mengacak indeks huruf dari kata tersebut. Program mengacak kata dari database, sehingga solusi yang dapat dibentuk minimal satu buah. Contoh, bila kata yang terpilih adalah “siang”, maka kata yang bisa dibentuk adalah “siang” itu sendiri, dan “asing”.


            2 . Pembangunan List dari  Kata yang Valid

Program akan membangun list kata yang mungkin dan mencocokannya dengan database. Persoalan telah disederhanakan dengan membatasi jumlah huruf dalam kata yaitu minimal 4 huruf dan maksimal 8 huruf. (4 < JumlahHuruf < 8). Kemudian algoritma backtracking dipakai untuk membangun list kata yang valid, seandainya digunakan algoritma brute force untuk kasus terburuk dapat kita hitung berapa waktu yang dibutuhkan untuk membangun list kata yang valid. Misalkan jumlah huruf dari kata yang terpilih dari database sebanyak delapan, jumlah kata dalam database.
100.000, huruf-huruf dari kata tersebut hanya dapat membangun kata itu sendiri. Maka kata yang dibangun sebanyak 8! dan tiap kata harus dicocokkan satu per satu. Bila proses pencocokan string memakan waktu 1 detik maka, untuk membangun list kata diperlukan waktu selama 8! x 100.000 = 4.032.000.000 detik. Sedangkan list hanya akan berisi satu kata, yaitu kata yang diambil dari database. Sungguh waktu yang lama untuk memulai permainan. Untuk itu di gunakan algoritma backtracking sebagai penyempurnaan algoritma brute force. Kita sudah mempunyai data dan fungsi tambahan, yaitu data indeks huruf dan fungsi batas minimum maksimum. Maka kita akan membangun pohon solusi untuk membangun kata-kata yang valid. Sebagai contoh kasus, bila kata yang terpilih dari database adalah “LUPA”. Maka kata yang dapat dibangun melalui pohon adalah seperti gambar berikut.


Langkah-langkah  dalam  pembangunan  pohon  adalah sebagai berikut :

1.  Simpul dihidupkan sesuai alfabet. Dimulai dari huruf ‘A’. Maka pencarian langsung dimulai dari indeks huruf A, yaitu 1. Simpul yang dihidupkan pertama kali oleh simpul ‘A’ adalah simpul ’L’. Maka fungsi pembatas dipanggil dengan masukkan string “AL”. Karena masih ada kata yang diawali oleh “AL” maka pencarian diteruskan dengan menghidupkan simpul ‘P’.

2.   Fungsi pembatas dipanggil kembali dengan masukan string “ALP”. Namun fungsi mengembalikan -99 karena tidak ditemukan kata yang diawali “ALP”. Simpul dibunuh, lalu backtrack ke simpul ‘L’.

Algoritma Backtracking
 
            Salah satu algoritma yang dapat dipakai untuk mempermudah pencarian anagram suatu kata adalah algoritma backtracking. Selain algoritma bactracking, pembuatan anagram juga membutuhkan algoritma string matching yang tepat, karena kata-kata dalam sebuah anagram harus memiliki makna, dalam hal ini algoritma string matching yang tepat dapat membantu untuk mencari kata yang dibuat dalam database kamus yang tersedia, sehingga anagram dapat dibuat dengan lebih cepat dan efektif.


Algoritma backtracking pertama kali diperkenalkan oleh D.H. Lehmer pada tahun 1950. Dalam perkembangannya beberapa ahli seperti RJ Walker, Golomb, dan Baumert menyajikan uraian umum tentang backtracking dan penerapannya dalam berbagai persoalan dan aplikasi. Algoritma backtracking (runut balik) merupakan salah satu metode pemecahan masalah yang termasuk dalam strategi yang berbasis pencarian pada ruang status. Algoritma backtracking bekerja secara rekursif dan melakukan pencarian solusi persoalan secara sistematis pada semua kemungkinan solusi yang ada (Aho, Hopcroft, dan Ullman, 1983, hal:327).


Oleh karena algoritma ini berbasis pada algoritma Depth-First Search (DFS), maka pencarian solusi dilakukan dengan menelusuri suatu struktur berbentuk pohon berakar secara preorder. Proses ini dicirikan dengan ekspansi simpul terdalam lebih


Algoritma backtracking mempunyai prinsip dasar kemungkinan solusi. Perbedaan utamanya adalah pada ide dasarnya, semua solusi dibuat dalam bentuk pohon solusi (pohon ini tentunya berbentuk abstrak) dan algoritma akan menelusuri pohon tersebut secara DFS sampai ditemukan solusi yang layak. Nama backtrack didapatkan dari sifat algoritma ini yang memanfaat karakteristik himpunan solusinya yang sudah disusun menjadi suatu pohon solusi. Agar lebih jelas bisa dilihat pada pohon solusi seperti gambar berikut:


Misalkan pohon diatas menggambarkan solusi dari suatu permasalahan. Untuk mecapai solusi (5), maka jalan yang ditempuh adalah (1,2,5), demikian juga dengan solusi-solusi yang lain. Algoritma backtrack akan memeriksa mulai dari solusi yang pertama yaitu solusi (5). Jika ternyata solusi (5) bukan solusi yang layak maka algoritma akan melanjutkan ke solusi (6). Jalan yang ditempuh ke solusi (5) adalah (1,2,5) dan jalan untuk ke solusi (6) adalah (1,2,6). Kedua solusi ini memiliki jalan awal yang sama yaitu (1,2). Jadi daripada memeriksa ulang dari (1) kemudian (2) maka hasil (1,2) disimpan dan langsung memeriksa solusi (6). Pada pohon yang lebih rumit, cara ini akan jauh lebih efisien daripada brute-force. Pada beberapa kasus, hasil perhitungan sebelumnya harus disimpan, sedangkan pada kasus yang lainnya tidak perlu.

Penggunaan terbesar backtrack adalah untuk membuat AI (Artificial Intelligence) pada board games. Dengan algoritma ini program dapat menghasilkan pohon sampai dengan kedalaman tertentu dari current status dan memilih solusi yang akan membuat langkah-langkah yang dapat dilakukan oleh user akan menghasilkan pohon solusi baru dengan jumlah pilihan langkah terbanyak. Cara ini dipakai sebagai

AI yang digunakan untuk dynamic problem solving.

 
Beberapa kegunaan yang cukup terkenal dari algoritma backtrack dari suatu masalah “statik” adalah untuk memecahkan masalah N-Queen problem dan maze solver. N-Queen problem adalah bagaimana cara meletakkan bidak Queen catur sebanyak N buah pada papan catur atau pada papan ukuran NxN sedemikian rupa sehingga tidak ada satu bidakpun yang dapat memangsa bidak lainnya dengan 1 gerakan. Meskipun mungkin terdapat lebih dari satu solusi untuk masalah ini, tetapi pencarian semua solusi biasanya tidak terlalu diperlukan, tetapi untuk beberapa kasus tertentu diperlukan pencarian semua solusi sehingga didapatkan solusi yang optimal.


Maze solver adalah bagaimana cara mencari jalan keluar dari suatu maze (labirin) yang diberikan. Pada maze yang sederhana dimana field yang dibentuk dapat direpresentasikan dalam bentuk biner dan pada setiap petak maksimal terdapat 4 kemungkinan: atas, kanan, bawah, dan kiri. Untuk masalah ini biasanya solusi pertama yang ditemukan bukanlah solusi yang paling optimal sehingga untuk mendapatkan hasil yang optimal dibutuhkan pencarian terhadap seluruh kemungkinan solusi. Hal ini disebabkan oleh urutan pencarian yang telah ditetapkan dalam program apakah menyelidiki kemungkinan ke arah atas dahulu atau ke arah lainnya dahulu (Putra, Sardjito, Lawrence, 2006, hal:1).


Algoritma String Matching (Pencocokan String)

 
           Algoritma string matching adalah sebuah algoritma yang digunakan dalam pencocokkan suatu pola kata tertentu terhadap suatu kalimat atau teks panjang. Algoritma string matching sendiri dapat dilakukan dengan beberapa cara tertentu, antara lain cara Brute Force dan cara Knuth-Morris-Pratt (KMP) (Brassard dan Bratley, 1988, hal:211).
Algoritma-algoritma pencocokan string dapat diklasifikasikan menjadi tiga bagian menurut arah pencariannya, yaitu :

1)      Dari arah yang paling alami, dari kiri ke kanan, yang merupakan arah untuk membaca, algoritma yang termasuk kategori ini adalah:

a)      Algoritma Brute Force

Cara Brute Force dilakukan dengan membandingkan seluruh elemen karakter pada pola dengan kalimat atau teks panjang, dimulai pada elemen karakter pertama pada kalimat tersebut. Jika tidak sesuai maka pembandingan dimulai dengan elemen kedua dari kalimat tersebut.

b)      Algoritma dari Morris dan Pratt, yang kemudian dikembangkan oleh Knuth, Morris, dan Pratt

Cara KMP dilakukan dengan menghitung fungsi pinggiran dari pola terlebih dulu dan kemudian akan dilakukan perbandingan antara pola dan elemen pertama dari kalimat, jika tidak sesuai, maka perbandingan tidak dilakukan pada elemen kedua, namun tergantung dari nilai yang akan dikeluarkan oleh fungsi pinggiran tersebut (Baase, 1988, hal:213).


2)      Dari kanan ke kiri, arah yang biasanya menghasilkan hasil terbaik secara praktikal, contohnya adalah:

a)      Algoritma dari Boyer dan Moore, yang kemudian banyak dikembangkan, menjadi Algoritma turbo Boyer-Moore, Algoritma tuned Boyer-Moore, dan Algoritma Zhu-Takaoka


3)      Dari arah yang ditentukan secara spesifik oleh algoritma tersebut, arah ini menghasilkan hasil terbaik secara teoritis, algoritma yang termasuk kategori ini adalah:

a)      Algoritma Colussi

b)      Algoritma Crochemore-Perrin

 sumber : repository.usu.ac.id/bitstream/123456789/20874/.../Chapter%20II.pdf