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:
[email protected],
[email protected],
[email protected] 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. 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.
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.
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
Namun, permasalahan kemudian muncul ketika bisnis diterapkan dalam sebuah pembelajaran. Banyaknya teori dan strategi 1
sehingga tidak permainan.
mengganggu
jalannnya
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 realtime strategy games, MMO sports game, MMO racing, MMO rhythm game, MMO management game, MMO social game, realworld simulations, dan MMO turn-based strategy game.
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.
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.
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.
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.
3. Massively Multiplayer Online Game (MMOG)
Kebutuhan yang akan dipenuhi oleh permainan ini adalah: dapat menggunakan fungsi login, register, logout, membuat 2
Gambar 2. Diagram use case in-game MilkGame
auction baru, menambahkan bid, memproduksi item, membeli item, memindahkan item, berkomunikasi dengan pemain lainnya, melakukan upgrade headquarter, memberikan donasi ke gudang, dan menyewa gudang.
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.
Diagram use case pre-game MilkGame dapat dilihat pada gambar 1. Diagram tersebut menggambarkan aktivitas yang dapat dilakukan oleh seorang user diluar permainan.
Komponen komunikasi jaringan MilkGame dibangun dalam lingkungan pemrograman dengan spesifikasi sebagai berikut:
Login
Register
Player
Logout
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.
Arsitektur Gambar 3 merupakan ilustrasi arsitektur komunikasi jaringan pada MilkGame yang akan dibangun.
Diagram use case in-game MilkGame dapat dilihat pada gambar 2. Diagram tersebut menggambarkan aktivitas yang dapat dilakukan oleh seorang pemain pada permainan. Add Bid
Create New Auction
<<uses>>
Produce Item Rent Warehouse Buy Item Donate to Warehouse Player
Transport Item
Upgrade Headquarter Communicate To Other User
<<extend>>
Message
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.
<<extend>>
Chat
3
Gambar 3. Arsitektur komunikasi jaringan MilkGame
Implementasi Server MilkGame Berikut ini adalah implementasi server yang digunakan oleh MilkGame. Proses ini meliputi beberapa tahap yaitu:
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.
1. menerima data dari pemain dan melakukan parsing data 2. melakukan transaksi data pada database 3. mengirim data ke pemain
Processor : bertugas memproses data yang diterima dari pemain. Fungsi ini dijalankan saat data telah di-parsing oleh Message Handler.
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); }
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.
Gambar 4. Kode untuk menerima data dan melakukan parsing data public Bid getBidByID(int id) { Bid bid = null;
Data Handler : bertugas melakukan pengolahan data ke server database melalui hibernate ORM. Fungsi ini dijalankan saat service yang dibutuhkan sedang berjalan.
for(int i = 0;i < dbBids.size();i++) { bid = dbBids.get(i);
Hibernate ORM : bertugas melakukan transaksi data ke server database melalui manager hibernate.
if(bid.getBidId() == id) return bid; } return null; }
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.
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);
4
bidManager = managerFactory.getBidManager(session);
N
Waktu Pengiriman Data (dalam ms)
Waktu Penerimaan Data (dalam ms)
8
63415672951753
63415672952115
362
45,25
16
63415673779647
63415673780326
679
42,44
128
63415674329565
63415674333695
4130
36,26
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);
Selisih
RataRata
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.
if (!AppContext. getTaskManager(). shouldContinue()) { AppContext.getTaskManager(). scheduleTask(this, 100); return; } break; ... } } ... }
Berikut ini adalah hasil uji coba terhadap MilkGame untuk menguji fungsionalitas permainan.
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.
Gambar 4. Uji coba proses lelang
Pengambilan waktu pengiriman dan waktu penerimaan data menggunakan fungsi DateTime.Now.Ticks.
5
Gambar 5. Uji coba proses transportasi 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.
Gambar 6. Uji coba proses pembelian barang dari supplier
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.
Gambar 7. Uji coba proses produksi barang
6
[3] ____,____, RedDwarf Server: Open Source for Online Game Universe, http://reddwarfserver.org, diakses tanggal 25 Juli 2010.
7