BAB II TINJAUAN TEORI Pada Bab ini, diberikan penjelasan mengenai teori dasar yang berkaitan dengan pelaksanaan tugas akhir. Tinjauan teori yang dibahas dalam bab ini adalah basis data, pemodelan data, normalisasi basis data, MMORPG, dan arsitektur client-server. II.1 Basis Data Bagian ini akan menjelaskan dua buah konsep basis data yaitu basis data relasional dan basis data berorientasi objek. Dua buah jenis basis data tersebut masing-masing memiliki konsep dan model yang berbeda satu sama lain. Masing-masing jenis akan memiliki metode sendiri baik dalam penyimpanan, pengambilan, ataupun pengelolaan data. Penjelasan konsep basis data ini akan digunakan sebagai bahan analisis mengenai konsep basis data yang cocok bagi Massively Multiplayer Online RolePlaying Game. II.1.1 Basis Data Relasional Basis data adalah suatu koleksi data yang menyimpan informasi yang relevan terhadap suatu enterprise [SIL02]. Data dalam basis data disimpan secara sistematis sehingga dapat digunakan oleh program komputer untuk menjawab pertanyaan atau menyelesaikan permasalahan. Basis data relasional adalah basis data yang sesuai dengan model relasional. Model data adalah sekumpulan dari kakas konseptual untuk menggambarkan data, hubungan antar data, semantik data, dan batasan konsistensi [SIL02]. Model relasional pertama kali diperkenalkan oleh E. F. Codd dalam paper-nya sebagai model matematika yang didefinisikan dalam logika predikat dan teori himpunan [COD70]. Saat ini, model relasional merupakan model data utama dalam aplikasi pemrosesan data komersial. Dalam model relasional, data terorganisasi sebagai relasi. Elemen dari relasi tersebut disebut tuple. Relasi dapat juga dilihat sebagai tabel, sedangkan sebuah tuple akan menjadi satu baris di dalam tabel. Nama kolom dari relasi disebut sebagai atribut. Sebuah atribut dapat diacu dengan namanya [GER95]. II-1 II-2 Dalam model data relasional, terdapat beberapa istilah yang digunakan. Sebuah skema basis data relasional adalah sekumpulan skema relasi yang memiliki nama. Skema basis data juga dapat mengandung definisi integrity constraint yang harus dipenuhi oleh instans basis data pada setiap waktu. Dengan kata lain, skema basis data adalah desain lojik dari suatu basis data. Sekumpulan relasi yang termasuk dalam skema basis data disebut juga sebagai relasi dasar (base relations). Instans basis data adalah suatu snapshot dari kondisi data di dalam basis data dengan skema tertentu pada satu waktu tertentu. Sebuah state basis data adalah suatu himpunan dari instans relasi, yaitu koleksi seluruh tuple dari setiap instans relasi pada suatu waktu tertentu. Sebagai contoh, sebuah skema relasi: Customer-schema = (customername, customer-street, customer-city), yang menyatakan definisi suatu bentuk relasi dengan atribut customer-name, customer-street, dan customer-city. Dari skema relasi tersebut dapat dibentuk suatu relasi: customer(Customer-schema), yang menyatakan customer merupakan relasi dari Customer-schema. Kemudian, pada suatu waktu tertentu, instans relasi customer dapat memiliki tuple-tuple tertentu, misalnya seperti pada Tabel II-1. Tabel II-1 Customer Relation customer-name Customer-street customer-city Adams Spring Pittsfield Brooks Senator Brooklyn Curry North Rye Glenn Sand Hill Woodside Model relasional juga memperkenalkan konsep key. Secara konseptual, sesuai dengan teori himpunan, tiap tuple dalam relasi adalah unik. Meskipun begitu, perbedaan antara tuple harus dapat diekspresikan melalui atributnya. Oleh karena itu, satu atau lebih atribut dari relasi harus bernilai sedemikian sehingga tiap tuple di relasi tersebut II-3 dapat diidentifikasi secara unik melalui atribut-atribut tersebut. Atribut-atribut yang menyatakan keunikan tuple dalam relasi disebut atribut key. Selain mendefinisikan struktur dari data, model relasional juga mendefinisikan caracara untuk memanipulasi data, yaitu dengan aljabar relasional dan kalkulus relasional, dan cara-cara untuk menspesifikasikan dan menjaga integritas data, yaitu dengan integrity constraint. Dengan model relasional, seorang perancang basis data dapat membuat representasi informasi yang konsisten. Model relasional sendiri memiliki beberapa kelebihan yang membuatnya banyak diadaptasi. Berikut ini adalah kelebihan-kelebihan model relasional: 1. Telah dipelajari secara luas, terbukti pada prakteknya, dan didasarkan oleh model teoretis formal. Hampir semua hal yang diketahui mengenai model relasional telah terbukti secara matematis. 2. Menyediakan pandangan abstrak mengenai data. Pada dasarnya, model relasional mengabstraksikan struktur fisik penyimpanan data dari struktur lojik data. Model relasional menyediakan cara untuk mendeskripsikan data dalam struktur yang lebih alami, dibandingkan dengan model yang ada sebelumnya (model hirarkis dan network), tanpa memaksa adanya struktur tambahan untuk representasi mesin [COD70]. 3. Menyediakan antarmuka yang deklaratif dengan kalkulus relasional. II.1.2 Basis Data Berorientasi Objek Salah satu teknik representasi data adalah dengan menggunakan paradigma berorientasi objek. Penjelasannya, paradigma ini merepresentasikan fakta-fakta di dunia nyata sebagai sekumpulan objek yang dikelompokkan berdasarkan kemiripan sifat-sifat yang dimilikinya. Pengelompokan tersebut pada akhirnya menghasilkan apa yang disebut sebagai kelas (class). Yang dimaksud sebagai sifat-sifat dalam objek adalah informasi-informasi atau atribut-atribut yang dimiliki oleh objek beserta operasi-operasi yang dapat dilakukan oleh objek tersebut [CAT91]. Paradigma ini populer digunakan dalam dunia pemrograman dan dianggap sebagai paradigma pemrograman modern menggantikan pemrograman prosedural. Hal ini II-4 terlihat dari maraknya penggunaan Java dan C++ sebagai bahasa pemrograman sudah mendukung pemrograman berorientasi objek. Beberapa kemampuan khusus yang dimiliki oleh jenis bahasa pemrograman ini adalah inheritance, enkapsulasi data (data encapsulation), identitas objek (objek identity), dan polimorfisme (polymorphism). Dengan berkembangnya paradigma pemrograman berorientasi objek, maka model data yang dipakai juga harus dikembangkan untuk menyesuaikannya. Sebelumnya model data yang sangat luas digunakan adalah model data relasional. Model data ini biasa digunakan dalam konsep basisdata relasional. Model data relasional bersifat memiliki tipe data sederhana, jumlah satuan data relatif kecil, dan biasanya memiliki fields yang bersifat atomik [SIL02]. Saat ini, model data relasional dianggap tidak dapat menyesuaikan lebih jauh dengan konsep berorientasi objek. Ada beberapa halangan yang sudah tidak bisa ditoleransi lagi jika menggunakan model data relasional dalam konsep berorientasi objek. Salah satu penyebabnya adalah ketidakmampuan model relasional menangani tipe data kompleks, dan solusinya adalah menggunakan model data berorientasi objek. Tipe data kompleks merupakan salah satu kebutuhan yang harus dipenuhi konsep berorientasi objek. Contoh sederhananya adalah alamat. Dalam model relasional, alamat direpresentasikan sebagai satuan data atomik bertipe string. Kondisi ini berarti menghilangkan detail dalam alamat yang mungkin saja dibutuhkan secara terpisah ketika mengeksekusi query, misalnya nama jalan, kode pos, atau kota dalam alamat. Ketika menggunakan model data yang sama alamat dipecah menjadi lebih dari satu komponen, maka representasinya dalam tabel relasional akan menjadi rumit. Konsekuensinya, eksekusi query pun akan menjadi lebih sulit [SIL02]. Contoh lainnya adalah ketika harus merepresentasikan atribut multivalued dari skema EntityRelationship (skema E-R), misalnya nomor telepon. Ketika seseorang memiliki nomor telepon lebih dari satu, maka akan terasa boros dan berlebihan jika melakukan normalisasi dengan membuat relasi baru dalam menangani hal ini. Secara kasar, objek merupakan representasi dari entitas dalam skema E-R. Paradigma ini didasarkan pada enkapsulasi data menjadi satu satuan unit. Sederhananya, suatu objek diasosiasikan atau berhubungan dengan hal-hal berikut [SIL02]: II-5 1. Satu atau lebih variabel (variable) mengandung informasi mengenai objek, dan satu atau lebih variabel tersebut dikorespondensikan sebagai atribut dalam skema E-R. 2. Satu atau lebih pesan (message) untuk respon objek. 3. Satu atau lebih metode (method) sebagai operasi yang dapat dijalankan terkait objek tersebut. Pada kondisi tertentu, ada kemungkinan bahwa terdapat lebih dari satu objek yang memiliki variabel, pesan, dan metode yang sama. Dalam hal ini, objek-objek serupa tersebut memiliki sebuah kelas (class) yang sama, dan setiap objek spesifik disebut sebagai instance. Selain itu, mungkin saja terjadi bahwa suatu kelas memiliki sifat lebih umum (superclass) dan lebih terspesialisasi (subclass) dimana subclass memiliki sebagian properti superclass, dan akhirnya disebut turunan dari superclass. Kondisi ini melahirkan konsep yang disebut sebagai inheritance. Konsep-konsep di atas merupakan hal yang penting dalam paradigma berorientasi objek. Untuk menangani model data berorientasi objek, muncullah sebuah konsep basisdata baru yang disebut basisdata berorientasi objek. Konsep basisdata ini memiliki kapabilitas untuk menangani konsep berorientasi objek dan berkorespondensi dengan pemrograman berorientasi objek. Basisdata berorientasi objek bisa menutupi kekurangan-kekurangan yang muncul pada basisdata relasional saat menangani objek. Dengan basisdata berorientasi objek, penyimpanan objek dapat dilakukan seutuhnya dalam bentuk objek, tidak dalam tabel relasi yang rumit seperti dalam basisdata relasional. Berikut adalah gambaran umum perbedaan penyimpanan objek dalam basisdata relasional dengan basisdata berorientasi objek: Basisdata relasional Basisdata berorientasi objek Gambar II-1 Gambar Penyimpanan Objek [DB406] II-6 II.2 Pemodelan Data Dalam ilmu komputer, pemodelan data adalah proses dalam membuat model data dengan mengaplikasikan teori data model untuk membentuk instans model data. Teori model data adalah sebuah deskripsi model data formal. Ketika data dimodelkan maka proses penstrukturan dan pengorganisasian data dilakukan. Struktur data tersebut kemudian diimplementasikan dalam sebuah basis data management system. Dalam proses penambahan untuk mendefinisikan dan mengorganisasikan data, pemodelan data akan memunculkan (baik secara eksplisit dan implisit) batasan-batasan dari data yang diletakkan dalam struktur [DAT06]. Mengatur kuantitas besar dalam data terstruktur maupun tidak terstruktur merupakan fungsi utama dari sistem informasi. Model data menggambarkan struktur data untuk penyimpanan dalam basis data management system. Model data biasanya tidak menggambarkan data tidak terstruktur, seperti dokumen word processing, email, gambar, audio, dan video. II.2.1 Model Data Instan dari dari model data[DAT06] bisa berupa satu dari : 1. Skema konseptual (model data) menggambarkan semantik dari domain yang menjadi cakupan dari model data. Sebagai contoh, model data dari area kerja dari sebuah organisasi atau industri. Model ini terdiri dari kelas entitas (merepresentasikan beberapa hal utama dalam domain) dan relationship (hubungan atara pasangan entitas). Skema konseptual membuat spesifik beberapa jenis fakta atau proporsi yang bisa diekspresikan melalui model. 2. Skema logis menggambarkan semantik, seperti yang direpresentasikan dengan sebuah teknologi manipulasi data secara khusus. Skema ini bisa terdiri dari deskripsi dari tabel dan kolom, kelas berorientasi objek, XML, dan lain-lain 3. Skema fisik menggambarkan struktur fisik dimana data akan disimpan. Hal ini berkaitan erat dengan partisi, CPU, tablespaces, dan lain-lain Sebagai salah satu referensi dalam pemodelan data, dilihat lebih jauh sebuah kerangka alternatif Zachman Framework [ZAC08]. Instans model data bisa berupa salah satu dari : II-7 1. Skema model data konseptual, mencakup kelas entitas 2. Skema model data kontekstual, menggambarkan semantik dari organisasi. Skema ini terdiri dari relationship (hubungan antara pasangan kelas entitas) 3. Skema model data logis, direpresentasikan dengan sebuah teknologi manipulasi data khusus. Skema ini bisa terdiri dari deskripsi dari tabel dan kolom, kelas berorientasi objek, XML, dan lain-lain 4. Skema model data fisik, menggambarkan bagaimana dan tempat data akan disimpan. Hal ini berkaitan erat dengan partisi, CPU, tablespaces, dan lain-lain 4. Pendefinisian data, kode aktual dari sebuah basis data dalam platform tertentu. 5. Manipulasi data, menggambarkan operasi-operasi yang diaplikasikan dalam skema. II.2.2 Entity Relationship Model Entity Relationship Model (ERM) adalah metode pemodelan skema data relasional yang digunakan untuk memodelkan sistem dan batasannya dalam pendekatan topdown. Pendekatan ini biasa digunakan dalam Relational Database Design. Diagram yang dibentuk menggunakan metode ini disebut Entity Relationship Diagram atau ERD. ERM adalah representasi abstrak konseptual dari dari data terstruktur. Hasil dari Entity Relationship Model adalah ERD [PET84]. Tahap pertama dari desain sistem informasi menggunakan model ini selama requirement analysis untuk menggambarkan kebutuhan informasi atau tipe informasi yang akan disimpan dalam basis data. Teknik pemodelan data bisa digunakan dalam menggambarkan ontology (sebuah overview dan pengklasifikasian dari persetujuan user dan hubungannya) untuk universe of discourse (area kerja). Ada beberapa konvensi untuk ERD [PET76]. Konvensi utama dari ERD adalah : 1. Entitas merepresentasikan objek diskrit. Entitas bisa direpresentasikan dalam kata benda. Entitas direpresentasikan dalam bentuk kotak bersisi empat 2. Relasi menggambarkan bagaimana dua atau lebih entitas saling berhubungan. Relasi bisa direpresentasikan dalam kata kerja. Relasi bisa direpresentasikan dalam bentuk diamonds yang dihubungkan dengan garis masing-masing ke entitas yang terhubung. II-8 3. Entitas dan relasi bisa memiliki atribut. 4. Setiap entitas harus memiliki atribut unik yang biasa disebut primary key. 5. ERD tidak terdiri dari hanya satu entitas atau satu relasi. ERD terdiri dari kumpulan entitas dan relasi yang berhubungan 6. Associative Entity digunakan untuk menyelesaikan permasalahan dari dua entitas dengan relasi banyak ke banyak 7. Unary Relaionship adalah sebuah relasi antara beberapa baris dari tabel. II.3 Normalisasi Basis Data Normalisasi Basis data adalah teknik untuk mendesain tabel-tabel basis data relasional untuk meminimalisasi duplikasi dari informasi akhir dan untuk merancang basis data dalam menghadapi masalah logis. struktural, dan anomali data. Sebagai contoh, ketika banyak instans dari informasi yang sama terdapat pada tabel maka kemungkinan konsistensi data ketika di-update akan sulit dan akan menyebabkan integritas data yang hilang. Tabel yang sudah dinormalisasi akan memiliki kemungkinan yang lebih kecil untuk mendapatkan masalah tersebut, karena struktur normalisasi akan membuat data menjadi satu instans saja [SIL02]. Semakin tinggi derajat normalisasi akan melibatkan lebih banyak tabel dan menciptakan kebutuhan untuk melakukan join yang akan mengurangi performansi. Teori basis data menggambarkan derajat normalisasi akan meningkat dengan seiringnya kesuksesan normalisasi. Tabel dalam kondisi 3NF secara konsekuen akan memenuhi aturan kondisi 2NF, tetapi tidak sebaliknya. II.3.1 Permasalahan yang diselesaikan oleh normalisasi Sebuah tabel yang tidak dinormalisasi mungkin akan memiliki kekurangan dalam konsistensi dari berbagai hal dan anomali mencakup operasi data [SIL02]. 1. Informasi bisa diekspresikan dalam banyak record sehingga proses update akan menghasilkan inkonsistensi secara logis (anomali update). 2. Terdapat kondisi fakta tidak bisa disimpan secara keseluruhan (anomali insert). 3. Terdapat kondisi penghapusan data menyebabkan penghapusan pada fakta yang tidak ingin dihapus (anomali delete). II-9 Secara ideal, basis data relasional harus didesain dengan memikirkan kemungkinan update, insert, dan, delete anomali. Bentuk normal dari teori basis data relasional menyediakan panduan untuk memutuskan apakah desain sudah dapat menghadapi anomali tersebut. Terdapat kemungkinan untuk membenarkan desain yang tidak normal untuk menjadi normal dengan cara normalisasi. II.3.2 Functional Dependency Functional Dependency (FD) adalah batasan dari relasi yang legal. FD memberikan cara untuk mengekspresikan fakta kasus yang akan dimodelkan dalam basis data [SIL02]. FD bisa digunakan dalam dua cara: 1. Menguji relasi untuk melihat apakah relasi tersebut legal di bawah himpunan FD yang ada. Jika relasi R legal di bawah himpunan FD, maka dapat dikatakan bahwa R memuaskan seluruh isi dari himpunan FD. 2. Menspesifikkan batasan dari himpunan relasi yang legal. Harus diperhatikan bahwa setiap relasi harus memuaskan seluruh isi dari himpunan FD yang ada. Sebuah cara untuk mengidentifikasi FD dengan lebih jelas adalah dengan mengikuti aksioma Amstrong yang berisi: 1. Aturan reflexity, jika a adalah kumpulan atribut dan b adalah bagian dari a, maka aÆb. 2. Aturan augmentation, jika a Æ b dan c adalah kumpulan dari atribut maka ca Æ cb. 3. Aturan transitivity, jika a Æ b dan b Æ c maka a Æ c. Selain terdapat aturan tambahan yang juga diturunkan dari aksioma Amstrong, yaitu: 1. Aturan Union, jika a Æ b dan a Æ c maka a Æ bc. 2. Aturan Decomposition, jika a Æ bc maka a Æ b dan a Æ c. 3. Aturan Pseudotransitivity, jika a Æ b dan cb Æ d maka ac Æ d Untuk mengurangi usaha yang digunakan untuk menguji pelanggaran yang ada. Himpunan FD bisa dibentuk dalam bentuk yang lebih sederhana. Bentuk paling sederhana dari himpunan FD disebut kondisi canonical cover. Dalam canonical cover perlu didefinisikan atribut ekstra yang ada dalam himpunan FD. Cara menguji apakah sebuah atribut bisa dinyatakan atribut ekstra adalah: II-10 1. Atribut A adalah atribut ekstra di a jika A adalah bagian a dan F = (F - {aÆb}) U {(a – A) Æ b}. 2. Atribut A adalah atribut ekstra di b jika A adalah bagian b dan F = (F - {aÆb}) U {(a Æ b-A)} Untuk merubah himpunan FD dalam kondisi canonical cover dilakukan algoritma: Fc = F Repeat Gunakan aturan union untuk mengganti dependency dalam Fc dengan bentuk: a1Æb1 dan a1Æb2 dengan a1 Æ b1b2 Cari FD aÆb dalam Fc yang memiliki atribut ekstra, jika ditemukan buang atribut ekstra tersebut. Until Fc tidak berubah lagi II.3.3 Derajat Normalisasi Derajat normalisasi terdiri dari beberapa derajat. Derajat normal menggambarkan kriteria untuk menghadapi inkonsistensi dan anomali [SIL02]. 1. First Normal Form Suatu relasi disebut 1NF jika kondisi semua nilai atributnya harus sederhana atau atomik yang tidak bisa dibagi-bagi lagi (tidak boleh ada atribut yang komposit atau multivalue) 2. Second Normal Form a. Dibuat berdasarkan full functional dependency (ketergantungan fungsional penuh) b. Berada dalam bentuk normal pertama (1NF) dan setiap atribut bukan kunci bergantung penuh pada kunci primer c. Di dalam tabel tidak ada redudansi atau pengulangan data dan null value 3. Third Normal Form a. Harus berada dalam bentuk normal ke dua (2NF) b. Ketergantungan field-field yang bukan PK adalah harus secara mutlak (full-dependent). Artinya harus (ketergantungan secara transitif) 4. Boyce-Codd Normal Form tidak ada transitive dependency II-11 a. Secara praktis, tujuan rancangan basis data adalah cukup sampai pada level 3NF. Akan tetapi untuk kasus-kasus tertentu kita bisa mendapatkan rancangan yang lebih baik lagi apabila bisa mencapai ke BCNF b. Setiap atribut kunci (key) pada suatu relasi adalah kunci kandidat c. Kunci kandidat adalah atribut-atribut dari entitas yang mungkin dapat digunakan sebagai kunci (key) atribut d. BCNF hampir sama dengan 3NF, dengan kata lain setiap BCNF adalah 3NF II.4 Massively Multiplayer Online Role-Playing Game Bagian ini akan membahas tentang dasar pengetahuan dari Massively Multiplayer Online Game (MMORPG). MMORPG akan dicoba digambarkan pada bagian ini. Literatur yang ditemukan untuk MMORPG tidak banyak sehingga memaksa penulis untuk lebih menganalisis karakteristik dari MMORPG. II.4.1 Definisi Massive Multiplayer Online Role-Playing Game (MMORPG) MMORPG adalah suatu jenis permainan berbasiskan konsep permainan Role Playing Game yang bisa dimainkan dari berbagai tempat dan waktu oleh banyak pemain [WIS07]. Untuk lebih memahami bentuk permainan MMORPG yang berbasiskan konsep permainan RPG, akan dibahas terlebih dahulu konsep RPG. (Wikipedia) II.4.2 Role-Playing Game (RPG) RPG adalah suatu jenis permainan dimana pemainnya akan memainkan karakter buatan dan akan menjalankannya untuk mengikuti alur cerita. Dalam RPG seorang pemain akan bebas mengontrol karakternya untuk mengikuti alur cerita yang disediakan oleh sistem permainan. Dalam RPG, permainan tidak akan selalu mengarah pada satu cerita baku karena pemain akan mengontrol keberjalanan cerita sesuai dengan keinginannya dalam menjalankan karakternya. Komponen RPG Komponen- komponen yang membangun suatu permainan RPG bisa dibagi menjadi dua jenis yaitu komponen utama dan komponen pendukung. Karakter dan cerita II-12 merupakan komponen utama dalam RPG sedangkan komponen pendukungnya terdiri dari banyak hal diantaranya dunia permainan, daerah, lingkungan, non-playable character, dan barang. 1. Karakter Karakter adalah sebuah objek dalam permainan yang akan dikontrol penuh oleh pemain. Karakter akan dapat melakukan aksi sesuai dengan keinginan pemain. Pemain akan dapat memilih langkah-langkah yang dilaluinya untuk memilih alur cerita sehingga setiap pilihan langkahnya bisa saja merubah alur cerita. Karakter akan memiliki keberadaan status dalam dirinya ini merepresentasikan erat dengan keberadaan kemampuan dirinya. yang Representasi dimilikinya untuk mendukungnya dalam menjalani alur cerita permainan. 2. Alur Cerita Alur cerita adalah sebuah skenario permainan yang disediakan oleh sistem permainan. Alur cerita pada RPG biasanya diturunkan menjadi tugas-tugas yang berkaitan. Tugas-tugas yang berkaitan ini akan merangkaikan sebuah cerita bagi si pemain untuk dinikmati. Tugas-tugas yang dilakukan oleh pemain biasanya akan memberikan efek pada si pemain dan alur cerita selanjutnya. Efek yang terjadi setelah pemain menyelesaikan satu tugas nantinya akan memberikan pilihan tugas-tugas baru dan pemain bisa memilihnya untuk melanjutkan alur ceritanya. 3. Dunia Permainan Dunia permainan adalah dunia yang menjadi latar dari permainan itu dilakukan. Dunia bisa diartikan dalam artian teritorial (daerah) dan lingkungan. Dalam pengertian daerah, dunia permainan akan dibagi-bagi menjadi bagian-bagian daerah yang bisa dikunjungi oleh pemain. Dalam pengertian lingkungan, dunia permainan akan berupa suasana keramaian ataupun gambar dan musik yang mendukung permainan II-13 4. Non-Playable Character (NPC) NPC adalah objek-objek dalam permainan yang biasanya memiliki sifat yang sama dengan karakter dan hidup dalam permainan. NPC dalam permainan bisa dibagi menjadi dua bagian besar yaitu NPC bukan musuh dan NPC musuh. NPC bukan musuh NPC bukan musuh adalah objek dalam permainan yang memiliki kecerdasan buatan untuk mendukung permainan. NPC pada permainan biasanya memiliki tugas untuk : a. Berjualan barang NPC ini bertugas untuk berinteraksi dengan pemain untuk melakukan penjualan barang atau pembelian barang dari pemain b. Memberikan misi NPC ini bertugas memberikan tugas pada pemain untuk diselesaikan pemain dan biasanya juga akan memberikan imbalan pada pemain. c. Mendukung misi NPC ini bertugas menjadi sarana pendukung permainan dalam rangka pemain dalam menyelesaikan tugas. Jika pemain berinteraksi dengan NPC jenis ini pada saat menjalankan tugas yang memang berhubungan dengan NPC ini biasanya akan memberikan efek yang berhubungan dengan tugas yang sedang dijalani. d. Tidak berguna NPC ini biasanya hanya memiliki kecerdasan untuk berinteraksi singkat dengan pemain. Interaksi yang terjadi dengan NPC jenis ini tidak akan memiliki efek pada perjalanan alur cerita. NPC jenis ini akan cenderung digunakan sebagai penunjuk jalan, penjelas keadaan atau cerita, pendukung suasana. NPC musuh NPC musuh adalah objek dalam permainan yang memiliki kecerdasan buatan untuk melawan pemain. NPC musuh pada permainan biasanya dibagi berdasarkan sifatnya : a. Pasif NPC musuh ini tidak akan menyerang pemain walaupun pemain mendekatinya. NPC musuh ini biasanya akan menyerang pemain ketika pemain memancingnya untuk melakukan serangan pada pemain. b. Aktif NPC musuh ini akan selalu menyerang pemain waktu pemain mendekatinya. II-14 5. Barang Barang adalah suatu jenis objek dalam permainan yang berupa berbagai macam benda. Barang bisa dikelompokkan menjadi dua buah barang yaitu: a. Barang Tugas Barang tugas adalah suatu jenis barang yang biasa digunakan untuk menyelesaikan tugas b. Barang Biasa Barang biasa adalah suatu jenis barang yang bisa digunakan sepanjang permainan selama kondisi masih mendukung untuk menggunakan barang tersebut II.4.3 Transformasi RPG menjadi MMORPG MMORPG merupakan permainan bergenre RPG dan bisa dimainkan oleh banyak orang. Dari kebanyakan MMORPG, dapat disimpulkan bahwa MMORPG berjalan di atas komputer yang terhubung oleh jaringan. Banyak pemain dari banyak lokasi terhubung lewat jaringan sehingga bisa memainkan MMORPG dengan bersamasama. Konsep permainan yang mendasari MMORPG tetap sama dengan RPG tetapi ada perubahan yang menjadi poin kelebihan MMORPG. 1. Satu Dunia dan Satu Waktu untuk Banyak Pemain Dalam MMORPG, satu dunia permainan akan dimasuki oleh banyak pemain dari berbagai tempat. Mereka harus menggunakan daerah dan lingkungan yang sama untuk mencapai tujuannya. Dalam mencapai tujuannya masing-masing, pemain harus bisa menggunakan resource yang digunakan juga oleh banyak pemain lain. Semua pemain akan tersinkronisasi lokasi dan kegiatannya pada satu komputer server yang menangani dunia permainan secara keseluruhan. 2. Interaksi Sosial Antar Pemain Dalam MMORPG, pemain bisa saling berinteraksi. Interaksi yang dilakukan bisa berbagai macam bergantung pada basis permainan. Interaksi yang terjadi antar pemain membuat bentuk alur cerita menjadi semakin beragam. Interaksi yang mungkin terjadi antar pemain adalah seperti berbincang-bincang, bertransaksi (jual beli barang), bertarung, dan lain sebagainya. Dengan adanya konsep interaksi antar II-15 pemain pada permainan, membuat MMORPG semakin kelihatan seperti kehidupan nyata. II.4.4 Sejarah MMORPG MMORPG adalah kelas baru dari domain lingkungan Online multi pemain yang memungkinkan banyak pemain bisa berinteraksi dengan sesamanya dan mencapai tujuan yang terstruktur. Multi-User Domain (MUD) yang pertama yaitu sebuah permainan petualangan dalam dunia yang tetap yang mendukung banyak pemain untuk masuk dalam waktu yang sama dibuat pada tahun 1979 oleh Roy Trubshaw dan Richard Bartle. MUD diturunkan dari tabel-top RPG seperti Dungeons and Dragons, dua jenis genre yang muncul pada waktu bersamaan, berkembang di awal tahun tujuh puluhan, dan menjadi populer selama tahun delapan puluhan. Masing-masing genre permainan memperbolehkan pemain untuk membentuk karakternya sendiri dengan basis atribut angka-angka (contoh : Strength, dexterity, inteligence) dan pekerjaan yang sesuai dengan template (contoh : Warrior, Cleric, Druid) dimana setiap template pekerjaan tersebut memiliki kelebihan dan kekurangan tersendiri. Alur permainan biasanya berkisar sekitar kombinasi dari story-telling dan optimasi logistik di bawah pekerjaan utama membunuh monster dan meningkatkan level serta kemampuan. Dalam RPGs, seorang administrator server mengontrol sejumlah kejadian dengan random yang mengambil referensi dari diagram serta tabel. Dalam MUDs, semua kejadian diatur oleh server. Sejalan dengan meningkatnya kapabilitas grafik dan proses dari PC modern serta didukung juga dengan aksebilitas yang semakin luas, maka memungkinkan pembuatan MUDs dengan grafik yang baik pada awal tahun sembilan puluhan. Ultima Online, diluncurkan pada tahun 1997 dan dikenali sebagai MMORPG yang pertama (kuat, grafik yang baik, lingkungan Online yang bisa mendukung ribuan pemain bermain pada waktu yang sama). Jumlah pemain aktif yang bisa didukung oleh Ultima adalah yang membedakan MMORPG dengan grafik MUDs. MMORPG yang kedua, EverQuest, diluncurkan pada tahun 1999, dengan cepat meraih 400 ribu pemain dan masih menjadi MMORPG yang paling populer di Amerika Utara sampai tahun 2004 walaupun ada sepuluh MMORG yang bermunculan setelahnya. II-16 II.4.5 Penggambaran Permainan MMORPG Dalam permainannya, sebuah karakter akan hidup dan berpetualang untuk mencari tujuan hidupnya masing-masing sementara dunia yang dipetualangi juga terus berjalan dengan berjalannya waktu. Dalam kehidupannya karakter ini akan bisa melakukan hal-hal yang biasanya bisa dilakukan manusia seperti makan, tidur, duduk, berpakaian, berjalan, dan lain sebagainya. Karakter yang dimainkan tersebut akan melakukan pertarungan dan menyelesaikan tugas-tugas yang ada sehingga kemampuannya akan terus naik dengan mekanisme level ataupun peningkatan status. Dalam dunia MMORPG sebuah karakter akan dapat berinteraksi dengan karakter lain yang dimainkan oleh player lain ataupun dengan karakter buatan yang memiliki kecerdasan buatan. Permainan MMORPG akan terhubung melalui jaringan dan nantinya akan membutuhkan server sebagai pusat data. Permainan bersifat konkuren dan sinergis dalam sudut pandang permain. Permainan MMORPG biasanya akan terus berlanjut secara kontinyu sehingga pemain dari berbagai tempat bisa terus memainkannya. Selain itu pemain dari tempat yang lain harus bisa melihat dunia yang sama dengan dunia yang dilihat dari sudut pandang pemain lain. Pemain atau pengguna harus membeli atau mendownload MMORPG yang spesifik dan membayar secara bulanan untuk mengakses server MMORPG. Pemain melihat dunia dalam grafik 3D real-time, dan menggunakan avatar (grafik manusia yang merepresentasikan pemain dalam permainan) untuk berinteraksi dengan lingkungan dan sesama pemain lain lewat kombinasi dari pemakaian mouse dan perintah keyboard. Komunikasi antar pemain dilakukan dengan chat dan salam beranimasi serta ekspresi-ekspresi. Dunia MMORPG sangat luas dan direalisasikan dalam detil grafis yang baik. Biasanya dibutuhkan banyak waktu untuk mengelilingi seluruh dunia MMORPG, walaupun biasanya ada sarana transportasi yang memungkinkan pemain untuk berpindah tempat dengan cepat antar lokasi dalam dunia. Pemain diberikan kontrol terhadap penampilan karakter atau avatar mereka. Sebagai contoh, dalam MMORPG Star Wars Galaxies, pemain diperbolehkan mengatur jenis kelamin, ras (Wookie, Manusia, Rodian, dan lain-lain), warna kulit, umur, tinggi badan, berat II-17 badan, bentuk tubuh, raut muka, raut alis, bentuk hidung, bentuk mata, warna mata, warna rambut, bentuk mulut, bentuk bibir. Pemain memilih profesinya dari sejumlah pilihan profesi yang disediakan oleh permainan MMORPG. Perubahan dan karakteristik pekerjaan bergantung pada desain lingkungan MMORPG. Setiap profesi memiliki kelebihan dan kekurangannya tersendiri. Banyak MMORPG yang didesain untuk membuat pemain harus mengkolaborasikan profesinya untuk dapat mencapai tujuannya. Pada permulaannya, MMORPG banyak berlatar khayalan abad pertengahan dan hanya berorientasi pada pertarungan sehingga profesi yang ada hanya berkisar pada profesi pertarungan seperti warior, archer, healer, dan lain-lain. Dewasa ini, MMORPG sudah memberikan alternatif profesi yang beragam. Sebagai contoh, dalam Star Wars Galaxy, seseorang bisa menjadi musisi, juru masak, penata rambut, ahli pengobatan, atau praktisi politik. Goal dan Penghargaan dalam MMORPG biasanya menggunakan penjadwalan rasio random berdasarkan kondisi operan. Pada tahap awal, pertambahan kemampuan sangat cepat atau hampir terjadi secara instan. Semakin lama pertambahan kemampuan menjadi semakin sulit dan semakin tidak terjangkau. Sebagian besar bentuk kemahiran dalam MMORPG membutuhkan kerjasama yang baik antara banyak pengguna, biasanya saling menguntungkan. Dalam Star Wars Galaxies. Pemain yang bertugas sebagai surveyor menempatkan bahan dasar kimia dan mineral di sepanjang planet-planet. Untuk menuai hasilnya, surveyors harus membeli peralatan pertambangan dari seorang pemain yang bekerja sebagai arsitek. Alternatif lainnya, surveyors bisa menjual tempat tersebut kepada para penambang. Surveyors yang memilih cara untuk menuai hasil bisa memilih untuk menjadi resource brokers yang menjual resource tersebut ke artisan atau manufacturers yang membutuhkan resources untuk memproduksi barang. Pertarungan, kesehatan, atau pakaian dijual di pasar bebas dan dibeli oleh pedagang, dokter, ataupun elemen profesi yang lainnya. Pada akhirnya, pemain memutuskan bentuk pengembangan yang akan dikejar, kekayaan, dan kompleksitas lingkungan dan mengeliminasi kebutuhan untuk menyelesaikan tujuan atau jalan cerita. Setiap pemain dimotivasi dengan berbagai II-18 kombinasi dari seluruh kemungkinan penghargaan. Hasilnya adalah petualangan, cerita, dan yang paling penting adalah interaksi dan relasi yang terjadi antar pemain. Secara fungsional lingkungan permainan dibentuk untuk memfasilitasi jaringan sosial dan hubungannya. Contohnya dengan pertarungan grup (kolaborasi sementara antar pemain), guild (organisasi tetap yang dibentuk oleh pemain), dan aliansi ideologi (persetujuan antar grup ras dan guilds). Kolaborasi berorientasi pertarungan dalam MMORPG menjadi semakin kompleks ketika pemain sudah berkembang melebihi pemain pemula. Biasanya dalam skenario berorientasi pertarungan, empat sampai delapan pemain akan berkonfrontasi dengan banyak musuh yang didukung oleh artificial intelegence. Grup dari pemain ini biasanya disusun dari komposisi yang seimbang dan harus berkomunikasi serta menggunakan kemampuan individunya sesuai strategi yang ditentukan grup. Dalam kondisi yang kritis, beberapa musuh akan kabur dari pertarungan. Dalam dungeon, semakin dalam tempatnya maka semakin sulit musuh yang akan dihadapi. Jika sukses, maka pemain akan kembali dengan kekuatan yang bertambah. Kekuatan yang ditambahkan pada pemain biasanya dibagi dengan pembagi jumlah pemain dalam grup. Semakin banyak pemain yang bertarung bersama, semakin sedikit penghargaan yang diterima. Kolaborasi antar pemain menjadi salah satu daya tarik tersendiri dalam MMORPG sehingga banyak ditonjolkan dan menjadi tujuan utama permainan. (white paper) II.5 Arsitektur Komputer Client-Server Dalam Komputasi, arsitektur jaringan adalah desain dari jaringan komputer. Dalam telekomunikasi, pengertian dari arsitektur jaringan memiliki arti [COU01]: 1. Prinsip dasar desain, konfigurasi fisik, organisasi fungsional, prosedur operasional, dan format data digunakan sebagai dasar dari desain, konstruksi, modifikasi, dan operasi dari jaringan komunikasi. 2. Struktur dari jaringan komunikasi yang sudah ada termasuk konfigurasi fisik, fasilitas, struktur operasional, prosedur operasional, dan format data yang digunakan. II-19 Dengan pengembangan dari komputasi terdistribusi, pengertian dari arsitektur jaringan juga digunakan untuk memperjelas klasifikasi dan implementasi dari arsitektur komputasi terdistribusi. Sebagai contoh adalah arsitektur aplikasi dari jaringan telepon PSTN sudah menjelaskan tentang Advanced Intelligent Network. Banyak jumlah pengklasifikasian tetapi semuanya berujung pada dumb network (contohnya internet) dan intelligent computer network (contohnya jaringan telepon PSTN). Jaringan lain terdiri dari berbagai macam elemen dari dua tipe klasik ini untuk membuat mereka tepat untuk berbagai macam tipe dari aplikasi. Sekarang contextaware network yang merupakan sintesis dari dua yang sudah banyak dikenal karena kemampuannya untuk mengkombinasikan elemen terbaik dari keduanya. Jaringan komputer disusun dari banyak komputer yang terhubung dan saling berkomunikasi di atas perantara kabel atau wireless untuk membagi data dan resource lain. Sebagai contoh, jaringan komputer rumah mungkin terdiri dari dua atau lebih komputer yang membagi file dan printer dengan menggunakan jaringan. Ukuran dan scalability dari jaringan komputer dapat dideterminasi dengan medium fisik komunikasi dan software yang mengontrol komunikasi . Client-server adalah arsitektur komputer yang terdiri dari client dan server dan hampir selalu diimplementasikan dalam jaringan komputer. Setiap client atau server terhubung pada sebuah jaringan yang juga bisa disebut sebagai node atau simpul. Bentuk paling dasar dari arsitektur client-server hanya terdiri dari dua tipe simpul yaitu client dan server. Tipe arsitektur seperti ini sering disebut sebagai two-tier. Arsitektur ini mendukung komputer untuk melakukan proses sharing file dan resource. Setiap instans dari software pada client bisa mengirimkan permintaan data ke satu atau lebih server yang terhubung lewat jaringan. Dalam sisi lain, server dapat menerima permintaan data, memprosesnya, dan mengembalikan permintaan data tersebut ke client. Walaupun konsep ini bisa diaplikasikan untuk banyak permasalahan untuk banyak jenis aplikasi, tetapi arsitektur dasar aplikasi tetap sama. Dewasa ini, client yang paling sering ditemui adalah browser web. Server biasanya diimplementasikan sebagai web servers, server basis data, dan server email. Permainan online biasanya mengikuti arsitektur client-server juga. Dalam kasus II-20 MMORPG, server biasanya dikelola oleh perusahaan yang menjual permainan. Dalam kasus lain, salah satu pemain akan bertindak sebagai server dan menjalankan konfigurasi permainan dalam mode server. II.5.1 Karakteristik Client-Server Pada bagian ini akan diberikan beberapa karakteristik client-server [COU01]. Karakteristik dari client adalah : 1. Menginisiasi request data 2. Menunggu dan menerima balasan request data 3. Biasanya terhubung ke sedikit server dalam satu waktu 4. Biasanya berinteraksi langsung dengan pengguna akhir menggunakan graphical user interface. Karakteristik dari server adalah : 1. Bersifat pasif 2. Menunggu permintaan dari client 3. Setelah menerima permintaan, memproses mereka, dan memberikan pengembalian permintaan dari client 4. Biasanya menerima koneksi dari sejumlah besar client 5. Biasanya tidak berinteraksi langsung dengan pengguna akhir II.5.2 Arsitektur Multi-tiered Beberapa desain lebih rumit dan terdiri dari tiga jenis simpul yaitu: 1. Client 2. Server aplikasi yang memproses data untuk client 3. Server basis data yang menyimpan daya untuk server aplikasi Konfigurasi ini disebut arsitektur three-tier. Konfigurasi ini adalah tipe yang paling umum dalam arsitektur client-server. Desain yang mencakup lebih dari dua tier sering disebut multi-tiered atau n-tiered. Keuntungan dari arsitektur n-tiered ini adalah lebih scalable, karena mereka menyeimbangkan dan mendistribusikan proses di antara multiple node, redundant node, dan server khusus. Hal ini adalah cara untuk meningkatkan performansi dan reliability karena proses bisa diakomodasi secara simultan. II-21 Kerugian dari arsitektur n-tiered adalah : 1. Semakin banyak pekerjaan dalam jaringan, semakin terbebani beban lalu lintas jaringan 2. Semakin sulit untuk memrogram dan mengujinya daripada arsitektur two-tier karena banyak devices yang digunakan untuk menyelesaikan permintaan client II.5.3 Keuntungan Arsitektur Client-Server Keuntungan dari arsitektur client-server adalah [COU01]: 1. Dalam banyak kasus, arsitektur client-server memungkinkan langkah dan tanggung jawab dari sistem komputasi untuk mendistribusikan proses di antara beberapa komputer bebas yang saling mengidentifikasi satu sama lain lewat jaringan. Hal ini memberikan keuntungan tambahan untuk arsitektur ini yaitu mengurangi perawatan. Sebagai contoh : dimungkinkan untuk digantikan, dibenarkan jika rusak, ditingkatkan kualitasnya, ataupun untuk melakukan pemindahan server tanpa mempengaruhi client. Kebebasan dalam perubahan ini biasa disebut juga sebagai enkapsulasi. 2. Semua data disimpan di server. Server memiliki tingkat keamanan yang lebih tinggi daripada client lain. Server bisa lebih baik mengontrol akses dan resource untuk menjamin hanya client tertentu yang bisa mengakses atau merubah data. 3. Ketika data di-sentralisasi, meng-update beberapa data akan lebih mudah untuk diatur. 4. Banyak teknologi client-server yang tersedia, sudah didesain dengan tingkat keamanan yang baik, kemudahan penggunaan, dan friendliness dalam user interface 5. Arsitektur ini berfungsi untuk banyak jenis client dengan kapabilitas yang berbeda II.5.4 Kerugian Arsitektur Client-Server Kerugian dari arsitektur client-server adalah : 1. Kemacetan lalu lintas jaringan bisa menjadi masalah sejak kemunculan paradigma client-server. Seiring dengan banyaknya permintaan data client yang simultan ke server, bisa terjadi overloading pada server. Dibandingkan dengan jaringan peer to peer, bandwidth jaringan semakin meningkat jika simpul ditambahkan. II-22 2. Paradigma client-server memiliki kekurangan pada sisi robustness dari jaringan peer to peer (P2P). Di bawah client-server, jika terjadi kegagalan server maka permintaan client tidak bisa diselesaikan. Pada jaringan P2P, resource bisa didistribusikan di antara banyak simpul. Walaupun satu atau banyak simpul keluar dan mengacuhkan proses download file, simpul lain yang tersisa masih terus melakukan proses pen-download-an data.