1
Perancangan dan Implementasi Manajemen & Proses
Data pada Business Game “Milk Game”
Ony Octavianto, Suhadi Lili, Ahmad Rusdiansyah
Jurusan Teknik Informatika,Fakultas Teknologi Informasi
Institut Teknologi Sepuluh Nopember
Email:
mas_ony@cs.its.ac.id
,
suhadi.lili@gmail.com
,
arusdianz@gmail.com
Abstrak
Penerapan pendidikan bisnis dalam dunia pendidikan merupakan hal yang sangat penting. Namun demikian, seringkali proses pembelajaran tidak dapat berjalan dengan lancar dikarenakan metode pembelajaran yang kurang interaktif. Berangkat dari permasalahan tersebut, dibangunlah sebuah game bisnis MMO(Massive Multiplayer Online) 3D berbasis lelang bernama “Milk Game” yang diharapkan dapat membantu proses pembelajaran pengetahuan bisnis, khususnya Supply Chain Management.
Untuk membangun sebuah permainan MMO dibutuhkan server persisten yang dapat menangani request dari banyak player secara bersamaan serta dapat mengatasi kendala ketika terjadi kegagalan, baik dari sisi klien, server maupun jaringan. Implementasi tugas akhir ini menggunakan RedDwarfServer sebagai framework untuk membangun sebuah komunikasi jaringan pada permainan MMO.
Kata kunci: MMO, business game, RedDwarfServer.
1. Pendahuluan
Bisnis dan pengetahuan tentang bisnis bukan lagi merupakan hal yang eksklusif bagi individu tertentu saja. Era globalisasi telah memaksa setiap individu untuk mampu bersaing dalam dunia bisnis dengan strateginya masing-masing. Tanpa pengetahuan bisnis yang cukup, sebuah usaha tidak dapat berkembang sebagaimana mestinya. Sebaliknya, pengetahuan yang baik dapat menjadi pendukung dalam pengaturan proses bisnis, minimalisasi biaya, dan optimasi sumber daya usaha.
Namun, permasalahan kemudian muncul ketika bisnis diterapkan dalam sebuah pembelajaran. Banyaknya teori dan strategi
bisnis serta sifat pengajaran yang monoton menyebabkan pengetahuan akan bisnis sulit untuk dipahami dengan baik. Dengan demikian, diperlukan adanya suatu metode pembelajaran yang lebih inovatif dan kreatif serta lebih mengedepankan praktek dalam bisnis. Salah satu solusi yang sesuai adalah dalam wujud massive multiplayer online
business game.
Untuk membangun sebuah permainan MMO diperlukan sebuah server persisten yang dapat menangani request dari banyak pemain sekaligus, menjamin bahwa data yang dikirim oleh klien pasti sampai pada server serta dapat menangani gangguan yang mungkin timbul dari sisi klien, server, maupun jaringan
2 sehingga tidak mengganggu jalannnya permainan.
2. Business Game
Business game adalah permainan di
mana satu atau lebih pemain bertujuan untuk mencapai satu tujuan umum[1]. Selain itu,
business game adalah sebuah simulasi,
berdasarkan model ekonomi yang dirancang, permainan bertujuan menciptakan realitas pasar seakurat mungkin.
Business game, yang lahir pada tahun
1950-an, memiliki tujuan pendidikan dan evaluasi. European Business Institute menjabarkan tujuan utama business game, yaitu meningkatkan kemampuan dalam mengambil keputusan pada waktu yang terbatas dan efisiensi dari pilihan yang diambil, membiasakan risiko dan ketidakpastian, mengajarkan teknik manajemen, integrasi dari berbagai fungsi perusahaan dan melatih untuk bias merencanakan keputusan strategis. Karena setiap pemain tunggal adalah bagian dari tim, dia bisa mengembangkan semangat tim solid yang merupakan konsep utama dalam kehidupan seorang profesional, walaupun hal ini seringkali diabaikan oleh alat pendidikan klasik.
Business game sangat bervariasi,
sesuai dengan pengembangan yang berbeda dan lingkungan aplikasi. Business game dapat diklasifikasikan dalam beberapa jenis, berdasarkan pengolahan data (manual atau otomatis), jumlah pemain (pemain tunggal atau multi player), jenis model (fungsional atau antar-fungsional), jumlah produk dan / atau pasar dan jumlah keputusan strategis. Banyak perusahaan terkemuka, memberikan pelatihan kepada staf mereka menggunakan
business game sebagai alat pembelajaran.
3. Massively Multiplayer Online
Game (MMOG)
Sebuah massively multiplayer game
online (juga disebut MMOG) adalah
permainan multiplayer yang mampu mendukung ratusan atau ribuan pemain secara simultan[2]. Dengan syarat, mereka terhubung dengan jaringan, dan terdapat fitur setidaknya satu dunia persisten. MMOG belum tentu dimainkan pada komputer pribadi. Sebagian besar game konsol baru, termasuk PSP, PlayStation 3, Xbox 360, Nintendo DSi dan Wii dapat mengakses internet sehingga dapat menjalankan MMOG. Terdapat beberapa jenis MMOG saat ini, antara lain MMO role-playing
game, MMO first-person shooter, MMO real-time strategy games, MMO sports game, MMO
racing, MMO rhythm game, MMO
management game, MMO social game, real-world simulations, dan MMO turn-based strategy game.
4. RedDwarf Server
RedDwarf Server merupakan solusi
open source pengembangan server untuk massively multiplayer online game(MMOG) [3]
. RedDwarf Server adalah kelanjutan dari Project Darkstar, sebuah proyek open source yang didukung dan dikelola oleh Sun Microsystems. Setelah Oracle mengakuisisi Sun, dukungan untuk Project Darkstar dihentikan. Untuk melanjutkan pengembangan proyek, komunitas mengganti nama codebase terbaru dari repositori Project Darkstar dan dirilis sebagai RedDwarf Server.
5. Implementasi Sistem
Milk Game menggunakan RedDwarf Server untuk mengimplementasikan server pada permainan. Server terhubung ke database Microsoft SQL Server 2008 untuk untuk menjaga persistensi data permainan. Koneksi antar server dengan database melalui hibernate ORM.
Kebutuhan yang akan dipenuhi oleh permainan ini adalah: dapat menggunakan fungsi login, register, logout, membuat
3
auction baru, menambahkan bid, memproduksi
item, membeli item, memindahkan item, berkomunikasi dengan pemain lainnya, melakukan upgrade headquarter, memberikan donasi ke gudang, dan menyewa gudang.
Diagram use case pre-game MilkGame dapat dilihat pada gambar 1. Diagram tersebut menggambarkan aktivitas yang dapat dilakukan oleh seorang user diluar permainan.
Gambar 1. Diagram use case pre-game MilkGame Use case pada gambar 1 menunjukkan aktivitas- aktivitas yang dapat dilakukan oleh seorang user diluar permainan: melakukan
login, register, dan logout.
Diagram use case in-game MilkGame dapat dilihat pada gambar 2. Diagram tersebut menggambarkan aktivitas yang dapat dilakukan oleh seorang pemain pada permainan.
Gambar 2. Diagram use case in-game MilkGame
Use case pada gambar 2 menunjukkan aktivitas- aktivitas yang dapat dilakukan oleh seorang user pada permainan: membuat
auction baru, menambahkan bid, memproduksi
item, membeli item, memindahkan item, berkomunikasi dengan pemain lainnya, melakukan upgrade headquarter, memberikan donasi ke gudang, dan menyewa gudang.
Komponen komunikasi jaringan MilkGame dibangun dalam lingkungan pemrograman dengan spesifikasi sebagai berikut:
Microsoft Windows Seven Ultimate sebagai sistem operasi.
NetBeans 6.8 sebagai tool utama pemrograman dengan JDK versi 1.6 update 18.
Microsoft SQL Server 2008 sebagai server database.
Star UML sebagian alat desain untuk membuat pemodelan UML.
Arsitektur
Gambar 3 merupakan ilustrasi arsitektur komunikasi jaringan pada MilkGame yang akan dibangun.
Player Logout Register Login Player Add Bid Transport Item Donate to Warehouse Produce Item
Create New Auction
Buy Item
Rent Warehouse
Communicate To Other User
Chat Message
<<extend>> <<extend>> <<uses>>
4 Gambar 3. Arsitektur komunikasi jaringan
MilkGame
Dari gambar tersebut dapat diketahui bahwa komponen komunikasi jaringan MilkGame yang akan dibangun terdiri dari:
Message Handler : bertugas
melakukan parsing data yang didapat dari pemain. Fungsi ini dijalankan saat server menerima data dari pemain.
Processor : bertugas memproses data
yang diterima dari pemain. Fungsi ini dijalankan saat data telah di-parsing oleh Message Handler.
DB Transaction Manager : bertugas
membuat sebuah service untuk melakukan proses yang membutuhkan waktu eksekusi lebih dari 100ms. Fungsi ini dijalankan saat paket data yang diterima dari pemain sudah lengkap.
Data Handler : bertugas melakukan
pengolahan data ke server database melalui hibernate ORM. Fungsi ini dijalankan saat service yang dibutuhkan sedang berjalan.
Hibernate ORM : bertugas melakukan
transaksi data ke server database melalui
manager hibernate.
Task Handler : bertugas melakukan
pengiriman data ke pemain. Task Handler merupakan alternatif dari manager, yaitu untuk melakukan proses dengan waktu eksekusi lebih dari 100ms. Perbedaan antara Task Handler dengan DB Transaction Manager adalah Task Handler memecah proses menjadi beberapa subproses(divide and conquer) dan selanjutnya subproses-subproses tersebut dikerjakan secara berurutan, sedangkan DB Transaction Manager menyediakan sebuah proses asynchronous untuk mengerjakan sebuah proses secara langsung. Fungsi ini dijalankan saat data yang akan dikirimkan sudah tersimpan di database.
Implementasi Server MilkGame
Berikut ini adalah implementasi server yang digunakan oleh MilkGame. Proses ini meliputi beberapa tahap yaitu:
1. menerima data dari pemain dan melakukan parsing data
2. melakukan transaksi data pada database
3. mengirim data ke pemain
Selanjutnya akan diberikan potongan kode dalam java untuk melakukan proses-proses tersebut:
public void parsePacket(ByteBuffer packet, IProcessor processor)
{
EOPCODE code = this.getOpCode(packet); this.parsePacket(code, packet,
processor); }
Gambar 4. Kode untuk menerima data dan melakukan parsing data
public Bid getBidByID(int id) {
Bid bid = null;
for(int i = 0;i < dbBids.size();i++) { bid = dbBids.get(i); if(bid.getBidId() == id) return bid; } return null; }
public void addBid(Bid dbBid) { IHibernateSession session = HibernateSessionManager.getInstance().sessi on(); IBidManager bidManager = managerFactory.getBidManager(session); bidManager.save(dbBid); dbBids.add(dbBid); }
public void editBid(Bid dbBid) { IHibernateSession session = HibernateSessionManager.getInstance().sessi on(); IBidManager bidManager = managerFactory.getBidManager(session); bidManager.update(dbBid);
5 bidManager = managerFactory.getBidManager(session); bidManager.refresh(getBidByID(dbBid.getBidI d())); }
Gambar 5. Kode untuk melakukan transaksi data pada database
public void run() throws Exception {
ByteBuffer buff; if(data instanceof Bid) {
Bid dbBid = (Bid)data; while(counterColumn < 6) { case 0: buff = Messages. createBidBididPkt(dbBid); channelRef.get(). send(buff); if (!AppContext. getTaskManager(). shouldContinue()) { AppContext.getTaskManager(). scheduleTask(this, 100); return; } break; ... } } ... }
Gambar 6. Kode untuk mengirim data ke pemain
4. Uji Coba dan Pembahasan
Berikut ini adalah hasil uji coba terhadap server MilkGame untuk menguji performa dalam mengirim, memproses, dan mengirim data. Uji coba performa ini ditujukan untuk mengamati kemampuan server dalam menangani request data dalam jumlah besar. Performa ini akan dilihat berdasarkan waktu dari data dikirim dari klien, diterima server kemudian di proses, data dikirim dari server, sampai data kembali ke klien. Tipe data yang digunakan berupa string dengan panjang kira-kira 30-40 karakter.
Pengambilan waktu pengiriman dan waktu penerimaan data menggunakan fungsi DateTime.Now.Ticks. N Waktu Pengiriman Data (dalam ms) Waktu Penerimaan Data (dalam ms) Selisih Rata-Rata 8 63415672951753 63415672952115 362 45,25 16 63415673779647 63415673780326 679 42,44 128 63415674329565 63415674333695 4130 36,26
Tabel 1. Hasil uji coba performa Kesimpulan Hasil Uji Coba
Dari hasil uji coba pada tabel 1, dapat dilihat bahwa server MilkGame dapat menerima data sampai 128 string secara bersamaan secara stabil. Untuk penerimaan, pemrosesan, dan pemgiriman string sampai 128 string didapat rata-rata sekitar 40an ms per 1 data string.
Berikut ini adalah hasil uji coba terhadap MilkGame untuk menguji fungsionalitas permainan.
6 Gambar 5. Uji coba proses transportasi barang
Gambar 6. Uji coba proses pembelian barang dari
supplier
Gambar 7. Uji coba proses produksi barang
5. Simpulan
Dari hasil pengamatan selama perancangan, implementasi, dan proses uji coba perangkat lunak yang dilakukan, penulis mengambil kesimpulan sebagai berikut:
Permainan MilkGame dapat menjadi sarana pelatihan yang baik untuk pembelajaran Supply Chain
Management , terutama dalam
pengklasifikasian domain permasalahan Supply Chain
Management, dengan cara
menerapkan domain permasalahan
Supply Chain Management pada
sistem permainan MilkGame.
RedDwarfServer dapat digunakan sebagai framework untuk mengimplementasikan sistem manajemen dan proses data pada MilkGame.
Untuk mempertahankan kinerja dalam menangani request dari klien dalam jumlah besar secara bersamaan, dapat diatasi dengan membuat:
o Task untuk sebuah proses yang dapat dipecah menjadi subproses.
o Manager untuk proses yang tidak dapat dipecah menjadi subproses.
Untuk menangani error yang terjadi saat permainan sedang berjalan, dapat diatasi dengan fungsi disconnected pada framework RedDwarfServer. Fungsi disconnected adalah fungsi yang disediakan oleh RedDwarfServer agar error yang terjadi pada permainan tidak menghentikan permainan.
Daftar Pustaka
[1] ____,____, The Business Game,
http://www.thebusinessgame.it/en/See?pa ge=whatis, diakses tanggal 25 Juli 2010. [2] ____,____, Massively Multiplayer Online
Game, http://
en.wikipedia.org/wiki/Massively_multipl ayer_online_game, diakses tanggal 25 Juli 2010.
7
[3]
____,____, RedDwarf Server: Open Source for Online Game Universe,http://reddwarfserver.org, diakses tanggal 25 Juli 2010.