Kuis V-Class Essay Jaringan komputer

NAMA : KHAERUNISA NUR RIZKIA
KELAS : 4IA16
NPM : 53410878
MATA KULIAH : JARINGAN KOMPUTER LANJUT
DOSEN : M. ACHSAN ISA AL ANSHORI, SKOM., MMSI

1. Apakah yang dimaksud dengan komunikasi broadband ?

Jawab  :

Secara umum, broadband dideskripsikan sebagai komunikasi data yang memiliki kecepatan tinggi, kapasitas tinggi. Rentang kecepatan layanan bervariasi dari 128 Kbps s/d 100 Mbps. Tidak ada definisi internasional spesifik untuk Broadband dalam Draft RPM Penataan Pita Frekuensi Radio untuk Keperluan Layanan Akses Pita Lebar Berbasis Nirkabel  (Broadband Wireless Access) diusulkan definisi Broadband adalah layanan telekomunikasi nirkabel yang memiliki kemampuan kapasitas diatas kecepatan data primer “2 Mbps” (E1) sesuai ITU-R F.1399-1.

Teknologi yang digunakan dalam broadband, yaitu:

  • DSL
  • Modem Kabel
  • Ethernet
  • Wireless Access
  • Fiber Optik
  • W-LAN
  • V-SAT
  • dsb.

2. Sebutkan keuntungan SONET !

Jawab:

Keuntungan SONET (Synchronous Optical Networking) adalah dapat memberikan fungsionalitas yang bagus baik pada jaringan kecil, medium, maupun besar.

  • Collector rings menyediakan interface ke seluruh aplikasi, termasuk local office, PABX, access multiplexer, BTS, dan terminal ATM.
  • Manejemen bandwith berfungsi untuk proses routing, dan manajemen trafik.
  • Jaringan backbone berfungsi menyediakan konektifitas untuk jaringan jarak jauh.

3. Jelaskan prinsip kerja dari ATM !

Jawab:

Pada ATM (Automatic Teller Machine), informasi dikirim dalam blok data dengan panjang tetap yang disebut sel. Sel merupakan unit dari switching dan transmisi. Untuk mendukung layanan dengan rate yang beragam, maka pada selang waktu tertentu dapat dikirimkan sel dengan jumlah sesuai dengan rate-nya. Sebuah  sel terdiri atas information field yang berisi informasi pemakai dan sebuah header.  Informasi field dikirim dengan transparan oleh jaringan ATM dan tak ada proses yang dikenakan padanya oleh jaringan. Urutan sel dijaga oleh jaringan, dan sel diterima dengan urutan yang sama seperti pada waktu kirim. Header berisi label yang melambangkan informasi jaringan seperti addressing dan routing.

Dikatakan merupakan kombinasi dari konsep circuit dan packet switching, karena ATM memakai konsep connection oriented dan mengggunakan konsep paket berupa sel. Setiap hubungan mempunyai kapasitas transfer (bandwidth) yang ditentukan sesuai dengan permintaan pemakai, asalkan kapasitas atau resource-nya tersedia. Dengan resource yang sama, jaringan mampu atau dapat membawa beban yang lebih banyak karena jaringan mempunyai kemampuan statistical multiplexing.

4. Apakah yang dimaksud dengan DSL?

Jawab:

DSL(Digital Subsriber Line) adalah Teknologi akses yang menggunakan saluran kabel tembaga eksisting untuk layanan broadband. DSL merupakan teknologi akses dengan perangkat khusus pada central office dan pelanggan yang memungkinkan transmisi broadband melalui kabel tembaga, teknologi ini sering disebut juga dengan istilah teknologi suntikan atau injection technology. Contoh operator yang telah menggelar DSL di Indonesia adalah PT.Telkom dengan produknya dinamai dengan SPEEDY. Sehingga kabel telepon biasa yang telah ada dapat dipakai untuk menghantarkan data dalam jumlah yang besar dan dengan kecepatan yang tinggi. Telepon yang hanya menggunakan sebagai frekuensi yang mampu dihantarkan oleh kabel tembaga. Sedangkan DSL memanfaatkan lebih banyak frekuensi dengan membaginya (splitting), frekuensi yang lebih tinggi untuk data dan frekuensi yang lebih rendah untuk suara dan fax. Jarak pemakai ke CO menentukkan kecepatan DSL. Makin jauh jarak pemakai, kecepatan makin rendah

Sumber:

http://mirnarizki37.blogspot.com/2012/01/pengertian-dsl.html

https://docs.google.com/presentation/d/1sLCKLDef9hyrldP7gkhNGkNPRSRrZtIucAj7lY7gWrA/edit?pli=1#slide=id.p7

http://uniknown.wordpress.com/2011/06/08/26/

Kuis V-Class PG Jaringan Komputer

NAMA : KHAERUNISA NUR RIZKIA
KELAS : 4IA16
NPM : 53410878
MATA KULIAH : JARINGAN KOMPUTER LANJUT
DOSEN : M. ACHSAN ISA AL ANSHORI, SKOM., MMSI

 

1. Service yang cara kerjanya mirip dengan mengirim surat adalah :
a. Connection Oriented
b. Connectionless Oriented 
c. Semua jawaban benar 
d. Semua jawaban salah

2. Nama lain untuk Statistical Time Division Multiplexing (TDM) adalah :
a. Non-Intelligent TDM 
b. Synchronous TDM
c. Asynchromous TDM 
d. Semua jawaban benar

3. Hubungan laju transmisi data dengan lebar pita saluran transmisi adalah :
a. Laju transmisi naik jika lebar pita berkuran.
b. Laju transmisi naik jika lebar pita bertambah.
c. Laju transmisi tidak bergantung pada lebar pita.
d. Semua jawaban salah.

4. Teknik encoding Bipolar-AMI dan Pseudoternary termasuk dalam teknik :
a. Multilevel Binary 
b. NRZ 
c. Biphase 
d. Manchester

5. Jika dua frame ditransmisikan secara serentak maka akan menyebabkan terjadinya tubruklan. Kejadian ini dalam jaringan dikenal dengan istilah :
a. Contention 
b. Collision
c. Crash
d. Jabber

6. Salah satu protocol CSMA yang tidak terus menerus mendengarkan channel adalah :
a. 1-persistent 
b. p-persistent 
c. Nonpersistent
d. CSMA/CD

7. Salah satu protocol yang bebas dari tubrukan adalah :
a. Bit-Map 
b. CSMA 
c. Carrier Sense
d. ALOHA

8. Selective Repeater merupakan istilah lain dari :
a. Router 
b. Bridge 
c. Gateway
d. Repeater

9. Dalam pemeliharaan ring logis 802.4, frame kontrol yang bertugas untuk mengijinkan suatu stasiun untuk meninggalkan ring adalah :
a. Claim_token 
b. Who_follows 
c. Token
d. Set_Successor

10. Algoritma yang digunakan untuk menghindari kemacetan adalah :
a. Broadcast Routing 
b. Flow Control
c. Optimal Routing
d. Flooding Routing

11. Algoritma routing yang menggunakan informasi yang dikumpulkan dari subnet secara keseluruhan agar keputusannya optimal adalah :
a. Algoritma Global
b. Algoritma Lokal 
c. Algoritma Terisolasi 
d. Algoritma Terdistribusi

12. Keuntungan multiplexing adalah :
a. Komputer host hanya memerlukan satu I/O port untuk satu terminal
b. Komputer host hanya memerlukan satu I/O port untuk banyak terminal
c. Komputer host memerlukan banyak I/O port untuk banyak terminal
d. Komputer host memerlukan banyak I/O port untuk satu terminal

13. Jenis kabel UTP digunakan untuk jaringan Ethernet :
a. 10Base2 
b. 10Base5 
c. 10BaseT
d. Semua jawaban benar

14. Suatu algoritma routing yang tidak mendasarkan keputusan routingnya pada kondisi topologi dan lalulintas saat itu adalah :
a. Non adaptive 
b. Adaptive 
c. RCC
d. Hot potato

15. Data/message yang belum dienkripsi disebut dengan :
a. Plaintext 
b. Ciphertext
c. Auntext 
d. Choke Packet

16. Algoritma Kontrol Kemacetan yang menjaga jumlah paket tetap konstan dengan menggunakan permits yang bersirkulasi dalam subnet adalah :
a. Kontrol Arus 
b. Kontrol Isarithmic 
c. Pra Alokasi Buffer
d. Choke Packet

17. Sekumpulan aturan yang menentukan operasi unit-unit fungsional untuk mencapai komunikasi antar dua entitas yang berbeda adalah :
a. Sintaks 
b. Timing
c. Protokol 
d. Routing

18. Algoritma yang digunakan oleh transparent bridge adalah :
a. RCC 
b. Backward Learning
c. Flooding
d. Shortest path

19. Dalam model OSI internetworking membagi lapisan network menjadi beberapa bagian, kecuali
a. Intranet sublayer 
b. Access sublayer 
c. Internet sublayer
d. Enhanchement sublayer

20. Teknik time domain reflectometry digunakan pada standard IEEE:
a. 802.2 
b. 802.3
c. 802.4
d. 802.5

21. Suatu cara yang mempunyai kemampuan untuk menyedian privacy, authenticity, integrity dan pengamanan data adalah :
a. Enkripsi 
b. Antisipasi
c. Deskripsi
d. Semua jawaban salah

22. Tujuan adanya jaringan komputer adalah…..
a. Resource sharing 
b. Penghematan biaya
c. High reability 
d. Semua jawaban benar

23. Mengontrol suapaya tidak terjadi deadlock merupakan fungsi dari lapisan :
a. Network Layer 
b. Session Layer 
c. Data link Layer
d. Application Layer

24. Frame yang terjadi apabila suatu stasiun mentransmisikan frame pendek kejalur ring yang panjang dan bertubrukan atau dimatikan sebelum frame tersebut dikeluarkan. Frame ini disebut dengan istilah :
a. Orphan 
b. Beacon 
c. Pure
d. Semua jawaban salah

25. Wire center digunakan pada standar :
a. 802.2 
b. 802.3 
c. 802.4
d. 802.5

26. Komponen dasar model komunikasi adalah :
a. Sumber 
b. Tujuan
c. Media 
d. Semua benar

27. Di bawah ini termasuk Broadcast network :
a. Circuit Switching 
b. Paket Switching 
c. Satelit 
d. Semi Paket Switching

28. Paket radio termasuk golongan :
a. Broadcast 
b. Switched 
c. Publik
d. Semua benar

29. Di bawah ini termasuk guided media :
a. UTP 
b. Coaxial 
c. Fiber Optik
d. Semua benar

30. Modul transmisi yang sifatnya searah adalah :
a. PageR
b. Simpleks 
c. TV
d. Semua benar

Cybercrime

Cybercrime merupakan bentuk-bentuk kejahatan yang timbul karena pemanfaatan teknologi internet. Beberapa pendapat mengindentikkan cybercrime dengan computer crime. The U.S. Department of Justice memberikan pengertien computer crime sebagai:

 “…any illegal act requiring knowledge of computer technology for its perpetration, investigation, or prosecution”

 Pengertian tersebut identik dengan yang diberikan Organization of European Community Development, yang mendefinisikan computer crime sebagai:

“any illegal, unehtical or unauthorized behavior relating to the automatic processing and/or the transmission of data”

 Adapun Andi Hamzah (1989) dalam tulisannya “Aspek-aspek Pidana di Bidang komputer”, mengartikan kejahatan komputer sebagai:

 ”Kejahatan di bidang komputer secara umum dapat diartikan sebagai penggunaan komputer secara illegal”

Dari beberapa pengertian di atas, secara ringkas dapat dikatakan bahwa cybercrime dapat didefinisikan sebagai perbuatan melawan hukum yang dilakukan dengan menggunakan internet yang berbasis pada kecanggihan teknologi komputer dan telekomunikasi.

Karakteristik Cyber Crime

Cybercrime sendiri sebagai kejahatan yang muncul sebagai akibat adanya komunitas dunia maya di internet, memiliki karakteristik tersendiri yang berbeda dengan kedua model di atas. Karakteristik unik dari kejahatan di dunia maya tersebut antara lain menyangkut lima hal berikut:

  • Ruang lingkup kejahatan
  • Sifat kejahatan
  • Pelaku kejahatan
  • Modus Kejahatan
  • Jenis kerugian yang ditimbulkan

Selama ini dalam kejahatan konvensional, dikenal adanya dua jenis kejahatan sebagai berikut:

  • Kejahatan kerah biru (blue collar crime)

      Kejahatan ini merupakan jenis kejahatan atau tindak kriminal yang dilakukan secara konvensional seperti misalnya perampokkan, pencurian, pembunuhan dan lain-lain.

  • Kejahatan kerah putih (white collar crime)

      Kejahatan jenis ini terbagi dalam empat kelompok kejahatan, yakni kejahatan korporasi, kejahatan birokrat, malpraktek, dan kejahatan individu.

Jenis-jenis Cyber Crime

Berdasarkan jenis aktifitas yang dilakukannya

a. Unauthorized Access

Merupakan kejahatan yang terjadi ketika seseorang memasuki atau menyusup ke dalam suatu sistem jaringan komputer secara tidak sah, tanpa izin, atau tanpa sepengetahuan dari pemilik sistem jaringan komputer yang dimasukinya. Probing dan port merupakan contoh kejahatan ini.

b.  Illegal Contents

Merupakan kejahatn yang dilakukan dengan memasukkan data atau informasi ke internet tentang suatu hal yang tidak benar, tidak etis, dan dapat dianggap melanggar hukum atau menggangu ketertiban umum, contohnya adalah penyebaran pornografi.

c. Penyebaran virus secara sengaja

Penyebaran virus pada umumnya dilakukan dengan menggunakan email. Sering kali orang yang sistem emailnya terkena virus tidak menyadari hal ini. Virus ini kemudian dikirimkan ke tempat lain melalui emailnya.

d.  Data Forgery

Kejahatan jenis ini dilakukan dengan tujuan memalsukan data pada dokumen-dokumen penting yang ada di internet. Dokumen-dokumen ini biasanya dimiliki oleh institusi atau lembaga yang memiliki situs berbasis web database.

e. Cyber Espionage, Sabotage, and Extortion

Cyber Espionage merupakan kejahatan yang memanfaatkan jaringan internet untuk melakukan kegiatan mata-mata terhadap pihak lain, dengan memasuki sistem jaringan komputer pihak sasaran. Sabotage and Extortion merupakan jenis kejahatan yang dilakukan dengan membuat gangguan, perusakan atau penghancuran terhadap suatu data, program komputer atau sistem jaringan komputer yang terhubung dengan internet.

f. Cyberstalking

Kejahatan jenis ini dilakukan untuk mengganggu atau melecehkan seseorang dengan memanfaatkan komputer, misalnya menggunakan e-mail dan dilakukan berulang-ulang. Kejahatan tersebut menyerupai teror yang ditujukan kepada seseorang dengan memanfaatkan media internet. Hal itu bisa terjadi karena kemudahan dalam membuat email dengan alamat tertentu tanpa harus menyertakan identitas diri yang sebenarnya.

g.   Carding

Carding merupakan kejahatan yang dilakukan untuk mencuri nomor kartu kredit milik orang lain dan digunakan dalam transaksi perdagangan di internet.

h.  Hacking dan Cracker

Istilah hacker biasanya mengacu pada seseorang yang punya minat besar untuk mempelajari sistem komputer secara detail dan bagaimana meningkatkan kapabilitasnya. Adapun mereka yang sering melakukan aksi-aksi perusakan di internet lazimnya disebut cracker. Boleh dibilang cracker ini sebenarnya adalah hacker yang yang memanfaatkan kemampuannya untuk hal-hal yang negatif. Aktivitas cracking di internet memiliki lingkup yang sangat luas, mulai dari pembajakan account milik orang lain, pembajakan situs web, probing, menyebarkan virus, hingga pelumpuhan target sasaran. Tindakan yang terakhir disebut sebagai DoS (Denial Of Service). Dos attack merupakan serangan yang bertujuan melumpuhkan target (hang, crash) sehingga tidak dapat memberikan layanan.

i. Cybersquatting and Typosquatting

Cybersquatting merupakan kejahatan yang dilakukan dengan mendaftarkan domain nama perusahaan orang lain dan kemudian berusaha menjualnya kepada perusahaan tersebut dengan harga yang lebih mahal. Adapun typosquatting adalah kejahatan dengan membuat domain plesetan yaitu domain yang mirip dengan nama domain orang lain. Nama tersebut merupakan nama domain saingan perusahaan.

j.   Hijacking

Hijacking merupakan kejahatan melakukan pembajakan hasil karya orang lain. Yang paling sering terjadi adalah Software Piracy (pembajakan perangkat lunak).

k.  Cyber Terorism

Suatu tindakan cybercrime termasuk cyber terorism jika mengancam pemerintah atau warganegara, termasuk cracking ke situs pemerintah atau militer. Beberapa contoh kasus Cyber Terorism sebagai berikut :

  • Ramzi Yousef, dalang penyerangan pertama ke gedung WTC, diketahui menyimpan detail serangan dalam file yang di enkripsi di laptopnya.
  • Osama Bin Laden diketahui menggunakan steganography untuk komunikasi jaringannya.
  • Suatu website yang dinamai Club Hacker Muslim diketahui menuliskan daftar tip untuk melakukan hacking ke Pentagon.

Seorang hacker yang menyebut dirinya sebagai DoktorNuker diketahui telah kurang lebih lima tahun melakukan defacing atau mengubah isi halaman web dengan propaganda anti-American, anti-Israel dan pro-Bin Laden.

 

Berdasarkan motif kegiatan yang dilakukannya

a.   Cybercrime sebagai tindakan murni kriminal

Kejahatan yang murni merupakan tindak kriminal merupakan kejahatan yang dilakukan karena motif kriminalitas. Kejahatan jenis ini biasanya menggunakan internet hanya sebagai sarana kejahatan. Contoh kejahatan semacam ini adalah Carding, yaitu pencurian nomor kartu kredit milik orang lain untuk digunakan dalam transaksi perdagangan di internet. Juga pemanfaatan media internet (webserver, mailing list) untuk menyebarkan material bajakan. Pengirim e-mail anonim yang berisi promosi (spamming) juga dapat dimasukkan dalam contoh kejahatan yang menggunakan internet sebagai sarana. Di beberapa negara maju, pelaku spamming dapat dituntut dengan tuduhan pelanggaran privasi.

b.   Cybercrime sebagai kejahatan ”abu-abu”

Pada jenis kejahatan di internet yang masuk dalam wilayah ”abu-abu”, cukup sulit menentukan apakah itu merupakan tindak kriminal atau bukan mengingat motif kegiatannya terkadang bukan untuk kejahatan. Salah satu contohnya adalah probing atau portscanning. Ini adalah sebutan untuk semacam tindakan pengintaian terhadap sistem milik orang lain dengan mengumpulkan informasi sebanyak-banyaknya dari sistem yang diintai, termasuk sistem operasi yang digunakan, port-port yang ada, baik yang terbuka maupun tertutup, dan sebagainya.

 

Berdasarkan sasaran kejahatan

a. Cybercrime yang menyerang individu (Against Person)

Jenis kejahatan ini, sasaran serangannya ditujukan kepada perorangan atau individu yang memiliki sifat atau kriteria tertentu sesuai tujuan penyerangan tersebut. Beberapa contoh kejahatan ini antara lain :

  • Pornografi

Kegiatan yang dilakukan dengan membuat, memasang, mendistribusikan, dan menyebarkan material yang berbau pornografi, cabul, serta mengekspos hal-hal yang tidak pantas.

  • Cyberstalking

Kegiatan yang dilakukan untuk mengganggu atau melecehkan seseorang dengan memanfaatkan komputer, misalnya dengan menggunakan e-mail yang dilakukan secara berulang-ulang seperti halnya teror di dunia cyber. Gangguan tersebut bisa saja berbau seksual, religius, dan lain sebagainya.

  • Cyber-Tresspass

Kegiatan yang dilakukan melanggar area privasi orang lain seperti misalnya Web Hacking. Breaking ke PC, Probing, Port Scanning dan lain sebagainya.

 b.   Cybercrime menyerang hak milik (Againts Property)

Cybercrime yang dilakukan untuk menggangu atau menyerang hak milik orang lain. Beberapa contoh kejahatan jenis ini misalnya pengaksesan komputer secara tidak sah melalui dunia cyber, pemilikan informasi elektronik secara tidak sah/pencurian informasi, carding, cybersquating, hijacking, data forgery dan segala kegiatan yang bersifat merugikan hak milik orang lain.

c.  Cybercrime menyerang pemerintah (Againts Government)

Cybercrime Againts Government dilakukan dengan tujuan khusus penyerangan terhadap pemerintah. Kegiatan tersebut misalnya cyber terorism sebagai tindakan yang mengancam pemerintah termasuk juga cracking ke situs resmi pemerintah atau situs militer.

Contoh Kasus

  • Pada aplikasi facebook sering kali melihat tawaran untuk mengetahui “Siapa yang melihat profil Anda” dan para facebooker dengan rasa penasaran akan mengklik tautan yang disuguhkan. padahal sesungguhnya tautan tersebut adalah malware atau program jahat terbaru yang tengah beredar di facebook. Saat mengkliknya para facebooker akan diarahkan ke suatu aplikasi yang memiliki akses ke profil. Modus yang dilakukan : Cyber Espionage. Merupakan kejahatan yang memanfaatkan jaringan Internet untuk melakukan kegiatan mata-mata terhadap pihak lain, dengan memasuki sistem jaringan komputer (computer network system) pihak sasaran. Kejahatan ini biasanya ditujukan terhadap saingan bisnis yang dokumen ataupun data pentingnya (data base) tersimpan dalam suatu sistem yang computerized (tersambung dalam jaringan komputer).
  • Pelaku kejahatan membuat e-mail palsu seolah-olah e-mail tersebut berasal dari Perusahaan PayPal yang berisi permintaan untuk melakukan aktivasi ulang account PayPal korban melalui link ke website yang sudah disediakan. Pada email palsu ini, tombol Activer yang seharusnya mengarah ke website paypal.com malah ditujukan ke website tertentu yang sudah disediakan pelaku. Website palsu tersebut dibuat mirip dengan website PayPal yang asli. Korban yang kurang teliti akan memasukkan data PayPal-nya ke dalam website. Jika hal itu terjadi, maka pelaku akan mendapatkan data tersebut. Kasus ini bermodus: Phising. Phising adalah kegiatan memancing pemakai komputer di internet (user) agar mau memberikan informasi data diri pemakai (username) dan kata sandinya (password) pada suatu website yang sudah di-deface. Phising biasanya diarahkan kepada pengguna online banking. Isian data pemakai dan password yang vital yang telah dikirim akhirnya akan menjadi milik penjahat tersebut dan digunakan untuk belanja dengan kartu kredit atau uang rekening milik korbannya.
  • Perjudian online, pelaku menggunakan sarana internet untuk melakukan perjudian. Seperti yang terjadi di Semarang, Desember 2006 silam. Para pelaku melakukan praktiknya dengan menggunakan system member yang semua anggotanya mendaftar ke admin situs itu, atau menghubungi HP ke 0811XXXXXX dan 024-356XXXX. Mereka melakukan transaki online lewat internet dan HP untuk mempertaruhkan pertarungan bola Liga Inggris, Liga Italia dan Liga Jerman yang ditayangkan di televisi. Untuk setiap petaruh yang berhasil menebak skor dan memasang uang Rp 100 ribu bisa mendapatkan uang Rp 100 ribu, atau bisa lebih. Modus para pelaku bermain judi online. Adalah untuk mendapatkan uang dengan cara instan. Dan sanksi menjerat para pelaku yakni dikenakan pasal 303 tentang perjudian dan UU 7/1974 pasal 8 yang ancamannya lebih dari 5 tahun.

Kitab Undang Undang Hukum Pidana (KUHP)

  1. Pasal 362 KUHP yang dikenakan untuk kasus carding dimana pelaku mencuri nomor kartu kredit milik orang lain walaupun tidak secara fisik karena hanya nomor kartunya saja yang dengan menggunakan software card generator di Internet untuk melakukan transaksi di e-commerce. Setelah dilakukan transaksi dan barang dikirimkan, kemudian penjual yang ingin mencairkan uangnya di bank ternyata ditolak karena pemilik kartu bukanlah orang yang melakukan transaksi.
  2. Pasal 406 KUHP dapat dikenakan pada kasus deface atau hacking yang membuat sistem milik orang lain, seperti website atau program menjadi tidak berfungsi atau dapat digunakan sebagaimana mestinya.
  3. Pasal 282 dan 311 KUHP dapat dikenakan untuk kasus penyebaran foto atau film pribadi seseorang yang vulgar di Internet.
  4. Pasal 378 KUHP tentang Penipuan ( Penipuan melalui website seolah-olah menjual barang)
  5. Pasal 303 KUHP Perjudian (permainan judi online)

Undang Undang

  1. Undang-Undang No 8 Tahun 1997 tentang Dokumen Perusahaan, Pemerintah berusaha untuk mengatur pengakuan atas mikrofilm dan media lainnya (alat penyimpan informasi yang bukan kertas dan mempunyai tingkat pengamanan yang dapat menjamin keaslian dokumen yang dialihkan atau ditransformasikan. Misalnya Compact Disk – Read Only Memory (CD – ROM), dan Write – Once – Read – Many (WORM), yang diatur dalam Pasal 12 Undang-Undang tersebut sebagai alat bukti yang sah.
  2. Undang-Undang No 15 Tahun 2003 tentang Pemberantasan Tindak Pidana Terorisme. Selain Undang-Undang No. 25 Tahun 2003, Undang-Undang ini mengatur mengenai alat bukti elektronik sesuai dengan Pasal 27 huruf b yaitu alat bukti lain berupa informasi yang diucapkan, dikirimkan, diterima, atau disimpan secara elektronik dengan alat optik atau yang serupa dengan itu
  3. Undang-Undang No.19 Thn 2002 Tentang Hak Cipta, Khususnya tentang Program Komputer atau software
  4. Undang-Undang No.36 Thn 1999 tentang Telekomunikasi, ( penyalahgunaan Internet yang menggangu ketertiban umum atau pribadi).
  5. Undang-undang No.25 Thn 2003 Tentang Perubahan atas Undang-Undang No.15 Tahun 2002 Tentang Pencucian Uang.
  6. UU ITE Thn 2008 (Undang-Undang Informasi dan Transaksi Eletronik), Tentang penyampaian informasi, komunikasi, transaksi, dalam hal pembuktian serta perbuatan yang terkait dengan teknologi.

Sumber :

http://ranggablack89.wordpress.com/2012/04/01/cyber-crime-definisi-jenis-jenis-dan-cara-penanggulangannya/

http://adrianestih.wordpress.com/2011/01/29/pengertian-jenis-dan-modus-cyber-crime-2/

http://pengetahuanteknologikomputer.blogspot.com/

http://saiberkrim.blogspot.com/2013/04/penjelasan-tentang-cybercrime-beserta.html

http://capungtempur.blogspot.com/2012/04/pengertian-cyber-crime.html

Bioinformatika

Bioinformatika (bahasa Inggris: bioinformatics) adalah (ilmu yang mempelajari) penerapan teknik komputasional untuk mengelola dan menganalisis informasi biologis. Bidang ini mencakup penerapan metode-metode matematika, statistika, dan informatika untuk memecahkan masalah-masalah biologis, terutama dengan menggunakan sekuensDNA dan asam amino serta informasi yang berkaitan dengannya. Contoh topik utama bidang ini meliputi basis data untuk mengelola informasi biologis, penyejajaran sekuens (sequence alignment), prediksi struktur untuk meramalkan bentuk struktur proteinmaupun struktur sekunder RNA, analisis filogenetik, dan analisis ekspresi gen.

Ilmu bioinformatika lahir atas insiatif para ahli ilmu komputer berdasarkan artificial intelligence. Mereka berpikir bahwa semua gejala yang ada di alam ini bisa diuat secara artificial melalui simulasi dari gejala-gejala tersebut. Untuk mewujudkan hal ini diperlukan data-data yang yang menjadi kunci penentu tindak-tanduk gejala alam tersebut, yaitu gen yang meliputi DNA atau RNA. Bioinformatika ini penting untuk manajemen data-data dari dunia biologi dan kedokteran modern.

Perangkat utama Bioinformatika adalah program software dan didukung oleh kesediaan internet. Bioinformatika, sesuai dengan asal katanya yaitu “bio” dan “informatika”, adalah gabungan antara ilmu biologi dan ilmu teknik informasi (TI). Pada umumnya, Bioinformatika didefenisikan sebagai aplikasi dari alat komputasi dan analisa untuk menangkap dan menginterpretasikan data-data biologi.

Ilmu ini merupakan ilmu baru yang yang merangkup berbagai disiplin ilmu termasuk ilmu komputer,matematika dan fisika, biologi, dan ilmu kedokteran, dimana kesemuanya saling menunjang dan saling bermanfaat satu sama lainnya. Kemajuan ilmu Bioinformatika ini lebih didesak lagi oleh genome project yang dilaksanakan di seluruh dunia dan menghasilkan tumpukan informasi gen dari berbagai makhluk hidup, mulai dari makhluk hidup tingkat rendah sampai makhluk hidup tingkat tinggi. Pada tahun 2001, genom manusia yang terdiri dari 2.91 juta bp (base-pare, pasangan basa) telah selesai dibaca. Baru-baru ini genom mikroba Plasmodium penyebab Malaria dan nyamuk Anopheles yang menjadi vektor mikroba tersebut juga telah berhasil dibaca. Dan masih banyak lagi gen-gen dari makhluk hidup lainnya yang sudah dan sedang dibaca. Semua data-data yang dihasilkan dari genome project ini perlu di susun dan disimpan rapi sehingga bisa digunakan untuk berbagai keperluan, baik keperluan penelitian maupun keperluan di bidang medis. Dalam hal ini peranan Bioinformatika merupakan hal yang esensial.

Dengan Bioinformatika, data-data ini bisa disimpan dengan teratur dalam waktu yang singkat dan tingkat akurasi yang tinggi serta sekaligus dianalisa dengan program-program yang dibuat untuk tujuan tertentu. Sebaliknya Bioinformatika juga mempercepat penyelesaian genome projectini karena Bioinformatika mensuplay program-program yang diperlukan untuk proses pembacaan genom ini.

Contoh-contoh penggunaan dalam bioinformatika:

1. Bioinformatika dalam Bidang Klinis

Aplikasi Informatika ini berbentuk data-data mengenai informasi klinis dari seorang pasien seperti data analisa diagnosa laboratorium, hasil konsultasi dan saran, foto rontgen, ukuran detak jantung, dan lain lain.

2. Bioinformatika untuk Identifikasi Agent Penyakit Baru

Aplikasi ini digunakan untuk mendeteksi kemungkinan penyakit baru yang akan muncul baik melalui virus ataupun media yang lainnya.

3. Bioinformatika untuk Diagnosa Penyakit Baru

Aplikasi ini digunakan untuk mendiagnosa penyakit apa yang diderita oleh pasien dan untuk mengetahui obat apa yang tepat dan perawatan yang akan diberikan kepada pasien.

4. Bioinformatika untuk Penemuan Obat

Aplikasi ini digunakan untuk menemukan terobosan pada obat dengan kombinasi berbagai macam senyawa seperti enzim, asam amino dan lain-lan.

Beberapa bidang yang terkait dengan Bioinformatika antara lain:

  1. Biophysics : sebuah bidang interdisipliner yang mengaplikasikan teknik-teknik dari ilmu Fisika untuk memahami struktur dan fungsi biologi (British Biophysical Society).
  2. Computational Biology : bagian dari Bioinformatika yang paling dekat dengan bidang Biologi umum klasik. Fokus dari computational biology adalah gerak evolusi, populasi, dan biologi teoritis daripada biomedis dalam molekul dan sel.
  3. Medical Informatics : sebuah disiplin ilmu yang baru yang didefinisikan sebagai pembelajaran, penemuan dan implementasi dari struktur dan algoritma untuk meningkatkan komunikasi, pengertian dan manajemen informasi medis.
  4. Cheminformatics : kombinasi dari sintesis kimia, penyaringan biologis dan pendekatan data-mining yang digunakan untuk penemuan dan pengembangan obat (Cambridge Healthech Institute’s Sixth Annual Cheminformatics conference).
  5. Genomics : bidang ilmu yang ada sebelum selesainya sekuen genom, kecuali dalam bentuk yang paling kasar. Genomics adalah setiap usaha untuk menganalisa atau membandingkan seluruh komplemen genetik dari satu spesies atau lebih.
  6. Mathematical Biology : menangani masalah-masalah biologi, namun metode yang digunakan untuk menangani masalah tersebut tidak perlu secara numerik dan tidak perlu diimplementasikan dalam software maupun hardware.
  7. Proteomics : berkaitan dengan studi kuantitatif dan kualitatif dari ekspresi gen di level dari protein-protein fungsional itu sendiri. Yaitu: “sebuah antarmuka antara biokimia protein dengan biologi molekul”.
  8. Pharmacogenomics : aplikasi dari pendekatan genomik dan teknologi pada identifikasi dari target-target obat.
  9. Pharmacogenetics : bagian dari pharmacogenomics yang menggunakan metode genomik atau Bioinformatika untuk mengidentifikasi hubungan-hubungan genomik.

Permasalahan dan tantangan yang dihadapi

Perkembangan yang sedemikian pesat menghasilkan berbagai teknik dan perangkat baru dalam melakukan manajemen dan analisis data. Karena beragamnya teknik dan perangkat tersebut, terjadi kesulitan dalam perbandingan, penyimpanan, dan analisis data dari berbagai platform (Ladd, 2000).

Usaha standarisasi sedang dilakukan belakangan ini. Salah satu usaha standarisasi yang paling terkenal adalah BioStandard Project yang dilakukan oleh European Bioinformatics Institute (Cambridge, UK). Proyek ini didanai oleh European Bioinformatics Institute, The European Commission, dan beberapa perusahaan farmasi. Dalam proyek tersebut, dilakukan pengembangan perangkat lunak pengolah data yang sesuai dengan standar saat ini maupun masa depan (Murray-Rust, 1994)

Selain standarisasi, bioinformatika juga memiliki masalah lain, yaitu pengolahan data. Saat ini, data yang berhasil dikumpulkan saat ini, sehingga membutuhkan waktu yang sangat lama untuk dianalisis.

Data dasar yang diperoleh dari data genomik hanya berupa sekumpulan simbol A, G, T, dan C yang jumlahnya mencapai milyaran bahkan trilyunan. Kesulitannya adalah bagaimana merubah simbol tersebut menjadi -misalnya- gen penyakit asma. Proses menganalisis data genomik menjadi informasi yang dapat dimengerti biasa disebut Data Mining.

Dalam proses Data Mining digunakan teknologi pengenalan pola (Pattern Recognition Technology) dan analisis statistika untuk mengolah data dalam jumlah banyak (Wedin, 1999). Tujuan dari Data mining adalah untuk mencari korelasi baru, pola, dan trend.

Permasalahan lain pun muncul menghadang. Sebagai disiplin ilmu yang baru terbentuk, bioinformatika kekurangan SDM yang kompeten. Hal tersebut dijelaskan oleh Craig Benham, seorang Profesor pada sekolah kedokteran Mount Sinai di New York. Ia mengajar bioinformatika aplikasi teknologi informasi. Seperti dijelaskan Benham, ia pada tahun 2000-2001 tidak memiliki murid di program pasca sarjananya. Padahal, diprediksikan bidang ini membutuhkan sekitar 20.000 tenaga kerja terlatih yang kompeten dalam bidang biologi sekaligus ilmu komputer.

Manfaat BioInformatika

  • melacak letak kerusakan gen yang mengakibatkan penyakit genetik.
  • memprediksi fungsi gen
  • menelusuri evolusi biologi dari organisme.
  • mencari kesamaan genetik diantara berbagai macam organisme.
  • membantu identifikasi DNA dalam forensik.
  • menyempurnakan diagnosa penyakit dan terapi gen.
  • membantu perancangan obat baru.
  • memperlancar proyek pemetaan fungsional genome manusia (Human Genome Proyek) sehingga selesai 2 tahun lebih awal.
  • memudahkan kegiatan rekayasa genetika.
  • untuk membantu mengerti proses molekuler yang mendasari kehidupan.

Kondisi Bioinformatika di Indonesia

Di Indonesia, Bioinformatika masih belum dikenal oleh masyarakat luas. Hal ini dapat dimaklumi karena penggunaan komputer sebagai alat bantu belum merupakan budaya. Bahkan di kalangan peneliti sendiri, barangkali hanya para peneliti biologi molekul yang sedikit banyak mengikuti perkembangannya karena keharusan menggunakan perangkat-perangkat Bioinformatika untuk analisa data. Sementara dikalangan TI masih kurang mendapat perhatian. Ketersediaan database dasar (DNA, protein) yang bersifat terbuka/gratis merupakan peluang besar untuk menggali informasi berharga daripadanya. Database genom manusia sudah disepakati akan bersifat terbuka untuk seluruh kalangan, sehinggadapat digali/diketahui kandidat-kandidat gen yang memiliki potensi kedokteran/farmasi. Dari sinilah Indonesia dapat ikut berperan mengembangkan Bioinformatika. Kerjasama antara peneliti bioteknologi yang memahami makna biologis data tersebut dengan praktisiTI seperti programmer, dan sebagainya akan sangat berperan dalam kemajuan Bioinformatika Indonesia nantinya.

Penerapan Bioinformatika di Indonesia

Sebagai kajian yang masih baru, Indonesia seharusnya berperan aktif dalam mengembangkan Bioinformatika ini. Paling tidak, sebagai tempat tinggal lebih dari 300 suku bangsa yang berbeda akan menjadi sumber genom, karena besarnya variasi genetiknya. Belum lagi variasi species flora maupun fauna yang berlimpah. Memang ada sejumlah pakar yang telah mengikuti perkembangan Bioinformatikaini, misalnya para peneliti dalam Lembaga Biologi Molekul Eijkman. Mereka cukup berperan aktif dalam memanfaatkan kajian Bioinformatika. Bahkan, lembaga ini telah memberikan beberapa sumbangan cukup berarti, antara lain:

  • Deteksi Kelainan Janin

Lembaga Biologi Molekul Eijkman bekerja sama dengan Bagian Obstetri danGinekologi Fakultas Kedokteran Universitas Indonesia dan Rumah Sakit CiptoMangunkusumo sejak November 2001 mengembangkan klinik genetik untuk mendeteksisecara dini sejumlah penyakit genetik yang menimbulkan gangguan pertumbuhan fisik maupun retardasi mental seperti antara lain, talasemia dan sindroma down. Kelainan ini bisa diperiksa sejak janin masih berusia beberapa minggu.Talasemia adalah penyakit keturunan di mana tubuh kekurangan salah satu zat pembentuk hemoglobin (Hb) sehingga mengalami anemia berat dan perlu transfusi darahseumur hidup. Sedangkan sindroma down adalah kelebihan jumlah untaian di kromosom21 sehingga anak tumbuh dengan retardasi mental, kelainan jantung, pendengaran dan penglihatan buruk, otot lemah serta kecenderungan menderita kanker sel darah putih(leukemia).

Dengan mengetahui sejak dini, pasangan yang hendak menikah, atau pasanganyang salah satunya membawa kelainan kromosom, atau pasangan yang mempunyai anak yang menderita kelainan kromosom, atau penderita kelainan kromosom yang sedang hamil, atau ibu yang hamil di usia tua bisa memeriksakan diri dan janin untuk memastikan apakah janin yang dikandung akan menderita kelainan kromosom atau tidak,sehingga mempunyai kesempatan untuk mempertimbangkan apakah kehamilan akan diteruskan atau tidak setelah mendapat konseling genetik tentang berbagai kemungkinan yang akan terjadi. Di bidang talasemia, Eijkman telah memiliki katalog 20 mutasi yang mendasaritalasemia beta di Indonesia, 10 di antaranya sering terjadi. Lembaga ini juga mempunyaiinformasi cukup mengenai spektrum mutasi di berbagai suku bangsa yang sangat bervariasi. Talasemia merupakan penyakit genetik terbanyak di dunia termasuk diIndonesia.

  • Pengembangan Vaksin Hepatitis B Rekombinan

Lembaga Biologi Molekul Eijkman bekerja sama dengan PT Bio Farma (BUMNDepartemen Kesehatan yang memproduksi vaksin) sejak tahun 1999 mengembangkan vaksin Hepatitis B rekombinan, yaitu vaksin yang dibuat lewat rekayasa genetika. Selain itu Lembaga Eijkman juga bekerja sama dengan PT Diagnosia Dipobiotek untuk mengembangkan kit diagnostik.

  • Meringankan Kelumpuhan dengan Rekayasa RNA

Kasus kelumpuhan distrofi (Duchenne Muscular Dystrophy) yang menurun kinidapat dikurangi tingkat keparahannya dengan terapi gen. Kelumpuhan ini akibat ketidak normalan gen distrofin pada kromosom X sehingga hanya diderita anak laki-laki. Diperkirakan satu dari 3.500 pria di dunia mengalami kelainan ini.Dengan memperbaiki susunan ekson atau bagian penyusun RNA gen tersebut pada hewan percobaan tikus, terbukti mengurangi tingkat kelumpuhan saat pertumbuhannya menjadi dewasa.

Gen distrofin pada kasus kelumpuhan paling sering disebabkan oleh delesi atau hilangnya beberapa ekson pada gen tersebut. Normalnya pada gen atau DNA distrofinte dapat 78 ekson. Diperkirakan 65 persen pasien penderita DMD mengalami delesicdalam jumlah besar dalam gen distrofinnya. Kasus kelumpuhan ini dimulai pada otot prosima seperti pangkal paha dan betis. Dengan bertambahnya usia kelumpuhan akan meluas pada bagian otot lainnya hingga ke leher. Karena itu dalam kasus kelumpuhan yang berlanjut dapat berakibat kematian. Teknologi rekayasa RNA seperti proses penyambungan ( slicing ) ekson dalam satu rangkaian terbukti dapat mengoreksi mutasi DMD. Bila bagian ekson yang masih ada disambung atau disusun ulang, terjadi perubahan asam amino yang membentuk  protein. Molekul RNA mampu mengenali molekul RNA lainnya dan melekat dengannya.

 

Sumber:

http://oman19.blogspot.com/2013/10/penjelasan-bioinformatika.html

http://fahrezamaulana.blogspot.com/2011/03/perkembangan-bioteknologi.html

http://damarnya.blogspot.com/2012/04/penjelasan-bioinformatika.html

http://rzbeuty.blogspot.com/2012/03/artikel-bioinformatika.html 

E-Commerce

Pengertian E-Commerce

Definisi E-Commerce menurut Laudon & Laudon (1998), E-Commerce adalah suatu proses membeli dan menjual produk-produk secara elektronik oleh konsumen dan dari perusahaan ke perusahaan dengan computer sebagai perantara transaksi bisnis. E-Commerce atau yang biasa disebut juga dengan istilah Ecom atau Emmerce atau EC merupakan pertukaran bisnis yang rutin dengan menggunakan transmisi Electronic Data Interchange (EDI), email, electronic bulletin boards, mesin faksimili, dan Electronic Funds Transfer yang berkenaan dengan transaksi-transaksi belanja di Internet shopping, Stock online dan surat obligasi, download dan penjualan software, dokumen, grafik, musik, dan lain-lainnya, serta transaksi Business to Business (B2B). (Wahana Komputer Semarang 2002).

Defini E-Commerce dari beberapa sudut pandang:

  • Komunikasi, E-Commerce merupakan pengiriman informasi, produk/layanan,atau sarana elektronik lainnya.
  • Proses bisnis, E-Commerce merupakan aplikasi teknologi menuju otomatisasi transaksi dan aliran kerja perusahaan.
  • Layanan E-Commerce merupakan suatu alat yang memenuhi keinginan perusahaan, konsumen dan manajemen dalam memangkas service cost ketika meningkatkan mutu barang dan kecepatan pelayanan.
  • Online, E-Commerce berkaitan dengan kapasitas jual beli produk dan informasi di internet dan jasa online lainnya.

Bentuk-Bentuk E-Commerce

  • Business to business (B2B), B2B adalah tipe e commerce yang mengutamakan kerjasama transaksi antar   perusahaan dengan menggunakan media elektronik
  • Collaborative Commerce (C-Commerce), dalam C-Commerce, partner bisnis saling bekerjasama secara elektronik.kerjasama ini biasanya terjadi sepanjang rantai produksi suatu barang atau jasa, misalnya produsen dengan distrbutornya.
  • Bussiness to Consumers (B2C), pihak penjual adalah organisasi, sedangkan pihak pembeli biasanya individu
  • Consumers to business (C2B), C2B dapat mungkin konsumen membuat request akan kebutuhannya terhadap sebuah barang atau jasa kemudian organisasi atau perusahaan bersaing untuk menyediakan barang atau jasa tersebut kepada konsumen
  • Consumers to Consumers (C2C), Transaksi antar individu seperti menjual produk atau jasa kepada individu lain
  • IntraBusiness Commerce, Penggunaan E Commerce dalam lingkup internal perusahaan atau organisasi untuk meningkatkan kinerja dan operasi
  • Government to Citizens (G2C), Pelayanan pemerintah terhadap warga negaranya melalui teknologi E Commerce, selain itu.dapat digunakan untuk kerjasama antara pemerintah dengan pemerintah lain atau dengan perusahaan
  • Mobile Commerce, Mobile Commerce memungkinkan penggunaan E Commerce tanpa kabel, seperti mengakses internet melalui handphone

Dalam banyak kasus, sebuah perusahaan e-commerce bisa bertahan tidak hanya mengandalkan kekuatan produk saja, tapi dengan adanya tim manajemen yang handal, pengiriman yang tepat waktu, pelayanan yang bagus, struktur organisasi bisnis yang baik, jaringan infrastruktur dan keamanan, desain situs web yang bagus, beberapa faktor yang termasuk:

  • Menyediakan harga kompetitif
  • Menyediakan jasa pembelian yang tanggap, cepat, dan ramah
  • Menyediakan informasi barang dan jasa yang lengkap dan jelas.
  • Menyediakan banyak bonus seperti kupon, penawaran istimewa, dan diskon.
  • Memberikan perhatian khusus seperti usulan pembelian.
  • Menyediakan rasa komunitas untuk berdiskusi, masukan dari pelanggan, dan lain-lain.
  • Mempermudah kegiatan perdagangan

Beberapa aplikasi umum yang berhubungan dengan e-commerce adalah:

  • E-mail dan Messaging
  • Content Management Systems
  • Dokumen, spreadsheet, database
  • Akunting dan sistem keuangan
  • Informasi pengiriman dan pemesanan
  • Pelaporan informasi dari klien dan enterprise
  • Sistem pembayaran domestik dan internasional
  • Newsgroup
  • On-line Shopping
  • Conferencin
  • Online Banking

Pentingnya E-Commerce

  • Orang yang ingin membeli barang atau transaksi lewat internet hanya membutuhkan akses internet dan interface-nya menggunakan web browser Menjadikan portal e-commerce / e-shop tidak sekedar portal belanja, tapi menjadi tempat berkumpulnya komunitas dengan membangun basis komunitas, membangun konsep pasar bukan sekedar tempat jual beli dan sebagai pusat informasi(release,product review, konsultasi, etc).
  • Pengelolaan yang berorientasi pada pelayanan, kombinasi konsepsi pelayanan konvensional dan virtual : Responsif (respon yang cepat dan ramah), Dinamis,Informatif dan komunikatif
  • Informasi yang up to date, komunikasi multi-arah yang dinamis  Model pembayaran : kartu kredit atau transfer.

Manfaat e-commerce bagi konsumen :

  • Electronic commerce memungkinkan pelanggan untuk berbelanja atau melakukan transaksi lain selama 24 jam sehari sepanjang tahun dari hampir setiap lokasi.
  • Electronic commerce meemberikan lebih banyak pilihan kepada pelanggan; mereka bisa memilih berbagai produk dari banyak vendor.
  • Electronic commerce menyediakan produk-produk dan jasa yang tidak mahal kepada pelanggan dengan cara mengunjungi banyak tempat dan melakukan perbandingan secara cepat.
  • Dalam beberapa kasus, khususnya pada produk-produk yang digitized, EC menjadikan pengiriman menjadi sangat cepat.
  • Pelanggan bisa menerima informasi relevan secara detail dalam hitungan detik, bukan lagi hari atau minggi.
  • Electronic commerce memungkinkan partisipasi dalam pelelangan maya (virtual auction).
  • Electronic commerce memberi tempat bagi para pelanggan untuk berinteraksi dengan pelanggan lain di electronic community dan bertukar pikiran serta berbagai pengalaman.
  • Electronic commerce memudahkan persaingan, yang pada akhirnya akan menghasilkan diskon secara substansial.

Manfaat e-commerce bagi masyarakat :

  • Electronic commerce memungkinkan orang untuk bekerja di dalam rumah dan tidak banyak keluar untuk berbelanja, akibatnya ini akan menurunkan arus kepadatan lalu lintas di jalan serta mengurangi polusi udara.
  • Elctronic commerce memungkinkan sejumlah barang dagangan dijual dengan harga lebih rendah, sehingga orang yang kurang mampu bisa membeli lebih banyak dan meningkatkan taraf hidup mereka.
  • Electronic commerce memungkinkan orang di negara-negara Dunia ketiga dan wilayah pedesan untuk menikmati aneka produk dan jasa yang akan susah mereka dapatkan tanpa EC. Ini juga termasuk peluang untuk belajar berprofesi serta mendapatkan gelar akademik.
  • Electronic commerce memfasilitasi layanan publik, seperti perawatan kesehatan, pendidikan, dan pemerataan layanan sosial yang dilaksanakan pemerintah dengan biaya yang lebih rendah, dan / atau dengan kualitas yang lebih baik. Layanan perawatan kesehatan, misalnya, bisa menajangkau pasien di daerah pedesaan.

Manfaat e-commerce bagi bisnis:

  • Perusahaan-perusahaan dapat menjangkau pelanggan diseluruh dunia. Oleh karena itu dengan memperluas bisnis mereka, sama saja dengan meningkatkan keuntungan.
  • e-commerce menawarkan pengurangan sejumlah biaya tambahan. Sebuah perusahaan yang melakukan bisnis diinternet akan mengurangi biaya tambahan karena biaya tersebut tidak digunakan untuk gedung dan pelayanan pelanggan (customer service), jika dibandingkan dengan jenis bisnis tradisional.

Kekurangan E-commerce

Walaupun adanya e-commerce memberi banyak keuntungan, masih terdapat berbegai kekurangan dari e-commerce antara lain:

Bagi organisasi / perusahaan

  • Keamanan sistem rentan diserang, Terdapat sejumlah laporan mengenai website dan basis data yang dihack, dan berbagai lubang kelemahan keamanan dalam software. Hal ini dialami oleh sejumlah perusahaan besar seperti Microsoft dan lembaga perbankan. Masalah keamanan ini menjadi sangat pnting karena bila pihak lain yang tidak berwenang bisa menembus sistem maka dapat menghancurkan bisnis yang telah berjalan.
  • Persaingan tidak sehat, Di bawah tekanan untuk berinovasi dan membangun bisnis untuk memanfaatkan kesempatan yang ada dapat memicu terjadinya tindakan ilegal yaitu penjiplakan ide dan perang harga
  • Masalah kompabilitas teknologi lama dengan yang lebih baru
    Dengan perkembangan dan inovasi yang melahirkan teknologi baru, sering muncul masalah yaitu sistem bisnis yang lama tidak dapat berkomunikasi dengan infrastruktur berbasis web dan internet. Hal ini memaksa perusahaan untuk menjalankan dua sistem independen yang tidak dapat saling berbagi, hal ini dapat mengakibatkan pembengkakan biaya.

Bagi konsumen

  • Perlunya keahlian computer, Tanpa menguasai keahlian computer, mustahil konsumen dapat berpartisipasi dalam e-commerce. Pengetahuan dasar computer diperlukan, antara lain pengetahuan mengenai internet dan web.
  • Biaya tambahan untuk mengakses internet, Untuk ikut serta dalam e-commerce dibutuhkan koneksi internet yang tentu saja menambah pos pengeluaran bagi konsumen.
  • Biaya peralatan computer, Komputer diperlukan untuk mengakses internet, tentu saja dibutuhkan biaya untuk mendapatkannya. Perkembangan komputer yang sangat pesat menyarankan konsumen untuk juga mengupdate peralatannya apabila tidak ingin ketinggalan teknologi.
  • Risiko bocornya privasi dan data pribadi, Segala hal mungkin terjadi saat konsumen mangakses internet untuk menjalankan e-commerce, termasuk risiko bocornya data pribadi karena ulah orang lain yang ingin membobol sistem.
  • Berkurangnya waktu untuk berinteraksi secara langsung dengan orang lain
    Transaksi e-commerce yang berlangsung secara on-line telah mengurangi waktu konsumen untuk dapat melakukan proses sosial dengan orang lain. Hal ini tidak baik karena dikhawatirkan akan dapat mengurangi rasa kepedulian terhadap lingkungan sekitarnya.
  • Berkurangnya rasa kepercayaan karena konsumen berinteraksi hanya dengan komputer.

Bagi masyarakat

  • Berkurangnya interaksi antar manusia, Karena masyarakat lebih sering berinteraksi secara elektronik, dimungkinkan terjadi berkurangnya kemampuan sosial dan personal manusia untuk bersosialisasi dengan orang lain secara langsung.
  • Kesenjangan social, Terdapat bahaya potensial karena dapat terjadi kesenjangan sosial antara orang-orang yang memiliki kemampuan teknis dalam e-commerce dengan yang tidak, yang memiliki keahlian digaji lebih tinggi daripada yang tidak.
  • Adanya sumber daya yang terbuang, Munculnya teknologi baru akan membuat teknologi lama tidak dimanfaatkan lagi. Misalnya dengan komputer model lama atau software model lama yang sudah tidak relevan untuk digunakan.
  • Sulitnya mengatur internet, Sejumlah kriminalitas telah terjadi di internet dan banyak yang tidak terdeteksi. Karena jumlah jaringan yang terus berkembang semakin luas dan jumlah pengguna yang semakin banyak, seringkali membuat pihak berwenang kesulitan dalam membuat peraturan untuk internet.

Perusahaan yang terkenal dalam bidang ini antara lain: eBay, Yahoo, Amazon.com, Google, dan Paypal. Untuk di Indonesia, bisa dilihat tradeworld.com, bhineka.com, fastncheap.com, dll.

Sumber:

http://ririnyp.wordpress.com/2011/11/03/tugas-2-minggu-pertama-penjelasan-e-commerce/

http://jurnal-sdm.blogspot.com/2009/08/e-commerse-definisi-jenis-tujuan.html

http://anissnisi.blogspot.com/2012/06/penjelasan-tentang-e-commerce.html

http://ferdiyanth.blogspot.com/2012/04/penjelasan-tentang-e-commerce.html

E-Business

E-business adalah merupakan satu set dinamis teknologi, aplikasi, dan proses bisnis yang menghubungkan perusahaan, konsumen, dan komunitas tertentu melalui transaksi elektronik dan perdagangan barang, jasa, dan informasi yang dilakukan secara elektronik. (David Baum)

Electronic Business, atau E-business dapat diterjemahkan sebagai kegiatan bisnis yang dilakukan secara otomatis dan semiotomatis dengan menggunakan sistem informasi komputer. Istilah yang pertama kali diperkenalkan oleh Lou Gerstner, seorang CEO perusahaan IBM , sekarang merupakan bentuk kegiatan bisnis yang dilakukan dengan menggunakan teknologi Internet. 

E-business melibatkan proses bisnis yang mencakup seluruh rantai nilai : pembelian elektronik dan manajemen rantai pasokan , pemrosesan order elektronik, penanganan pelayanan pelanggan, dan bekerja sama dengan mitra bisnis. Standar teknis khusus untuk e-business memfasilitasi pertukaran data antara perusahaan.

Ruang lingkup E-Business

Ruang Lingkup E-business: Dijelaskan dengan Prinsip (4 W) Yaitu: What, Where, Who dan Why. 

  • What.     Secara prinsip pengertian e-business jauh lebih luas dibandingkan dengan e-commerce, bahkan secara filosofis, e-commerce merupakan bagian dari e-business. Jika e-commerce hanya memfokuskan diri pada aktivitas atau mekanisme transaksi yang dilakukan secara elektronik/digital, e-business memiliki wilayah yang jauh lebih luas, termasuk di dalamnya aktivitas relasi antara dua entiti perusahaan, interaksi antara perusahaan dengan pelanggannya, kolaborasi antara perusahaan dengan para mitra bisnisnya, pertukaran informasi antara perusahaan dengan para pesaing usahanya, dan lain sebagainya.
  • Where.     E-business dilakukan dimana saja, sejauh pihak yang berkepentingan memiliki fasilitas elektronik/digital sebagai kanal akses (access channel).
  • Who.     Siapa saja yang melakukan e-business. Klasifikasi entiti yang kerap dipergunakan dalam mengilustrasikan e-business, masing-masing: Agent, Business, Consumer, Device, Employee, Family, dan Government.
  • Why.     Penerapan konsep e-business secara efektif memberikan keuntungan bagi perusahaan karena banyaknya komponen biaya tinggi yanga dapat dihemat, yang secara tidak langsung meningkatkan level pendapatannya

Kelebihan dan Kekurangan E-Business :

Bagi pihak konsumen, menggunakan e-business dapat membuat waktu berbelanja menjadi singkat. Tidak ada lagi berlama-lama mengelilingi pusat pertokoan untuk mencari barang yang diinginkan. Selain itu, harga barang-barang yang dijual melalui E-Commerce biasanya lebih murah dibandingkan dengan harga di toko, karena jalur distribusi dari produsen barang ke pihak penjual lebih singkat dibandingkan dengan toko konvensional.

 Online shopping menyediakan banyak kemudahan dan kelebihan jika dibandingkan dengan cara belanja yang konvensional. Selain bisa menjadi lebih cepat, di internet telah tersedia hampir semua macam barang yang biasanya dijual secara lengkap. Selain itu, biasanya informasi tentang barang jualan tersedia secara lengkap, sehingga walaupun kita tidak membeli secara on-line, kita bisa mendapatkan banyak informasi penting yang diperlukan untuk memilih suatu produk yang akan dibeli

Kekurangan e-business antara lain adalah rentan terhadap cybercrime, penipuan, dan yang dibutuhkan hanya sedbuah kepercayaan.

Faktor-faktor keberhasilan  E-Business

Terdapat dua faktor penting dalam menetapkan keberhasilan langkah-langkah untuk masuk dalam e-business.

  • Faktor pertama adalah tingkat kesesuaian dan dukungan aktivitas e-business atas strategi keseluruhan perusahaan.
  • Faktor kedua adalah kemampuan untuk menjamin bahwa proses e-business memenuhi tiga karakteristik kunci yang dibutuhkan dalam transaksi bisnis apapun, yaitu : Validitas, Integritas, dan Privasi

 

Sumber:

http://dhemuhammad.blogspot.com/2012/03/penjelasan-tentang-electronic-business.html

http://www.berryhs.com/2011/10/e-business.html

http://kristianandi77.blogspot.com/2011/11/pengantar-e-business-model-pengaruh.html

 

 

Perangkat Lunak Pembuat Game

 

AGS( Adventure Game Studio)

            AGS adalah program yang khusus untuk membuat game bertipe “point and click”. Mungkin sebagian dari anda ada yang tidak mengetahui apa yang dimaksud dengan “point and click”. Point and click adalah jenis game yang umumnya bertipe adventure atau puzzle. Game bertipe ini dimainkan dengan menggunakan mouse sebagai penentu arah bagi karakter, game bertipe ini sendiri sempat meledak dan mengalahkan game console “Atari”, ketika awal kebangkitan game PC.

            Contoh –contoh game bertipe point and click adalah: Clock Tower ( playstation one), Broken Sword, Monkey Island ,Day of the Tentacle.Jadi bagi anda yang penasaran atau hobi membuat cerita petualangan atau fiksi ilmiah dan ingin membuat cerita tsb menjadi game , anda bisa menggunakan program ini.

Macromedia Flash (Sekarang Adobe Flash)

            Program ini sebetulnya digunakan untuk membuat presentasi atau mendesain web. Namun selain itu dengan sedikit kreatifitas anda dapat membuat game sederhana dengan program ini. Sebab program ini tidak ditujukan untuk membuat game yang berat.

Macromedia Flash

            Program yang satu ini ditujukan untuk membuat game-game bertipe 3D ataupun 2D. Namun program ini lebih dikhususkan untuk membuat game bertipe 3D. Tapi untuk tambahan, program ini bisa dikatakan cukup sulit digunakan bagi anda yang belum memiliki pemahaman dasar tentang 3D maupun tentang membuat game.

            Kelebihan dari program ini adalah , anda dapat membuat game sekelas dengan “Medal of Honor”, “Onimusha” , “ Prince of Persia”, “Ghost Recon”, ”Grand Theft Auto”, dll . Jadi bila anda sudah mengerti tentang dasar dari membuat game, mungkin anda dapat mencoba program ini.

3D Game Studio

            Dalam 3D Game Studio terdapat 3 program utama,yaitu:

-MED (Model Editor) – Program yang berfungsi sebagai editor model bagi 3D Game Studio

-SED (Script Editor) – Sebagai pengolah script dalam 3D Game Studio,script standar yang dipakai adalah C-Script dan Lite C.

-WED (Level Editor) – Sebagai pengolah level/area permainan bagi 3D Game Studio.
Itu adalah sedikit dari sekian banyaknya program yang dapat anda gunakan. Masih banyak program-program lainnya yang dapat anda gunakan untuk membuat game.

The 3D Gamemaker

            Software yang  membuat game 3D, dan bisa langsung dimainkan, membuat model, gameplay, story. Software ini hanya menggunakan tools yang ada untuk membuat game 3D yang dikira butuh bahasa pemograman yang tinggi untuk membuatnya.Situsnya: http://t3dgm.thegamecreators.com

3D RPG BUILDER

            Software yang masih dalam tahap pengembangan, software ini membuat game dengan RPG, mudah dalam penggunaannya dan jika ingin membuat game RPG dengan lebih baik lagi maka bisa menggunakan LUA programming.

RPGMaker (R.M)

            R.M merupakan program yang difokuskan untuk membuat game bertipe R.P.G (Role Playing Game). Program ini bisa dikatakan cukup mudah untuk dipahami, karena dilengkapi dengan tools-tools yang bisa dibilang tidak terlalu rumit. Umumnya banyak orang-orang yang mulai membuat game karena kecintaanya dengan dunia R.P.G , Misalkan setelah bermain “Suikoden “ atau “Final Fantasy”,seseorang merasa ingin membuat game R.P.G. serupa. mungkin anda salah satu dari orang –orang itu, jadi anda bisa mulai mencari program ini. Sebab dengan program ini anda dapat membuat game R.P.G sebebas-bebas mungkin . Script yang dipakai dalam RPGmaker XP adalah RGSS (Ruby Game Scripting System,sebuah system script turunan dari bahasa Ruby),sementara untuk RPGmaker terbaru (RPGmaker VX) yang dipakai adalah pengembangan dari RGSS,yaitu RGSS2. Hasil gamenya lebih mirip dengan game rpg yang ada di Playstation. Disini tidak bisa membuat karakter untuk game yang akan dibuat tetapi tersedia ratusan karakter yang bisa dipakai, dan ratusan jurus yang bisa digunakanRPG Maker Full Version, situs: http://www.evancode.com/

FPSCreator

            Software untuk membuat game bertipe First Player Shooter. Pada  Demo Versionnya terdapat banyak kelemahan, antara lain: Tidak bisa mengimpor model 3d buatan sendiri, hanya bisa memasukan 25 items dalam satu project, tidak bisa memasukan video untuk bagian story, tidak bisa multi level dan yang paling parah, tidak bisa dipublish menjadi game exe.

Game Maker

            Software ini bisa digabungkan dengan bahasa pemograman lain seperti C++, berguna bagi yang ingin membuat game bertipe Arcade(2D), juga sudah disediakan sampel game yang dibuat dengan software ini, diantara software itu pasti ada satu yang dikenal yaitu game “1945″.

            Menggunakan Game Maker mudah dipelajari drag-and-drop tindakan, dapat membuat permainan mencari profesional dalam sedikit waktu. Dapat membuat game dengan latar belakang, animasi grafis, musik dan efek suara, dan bahkan game 3D! Dan ketika sudah menjadi lebih berpengalaman, ada built-in bahasa pemrograman, yang memberikan fleksibilitas penuh menciptakan permainan dengan Game Maker. Apa yang terbaik, adalah kenyataan bahwa pembuat Game dapat digunakan secara gratis. Game Maker datang dimuat dengan koleksi freeware gambar dan suara untuk mulai.

            Game maker merupakan suatu program yang bisa dikatakan cukup simple dan mudah untuk digunakan. Dengan program ini anda dapat menciptakan game jenis apa saja yang anda inginkan seperti: racing,action,fighting,rpg,adventure,puzzle,tactic,simulation,dll. Program ini lebih focus pada game berjenis 2D tetapi program ini juga menyediakan feature yang memungkinkan anda untuk membuat game jenis 3D ,namun anda tidak bisa membuat game sekelas “Halo”, ”Empire Earth”, “Need for Speed”, dengan program ini. Karena feature 3D yang diberikan hanya untuk membuat game 3D yang sederhana. Script yang dipakai adalah GML (Game Maker Language) yang juga bisa dipadukan dengan programming language seperti Delphi,C,dan sebagainya,hal ini bisa dilakukan dalam kapasitas penggunaan DLL (Dynamic Link Library,berupa semacam plugin yang mengandung fungsi-fungsi yang tidak dimiliki oleh GameMaker).

Game Maker 8

            Game maker 8 adalah sebuah aplikasi yang biasa digunakan untuk membuat game berbasis 2D dan 3D tapi sayangnya game maker 8 hanya terfokus pada game yang dibuat 2D dari pada 3D ,tapi anda tidak bisa membuat game sekelas dengan Eart of empire II, pada aplikasi ini! karena ketersediaan alat pada game maker 8 sangat terbatas, sehingga para pembuat game biasanya membuat game 2 dinensi,untuk bisa membuat game yang bisa digunakan untuk membuat game 3Dimensi ini antara lain:

-3D game studio

-3Ds max7

-dan masih banyak lagi

 

http://putrifebiani.blogspot.com/2013/07/perkembangan-teknologi-game.html

http://rasyidhadi.wordpress.com/category/uncategorized/page/2/

http://rasyidhadi.wordpress.com/2012/08/17/pengertian-dari-game-maker-8/

User Input

Bab 5. User Input

“Jika terus ini, manusia akan berevolusi dan kehilangan semua jarinya, kecuali jari untuk menekan tombol.” 

-Frank Lloyd Wright 

TOPIK UTAMA 

  • Keyboard 
  • Mouse 
  • Joystick 
  • Abstraksi Hardware 
  • Tanggapan 
  • Pada penutupan

Sebuah model interaksi pengguna halus adalah kunci untuk setiap permainan yang baik.Tanpa mekanisme input pengguna yang memadai, gameplay menjadi terhambat dan frustrasi terjadi. Dalam bab ini, kita akan membahas dasar-dasar pengguna kontrol input. Sayangnya, akan ada beberapa aturan umum. Interaksi pengguna berlangsung pada relatif rendah tingkat abstraksi, dan implementasi cenderung sangat tergantung pada perangkat keras. Bila memungkinkan, umum  teknik akan terkena. Tapi sebagian besar bab  ni dikhususkan untuk metode input yang khusus yang tersedia untuk  platform populer pada  C, seperti API Win32 dan Microsoft DirectInput.

Keyboard 

Keyboard adalah perangkat input utama untuk game berbasis PC, tetapi juga tersedia untuk ponsel, beberapa konsol, dan perangkat sawit. Yang membuat mereka, kemungkinan besar, perangkat input yang paling banyak tersedia. Sayangnya, seperti perangkat input populer sangat tidak cocok untuk game. Pemetaan keyboard mengambil waktu untuk belajar, dan gambaran umum tentang keyboard ini sama sekali tidak praktis untuk anak-anak kecil. Menjadi multifungsi perangkat yang dapat digunakan untuk mengetik dokumen dan untuk bermain game, tidak mengherankan bahwa keyboard dapat dibaca dengan menggunakan berbagai metode, tergantung pada kebutuhan spesifik dari aplikasi. Beberapa metode mengambil string penuh, yang lain bekerja atas dasar kunci-demi-kunci, dan sebagainya. Tapi untuk tujuan game, dua jenis rutinitas relevan. Pertama, ada rutinitas sinkron, yang menunggu sampai tombol ditekan dan kemudian melaporkannya ke aplikasi. Kedua, ada rutinitas asynchronous, yang segera kembali setelah dipanggil, dan memberikan informasi tentang aplikasi yang tombol ditekan, jika ada. Mode membaca sinkron digunakan untuk mengetik informasi, seperti nama karakter dalam role-playing game (RPG). Mereka bekerja dengan polling kontroler sampai pesan input kunci baru tiba.Tapi mereka tidak sangat baik  cocok untuk gameplay nyata. Kode permainan harus terus menerus memeriksa untuk melihat apakah tombol ditekan, dan apapun respon, terus menggambar, melaksanakan AI, dan sebagainya. Jadi, pengendali asynchronous adalah  cara untuk pergi. Mereka menyediakan tes cepat untuk memeriksa keadaan keyboard yang efisien.

Rutinitas Asynchronous juga bisa milik dua keluarga yang berbeda. Beberapa dari mereka yang dirancang untuk menguji keadaan kunci individu, sehingga pemrogram melewati kode kunci sebagai parameter dan mendapat negara sebagai terjadi. Lainnya, seperti yang terpapar oleh DirectInput, mengambil keyboard seluruh negara dalam satu panggilan, sehingga programmer kemudian dapat mengakses struktur data dan memeriksa keadaan setiap tombol tanpa lebih lanjut cek hardware. Tipe kedua rutin umumnya lebih efisien karena ada overhead kurang terlibat. Sebagai contoh, kita akan fokus pada panggilan asynchronous satu tombol untuk platform PC. Panggilan adalah Windows spesifik dan merupakan bagian dari Win32 API. Perintahnya adalah pendek GetAsyncKeyState (int keycode); Panggilan ini menerima kode kunci dan mengembalikan nilai pendek, yang mengkode informasi negara yang berbeda. Kuncinya kode kita lulus sebagai parameter dapat menjadi karakter dikapitalisasi, seperti “K”, atau kode kunci diperpanjang, yang digunakan untuk membaca karakter khusus. Dengan menggunakan kode kunci diperpanjang, kita bisa membaca kunci tertentu, seperti Hapus, tombol fungsi, Tabs, dan sebagainya. Tabel 5.1 menyediakan daftar kode kunci khusus utama untuk ini menelepon. 

Tabel 5.1. Keycodes untuk panggilan GetAsyncKeyState

Keycode Deskripsi

VK_RSHIFT VK_SHIFT, VK, LSHIFT

Salah satu dari dua Shift

VK_MENU

Salah satu dari tombol Alt

VK_CTRL VK_RCTRL, VK_LCTRL

Setiap tombol Ctrl 

VK_UP, VK_DOWN, VK_LEFT, VK_RIGHT

Tombol kursor 

VK_F1 … VK_F12

Tombol Fungsi 

VK_ESCAPE

Esc 

VK_SPACE

Spasi 

VK_RETURN

Return 

VK_HOME, VK_END, VK_PRIOR, VK_NEXT

keypad numerik 

VK_BACK

Backspace 

VK_TAB

Tab 

VK_INSERT, VK_DELETE

Insert dan Delete 

 Nilai kembali mengkodekan keadaan kunci dilewatkan sebagai parameter. Bit yang paling signifikan diaktifkan jika tombol saat ditekan, sedangkan least significant bit diaktifkan jika kunci ini diaktifkan yang terakhir Waktu GetAsyncKeyState dipanggil. Berikut adalah contoh bagaimana untuk memeriksa apakah tombol Shift kiri adalah ditekan:

If (GetAsyncKeyState(VK_LSHIFT))

{

// whatever

}

Perhatikan bahwa, karena sifat panggilan, kita dapat memeriksa beberapa tombol.Contoh berikutnya menunjukkan bagaimana untuk menguji untuk Shift kiri DAN Kembali kombinasi: 

If ((GetAsyncKeyState(VK_LSHIFT)) && (GetAsyncKeyState(VK_RETURN)))

{

// whatever

}

Seperti yang Anda lihat, setiap tes kunci memerlukan system call, yang dapat menyusahkan bagi sistem-sistem memeriksa banyak kunci yang berbeda. Sekarang, mari kita bandingkan panggilan ini dengan cek keyboard yang utuh, yang dapat dilakukan dengan menggunakan panggilan: 

bool GetKeyboardState(PBYTE *lpKeyState);

Berikut hasilnya hanya mengkodekan apakah fungsi berhasil, dan daging yang sebenarnya dikembalikan sebagai array lulus sebagai referensi. Kemudian, pemeriksaan berturut-turut seperti berikut ini melakukan tes individu, yang tidak lain array lookup sederhana: 

if (keystate[VK_RSHIFT])

{

// right shift was pressed

}

Sekali lagi, untuk game yang memeriksa banyak kunci (seperti simulator penerbangan), opsi ini bisa lebih baik daripada diulang panggilan ke GetAsyncKeyState. Programmer hanya perlu menyadari bahwa panggilan awal untuk GetKeyboardState diperlukan untuk memuat array. Lain yang mungkin perangkap untuk diperhatikan adalah bahwa modus kedua ini tidak segera memeriksa kunci ketika Anda melakukan tes. Tombol diperiksa pada panggilan untuk GetKeyboardState.Jika ada yang signifikan menunda antara tes ini dan lookup array, efek samping yang tidak diinginkan mungkin terjadi karena array akan mengandung “lama” nilai-nilai kunci. Keyboard dengan DirectInput DirectInput menyediakan akses asynchronous cepat untuk negara-negara kunci. Sebuah panggilan tunggal dapat mengambil keadaan. Seluruh Keyboard, tes berikutnya sehingga hanya tabel lookup. Operasi ini demikian sangat mirip dengan GetKeyboardState Win32 menelepon. Namun sebelum kita menggali ke dalam kode pembacaan Keyboard, kita perlu membahas bagaimana DirectInput bekerja. DirectInput merangkum keyboard, joystick, tikus, dan setiap masukan eksotis lainnya perifer bawah umum interface yang disebut perangkat. Operasi ini benar-benar mudah. Pertama-tama kita perlu boot DirectInput. Ini menyiratkan menciptakan objek DirectInput, dari mana semua benda lain yang berhubungan dengan proses input dapat berasal. Obyek DirectInput demikian dapat digunakan untuk membuat perangkat, yang merupakan antarmuka logis untuk peripheral. Setelah perangkat telah dibuat, kita perlu menentukan beberapa parameter, seperti format data yang kita inginkan untuk pertukaran dengan perangkat, dan tingkat koperasi, yang memberitahu DirectInput jika perangkat untuk dibagi di antara aplikasi yang berbeda atau jika kita perlu secara eksklusif. 

Perangkat DirectInput kemudian dapat disurvei asynchronous. Kami query keadaan perangkat, tidak menunggu peristiwa tertentu seperti kunci atau tekan tombol. Ini berarti DirectInput akan mengambil snapshot dari kondisi saat ini perangkat dan mengembalikannya ke aplikasi sehingga dapat diproses. Sebagai ringkasan, berikut adalah daftar langkah-langkah terlibat dalam mendirikan keyboard DirectInput:

1. Membuat objek DirectInput.

2. Buat perangkat keyboard yang. 

3. Mengatur format data untuk membacanya.

4. Mengatur tingkat koperasi akan Anda gunakan dengan sistem operasi. 

5. Baca data yang diperlukan. 

Mari kita sekarang beralih ke contoh spesifik, dimulai dengan kode DirectInput diperlukan untuk boot API. Itu kode dalam bagian ini telah diuji di kedua DirectX8 dan DirectX9. DirectInput hampir identik dalam kedua versi. 

LPDIRECTINPUT8 g_pDI=NULL;

HRESULT hr=DirectInput8Create(GetModuleHandle(NULL),DIRECTINPUT_VERSION,

IID_IDirectInput8,(VOID**)&g_pDI,NULL)))

Dalam kode sebelumnya, parameter pertama digunakan untuk mengirim pegangan contoh untuk aplikasi yang menciptakan objek DirectInput. Kemudian, kita harus lulus versi DirectInput kita meminta.Itu makro DIRCTINPUT_VERSION adalah cara yang berguna untuk lulus nomor versi saat ini. Selanjutnya, kita harus lulus pengenal antarmuka yang unik untuk obyek yang kita minta. Kami menggunakan IID_IDirectInput8 untuk meminta DirectInput objek, tetapi kita bisa menggunakan parameter lain untuk menentukan versi ANSI atau Unicode antarmuka. Kami kemudian melewati pointer sehingga kami dapat menerima objek sudah diinisialisasi, dan parameter terakhir digunakan untuk melakukan Component Object Model (COM) agregasi. Anda mungkin tidak akan ingin agregat Anda Objek DirectInput untuk hal lain, sehingga meninggalkan ini sebagai NULL. Sekarang kita memiliki objek DirectInput siap untuk digunakan. Sekarang saatnya untuk kode keyboard nyata. Kami akan pertama meminta perangkat dan mengatur beberapa parameter yang menentukan bagaimana kita akan berkomunikasi dengannya. Kemudian, kita akan memeriksa kode sumber yang digunakan untuk membaca data dari keyboard. 

Langkah pertama adalah untuk benar-benar meminta perangkat dari objek DirectInput.Hal ini dicapai dengan kalimat:

HRESULT hr =g_pDI->CreateDevice(GUID_SysKeyboard, &g_pKeyboard, NULL);

Panggilan harus menerima Global Unique Identifier (GUID) untuk perangkat yang diinginkan. DirectInput dibangun di atas dari COM, model pemrograman berorientasi obyek. Dalam COM, GUIDs digunakan untuk mengidentifikasi objek tertentu atau interface. Secara internal, GUID hanya struktur 128-bit, tetapi mereka digunakan untuk mewakili fungsi, benda,  dan umumnya setiap DirectX membangun. Dalam kasus ini, GUIDs klasik untuk perangkat yang berbeda 

  • GUID_SysKeyboard: The default system keyboard.
  • GUID_SysMouse: The default system mouse.

GUID tambahan dapat diberikan ke joystick. Namun, GUID ini tidak harus ditulis secara langsung, tetapi sebagai hasil dari panggilan untuk DirectInput8 :: EnumDevices. Kami akan mencakup joystick pada bagian berikutnya. Untuk keyboard kita, GUID_SYSKeyboard akan melakukan pekerjaan. Parameter kedua adalah pointer ke baru menciptakan perangkat, dan parameter terakhir ini lagi disediakan untuk agregasi dan sehingga harus diatur ke NULL. Sekarang, kita harus memberitahu keyboard bagaimana kita ingin bertukar data. Hal ini dicapai dengan panggilan untuk SetDataFormat, seperti yang ditunjukkan di sini:

HRESULT hr = g_pKeyboard->SetDataFormat( &c_dfDIKeyboard );

Panggilan harus menerima parameter tipe LPCDIDATAFORMAT, yang merupakan struktur idefinisikan sebagai: 

typedef struct DIDATAFORMAT {

DWORD dwSize;

DWORD dwObjSize;

DWORD dwFlags;

DWORD dwDataSize;

DWORD dwNumObjs;

LPDIOBJECTDATAFORMAT rgodf;

} DIDATAFORMAT, *LPDIDATAFORMAT;

typedef const DIDATAFORMAT *LPCDIDATAFORMAT;

Struktur ini mengontrol jumlah objek kita akan meminta, format masing-masing, dan sebagainya. Karena struktur yang kompleks untuk mengisi, DirectInput sudah dilengkapi dengan beberapa format data yang telah ditetapkan yang dapat kita gunakan secara langsung. Untuk keyboard, c_dfDIKeyboard Format memberitahu DirectInput kita akan meminta keyboard lengkap, disimpan dalam array dari 256 byte. Selain itu, kita perlu memberitahu DirectInput tentang tingkat koperasi akan kita gunakan dengan perangkat ini. Ini dicapai dengan menggunakan garis: 

HRESULT hr=g_pKeyboard->SetCooperativeLevel(hWnd, DISCL_FOREGROUND| DISCL_EXCLUSIVE);

Di sini kita melewati jendela menangani sebagai parameter pertama, dan parameter kedua adalah ATAU dari serangkaian bendera yang mengontrol tingkat koperasi. Dalam kasus ini, kita mengatakan DirectInput yang kita inginkan eksklusif mengakses dan bahwa akses ini seharusnya hanya berlaku jika aplikasi tersebut di latar depan. Sebagai aplikasi kita bergerak ke latar belakang, perangkat secara otomatis unacquired. Selain itu, kami perlu mendapatkan keyboard, sehingga kami dapat mulai query negaranya. Baris berikut akan melakukan bahwa bagi kita:

g_pKeyboard->Acquire();

Dan sekarang kami siap untuk mulai menggunakan keyboard. Berikut adalah potongan kode yang menyatakan kedua DirectInput dan keyboard, dan memastikan perangkat siap. Kesalahan pemeriksaan telah dihilangkan untuk kejelasan: 

HRESULT hr;

hr = DirectInput8Create( GetModuleHandle(NULL), DIRECTINPUT_VERSION,

IID_IDirectInput8, (VOID**)&g_pDI, NULL );

hr = g_pDI->CreateDevice( GUID_SysKeyboard, &g_pKeyboard, NULL );

hr = g_pKeyboard->SetDataFormat( &c_dfDIKeyboard );

hr = g_pKeyboard->SetCooperativeLevel( hDlg, dwCoopFlags );

hr = g_pKeyboard->Acquire();

Membaca keyboard bahkan lebih mudah daripada mempersiapkan itu. Yang harus kita lakukan adalah mempersiapkan array 256-byte dan menyebarkannya ke DirectInput dengan keyboard yang diperoleh untuk query negaranya:

BYTE diks[256]; // DirectInput keyboard state buffer

ZeroMemory( diks, sizeof(diks) );

hr = g_pKeyboard->GetDeviceState( sizeof(diks), diks );

Perhatikan bagaimana kita menghapus buffer dan kemudian menyebarkannya ke DirectInput. Seperti GetAsyncKeyState, kunci tertentu Kode harus digunakan setelah membaca query untuk setiap tombol. Dalam kasus ini, semua kunci yang diwakili oleh simbolik konstanta, seperti: 

DIK_RETURN The return key

DIK_SPACE The space key

DIK_A … DIK_Z The alphabetic keys

DIK_F1 … DIK_F10 The function keys

Sekarang, untuk query kunci tertentu, kita harus menguji bit yang paling signifikan dari posisi array yang sesuai. Jika posisi yang diatur ke satu, kuncinya saat ini sedang ditekan. Dengan demikian, untuk memeriksa apakah tombol Kembali adalah diaktifkan, kode berikut dapat digunakan: 

 bool return_pressed=(buffer[DIK_RETURN] & 0x80)!=0);

Seperti biasa, kita bisa membaca kombinasi, sehingga kami dapat memeriksa apakah beberapa tombol yang ditekan secara bersamaan. Karena hanya ada satu DirectInput membaca di awal, ini hanya berbagai pencarian. Membaca keyboard benar-benar mudah. Tapi kita harus berhati-hati dengan mendapatkan dan unacquiring yang perangkat, yang dapat membuat kontroler masukan kami kerusakan. Kadang-kadang, terutama pada beberapa tingkat kooperatif mode, kita bisa kehilangan kontak dengan keyboard sesaat. Ini disebut unacquiring perangkat. Yang paling alasan populer untuk ini adalah bahwa aplikasi kita pindah ke latar belakang, sehingga kehilangan akses keyboard mendukung aplikasi lain, yang sekarang di latar depan. Beberapa acara lain mungkin membuat kita kehilangan jejak perangkat kami juga. Jika ini terjadi, kita akan menemukan dalam panggilan GetDeviceState berikutnya, yang akan gagal. Kami kemudian harus reacquire keyboard sehingga kami dapat terus query negaranya. Hal ini dicapai sebagai berikut: 

BYTE diks[256]; // DirectInput keyboard state buffer

ZeroMemory( diks, sizeof(diks) );

hr = g_pKeyboard->GetDeviceState( sizeof(diks), diks );

if( FAILED(hr) )

{

hr = g_pKeyboard->Acquire();

while( hr == DIERR_INPUTLOST || hr== DIERR_OTHERAPPHASPRIO)

hr = g_pKeyboard->Acquire();

}

Perhatikan bagaimana kita mendeteksi kesalahan dan terus menelepon Memperoleh sampai kita memperoleh kembali akses ke perangkat. Setelah kami selesai dengan aplikasi kita, saatnya untuk melepaskan semua objek DirectInput damai. Melepaskan keyboard adalah proses dua langkah. Pertama, kita unacquire perangkat, kemudian lepaskan struktur datanya. Kedua, kita harus menghapus obyek DirectInput utama. Secara keseluruhan, urutan kehancuran dicapai dengan menggunakan kode berikut:

if( g_pKeyboard ) g_pKeyboard->Unacquire();

SAFE_RELEASE( g_pKeyboard );

SAFE_RELEASE( g_pDI );

Perhatikan bahwa kita menggunakan macro SAFE_RELEASE disediakan dengan DirectX untuk memastikan bahwa semua struktur data dan memori yang dialokasikan akan dihapus.

Mouse 

Sejak awal mereka pada akhir 1960-an sebagai perangkat input CAD, mouse telah disesuaikan untuk banyak kegunaan termasuk game komputer. Mereka sangat populer di game PC, tapi game konsol biasanya tidak mendukung mereka. Tidak seperti keyboard atau joystick, mouse tidak hanya menghasilkan tombol atau tombol yang ditekan, tapi 2D
posisi juga. Ini menyediakan pilihan yang lebih banyak masukan pada biaya kurva belajar yang lebih tinggi untuk pemain. Mouse dapat digunakan dalam berbagai skenario, dari unit memetik dalam judul strategi real-time untuk populer mouselook ditemukan di sebagian besar penembak orang pertama. Dalam semua kasus, pengoperasian mouse dapat dibagi menjadi transmisi informasi posisional (berkat sensor mouse internal) dan mengirim tekan tombol dan pesan rilis. Mari kita periksa bagaimana mouse beroperasi di bawah DirectInput. Kode sumber ini sangat mirip dengan keyboard meminta karena DirectInput memperlakukan semua perangkat yang sama. Hal ini menguntungkan bagi programmer karena rincian paling dalam yang tersembunyi. Mari kita asumsikan kita memiliki objek DirectInput utama dan berjalan, dan mulai dengan penciptaan perangkat lulus: 

LPDIRECTINPUTDEVICE g_pMouse;

HRESULT hr;

hr = g_pDI->CreateDevice(GUID_SysMouse, &g_pMouse, NULL);

Seperti yang Anda lihat, sangat mirip dengan meminta keyboard, satu-satunya perbedaan menjadi GUID kami lulus untuk meminta perangkat yang diinginkan. Kemudian, format data diatur sebagai berikut:

hr = g_pMouse->SetDataFormat(&c_dfDIMouse);

Dalam hal ini, parameter c_dfDIMouse memberitahu DirectInput kita akan melewati struktur

DIMOUSESTATE structure to

IDirectInputDevice::GetDeviceState.

Struktur ini memiliki tanda tangan berikut: 

typedef struct DIMOUSESTATE {

LONG lX;

LONG lY;

LONG lZ;

BYTE rgbButtons[4];

} DIMOUSESTATE, *LPDIMOUSESTATE;

Struktur ini mengembalikan X dan posisi Y, dan Z sumbu opsional, yang biasanya ditugaskan untuk roda. Kemudian, tombol array bekerja seperti array Keyboard. Tombol ditekan jika bit high-order diatur. Avarian dari struktur ini adalah DIMOUSESTATE2, ditetapkan oleh c_dfDIMouse2 parameter. Satu-satunya perbedaan adalah bahwa yang terakhir mendukung delapan tombol bukannya empat didukung oleh DIMOUSESTATE. Ini terutama berguna dalam tikus tertentu yang digunakan untuk sistem CAD, misalnya. Setelah format data telah ditetapkan, kita perlu mengatur level kooperatif. Tidak ada kejutan di sini, karena kode tersebut persis sama dengan versi Keyboard:

hr=g_pMouse>SetCooperativeLevel(hWnd,DISCL_EXCLUSIVE|DISCL_FOREGROUND;

Selain itu, kita perlu untuk mendapatkan siap menggunakan perangkat dengan baris: 

g_pMouse->Acquire();

Berikut adalah kode sumber penuh di review: 

LPDIRECTINPUTDEVICE g_pMouse;

HRESULT hr = g_pDI->CreateDevice(GUID_SysMouse, &g_pMouse, NULL);

hr = g_pMouse->SetDataFormat(&c_dfDIMouse);

hr = g_pMouse->SetCooperativeLevel(hWnd,

DISCL_EXCLUSIVE | DISCL_FOREGROUND);

g_pMouse->Acquire();

Membaca dari mouse ini dicapai dengan panggilan GetDeviceState, yang akan mengembalikan LPDIMOUSESTATE struktur. Kode sumber akan: 

DIMOUSESTATE dims; // DirectInput mouse state structure

ZeroMemory( &dims, sizeof(dims) );

hr = g_pMouse->GetDeviceState( sizeof(DIMOUSESTATE), &dims );

if( FAILED(hr) )

{

hr = g_pMouse->Acquire();

while( hr == DIERR_INPUTLOST || hr == DIERR_OTHERAPPHASPRIO ||

hr == DIERR_NOTACQUIRED)

hr = g_pMouse->Acquire();

}

Perhatikan bagaimana saya telah menambahkan kode pencegahan unacquiring untuk menghindari kehilangan jejak mouse kita karena kejadian tak terduga. Selain itu, kode ini sangat mirip dengan membaca keyboard.Untuk mengakses mouse atribut, yang harus kita lakukan adalah: 

int MouseX = dims.lX;

int MouseY = dims.lY;

bool lbutton = (dims.rgbButtons[0] & 0x80)!=0);

Biasanya, tombol 0 ditugaskan untuk tombol kiri mouse, tombol 1 ditugaskan untuk orang yang tepat, dan tombol 2 adalah ditugaskan untuk tombol tengah (jika tersedia). Mengenai posisi, ingat bahwa mouse adalah relatif perangkat penunjuk. Ketika pertama kali diperoleh, posisi mouse adalah ulang ke (0,0).Kemudian, masing-masing membaca baru akan kembali perpindahan dari yang terakhir. Jadi, jika kita menggerakkan mouse vertikal, kita akan melihat perpindahan dalam Y arah. Tetapi ketika kita menghentikan gerakan, nilai mouse membaca akan kembali ke (0,0). Ingat, mouse tidak bekerja dengan posisi melainkan bekerja dengan perpindahan. Terakhir, tapi bukan yang terakhir, mouse biasanya dikonfigurasi poin X begitu negatif ke kiri, dan titik Y positif menjauh dari tubuh kita seperti kita duduk di meja. Selain itu, ingatlah untuk melepaskan mouse segera setelah Anda selesai menggunakannya. Kode ini lagi sangat mirip dengan kode rilis Keyboard:

if( g_pMouse ) g_pMouse->Unacquire();

SAFE_RELEASE( g_pMouse );

SAFE_RELEASE( g_pDI );

Mouselook
Sebuah penggunaan populer dari mouse adalah untuk menerapkan mouselook klasik yang digunakan dalam banyak penembak orang pertama. Itu mouselook mudah untuk kode setelah Anda memahami bagaimana mouse beroperasi.Yang harus kita lakukan adalah menggunakan kunci mengubah posisi kami, dan menggunakan mouse untuk reorientasi sudut pandang kita.Saya akan menjelaskan efek sepenuhnya, sehingga kita bisa menggabungkan apa yang telah kita pelajari tentang keyboard dan mouse. Permainan harus memiliki setidaknya empat derajat kebebasan. Kita harus memiliki posisi yang terdiri dari X dan Z nilai, dan kemudian yaw dan sudut lapangan. Nilai Y sering ditambahkan ke dalam campuran sehingga kita dapat mendaki berbeda ketinggian, tapi gulungan umumnya tidak diperlukan. Kami akan menggunakan pemetaan berikut: 

  • Mouse: Mouselook 
  • Panah kiri: memberondong kiri 
  • Panah kanan: memberondong tepat 
  • Panah: Maju
  • Panah bawah: Mundur 

Mari kita fokus pertama pada keyboard dan melupakan orientasi kedua. Dengan asumsi standar DirectInput Keyboard, kita akan membutuhkan kode berikut untuk menerapkan perilaku yang diinginkan: 

int strafe= (buffer[DIK_RIGHT] & 0x80)!=0) – (buffer[DIK_LEFT] & 0x80)!=0);

int fwd= (buffer[DIK_UP] & 0x80)!=0) – (buffer[DIK_DOWN] & 0x80)!=0);

Perhatikan bagaimana kita telah elegan dikemas kontrol kursor. Dengan mengurangi arah yang berlawanan, kita mendapatkan dua nomor, memberondong dan fwd, dalam kisaran -1 ..1. Jumlah ini kemudian digunakan untuk menggerakkan posisi kami memperbarui rutin:

pos.x += fwd*FWDSPEED*elapsed*cos(yaw) +

strafe*STRAFESPEED*elapsed*cos(yaw+3.1416/2);

pos.z += fwd*FWDSPEED*elapsed*sin(yaw) +

strafe*STRAFESPEED*elapsed*sin(yaw+3.1416/2);

fwd dan strafe variabel mengontrol bagaimana masing-masing anggota dikalikan dengan -1-, 0, atau 1-untuk melakukan yang diinginkan efek. Sekarang, mari kita merawat lapangan dan yaw melalui mouse: 

yaw+= YAWSPEED*elapsed*dims.lX;

pitch+= PITCHSPEED* elapsed*dims.lY;

Jadi sekarang kita memiliki pos.x baru kami, pos.z, yaw, dan struktur pemain lapangan diperbarui. Jelas, kita perlu menjaga dua perangkat hidup, dan kita perlu mendefinisikan semua konstanta dalam topi untuk mengatur kecepatan yang diinginkan. Perhatikan bagaimana setiap konstan dikalikan dengan faktor waktu berlalu, yang menyimpan waktu yang dibutuhkan untuk membuat frame terakhir. Dengan cara ini kita memastikan perangkat-independen kinerja. Untuk kelengkapan, di sini adalah source code yang diperlukan untuk menghitung semua parameter kamera spesifik siap untuk dipasang ke OpenGL atau DirectX pipa: 

point campos(pos.x,pos.y,pos.z);

point camlookat(pos.x+cos(yaw)*cos(pitch),pos.y+sin(pitch),

pos.z+sin(yaw)*cos(pitch));

lookat perhitungan koordinat hanya pemetaan bola menggunakan pitch dan yaw.Tergantung pada bagaimana kapak Anda ditata, tanda mungkin berubah atau Anda mungkin perlu menambahkan sudut konstan seperti Pi ke lapangan nilai-nilai.

Joystick 

Joystick ini diperkenalkan pada 1970-an sebagai cara untuk mewakili data posisi dengan mudah. Model pertama adalah dibatasi untuk tes biner: joystick itu kembali 0 atau 1 untuk mewakili apakah itu sedang diaktifkan atau tidak. Dengan demikian, sebagian besar joystick diperbolehkan sembilan nilai posisi: satu untuk joystick yang berpusat dan delapan untuk N, S, E, W, SW, SE, NW, dan NE. Biasanya, posisi joystick yang dipetakan ke nilai integer, dengan sedikit tambahan digunakan untuk mewakili tekan tombol. Kebanyakan joystick dari komputer delapan-bit seperti ini. Sebagai rumah pengembangan perangkat lunak menciptakan simulasi yang lebih baik, joystick mulai membaik juga. Kontinyu-output joystick muncul untuk memenuhi komunitas simulasi penerbangan, tetapi karena mereka menawarkan kontrol yang lebih baik, mereka menjadi mainstream. Hari ini, semua joystick memetakan kecenderungan tongkat ‘untuk terus menerus rentang nilai, sehingga kita dapat mengontrol karakter kita tepat. Mengontrol joystick sedikit lebih kompleks daripada bekerja dengan keyboard atau mouse. Joystick datang berbagai bentuk dan konfigurasi, sehingga proses pengambilan deteksi dan data sedikit lebih terlibat. Beberapa gamepads memiliki dua controller, sedangkan yang lain memiliki tongkat dan point-of-view (POV). Selain itu, jumlah tombol bervariasi dari model ke model, membuat proses mendeteksi joystick trivial. Di DirectInput, kita harus bertanya API untuk menghitung perangkat sehingga autodetects joystick sehingga kita dapat menggunakan itu. Untuk contoh ini, saya akan menganggap kita sudah memiliki objek DirectInput siap.Langkah pertama adalah meminta DirectInput untuk menghitung setiap joystick itu mendeteksi. Hal ini dicapai dengan menggunakan panggilan: 

HRESULT hr = g_pDI->EnumDevices( DI8DEVCLASS_GAMECTRL,

EnumJoysticksCallback,

NULL, DIEDFL_ATTACHEDONLY ) ) )

Parameter pertama memberitahu DirectInput yang jenis perangkat kita ingin mendeteksi. Ini bisa menjadi mouse (DI8DEVCLASS_POINTER) atau keyboard (DI8DEVCLASS_KEYBOARD). Dalam hal ini, kami meminta permainan controller, yang berlaku untuk kedua gamepads dan joystick dari semua jenis. Sekarang sampai pada bagian rumit: 

DirectInput mendeteksi semua perangkat kandidat. Bayangkan bahwa kita memiliki dua joystick (misalnya, dalam dua pemain permainan). DirectInput akan perlu kembali dua perangkat. Jadi, bukannya melakukan sihir parameter memungkinkan ini, DirectInput bekerja dengan callback. Callback adalah fungsi user-defined yang dipanggil dari
dalam pelaksanaan system call. Dalam kasus ini, kami menyediakan EnumJoysticksCallback tersebut, fungsi kita menulis yang akan mendapatkan dipicu sekali untuk setiap terdeteksi joystick. Internal dari fungsi yang harus mengambil GUID, mengalokasikan objek perangkat, dan sebagainya. Ini adalah sedikit lebih rumit daripada kembali daftar pointer, tapi di sisi lain, memungkinkan fleksibilitas yang lebih besar. Kami akan memeriksa callback kami dalam satu detik. Mari kita pertama menyelesaikan profil panggilan dengan menyatakan bahwa parameter ketiga adalah parameter pengguna didefinisikan sebagai dilewatkan ke callback (biasanya NULL), sedangkan parameter terakhir adalah bendera pencacahan. 
DIEDFL_ATTACHEDONLY digunakan untuk menyatakan bahwa kita hanya ingin mendeteksi alat-alat yang terpasang dengan benar dan diinstal, cara DIEDFL_FORCEFEEDBACK sama digunakan untuk membatasi pencacahan untuk memaksa umpan balik joystick. Berikut adalah source code untuk fungsi numJoysticksCallback: 

BOOL CALLBACK EnumJoysticksCallback( const DIDEVICEINSTANCE* pdidInstance, VOID* pContext )

{

HRESULT hr;

hr = g_pDI->CreateDevice( pdidInstance->guidInstance, &g_pJoystick, NULL );

if( FAILED(hr) ) return DIENUM_CONTINUE;

return DIENUM_STOP;

}

Perhatikan bagaimana callback menerima contoh perangkat, jadi kami hanya harus membuat perangkat dipake misalnya. Ini adalah contoh yang relatif sederhana, di mana kita kembali ke aplikasi segera setelah kami telah menemukan satu joystick. Jika pengguna memiliki dua joystick yang terpasang ke komputer, kode ini hanya akan menghitung pertama. Varian dapat digunakan untuk menyimpan setiap joystick dalam linked list, sehingga pengguna dapat kemudian pilih joystick dia benar-benar ingin Anda gunakan dari daftar drop-down. 

Setelah joystick telah disebutkan, kita dapat mengatur format data dan tingkat koperasi.Tidak ada berita herejust pengulangan dari kode yang diperlukan untuk keyboard dan mouse: 

HRESULT hr = g_pJoystick->SetDataFormat( &c_dfDIJoystick );

HRESULT hr = g_pJoystick->SetCooperativeLevel( hWnd, DISCL_EXCLUSIVE |

DISCL_FOREGROUND );

Ekstra potongan kode harus digunakan untuk mengatur rentang output untuk joystick.Karena perangkat dengan sumbu analog, apa yang akan menjadi rentang nilai output? Apakah akan -1 .. 1 atau -1000 .. 1000? Kita perlu membuat yakin perilaku joystick diinisialisasi dengan benar. Dalam kasus kami, kami akan membuat joystick merespon dengan nilai dari -100 .. 100, seperti persentase. Untuk melakukannya, kita perlu menggunakan callback kedua. Tetapi, pertama kita membutuhkan panggilan berikut, yang meminta benda-benda yang berhubungan dengan joystick: 

g_pJoystick->EnumObjects(EnumObjectsCallback, (VOID*)hWnd, DIDFT_ALL);

Obyek dapat kapak, tombol, POVs, dan sebagainya. Lalu, panggilan akan merespon melalui callback disediakan. Di sini adalah kode sumber untuk itu callback, yang melakukan inisialisasi sumbu: 

BOOL CALLBACK EnumObjectsCallback( const DIDEVICEOBJECTINSTANCE* pdidoi,

VOID* pContext )

{

HWND hDlg = (HWND)pContext;

if( pdidoi->dwType & DIDFT_AXIS )

{

DIPROPRANGE diprg;

diprg.diph.dwSize = sizeof(DIPROPRANGE);

diprg.diph.dwHeaderSize = sizeof(DIPROPHEADER);

diprg.diph.dwHow = DIPH_BYID;

diprg.diph.dwObj = pdidoi->dwType; // Specify the enumerated axis

diprg.lMin = -100;

diprg.lMax = +100;

if( FAILED( g_pJoystick->SetProperty( DIPROP_RANGE, &diprg.diph ) ) )

return DIENUM_STOP;

}

}

Seperti dengan callback sebelumnya, rutin ini dipanggil sekali untuk setiap objek.Kemudian, jika pemeriksaan kalimat apakah objek dikembalikan sebenarnya sumbu, dan jika demikian, menggunakan panggilan setProperty untuk menentukan respon jangkauan. The setProperty panggilan dapat digunakan untuk fungsi yang lebih eksotis, seperti kalibrasi joystick. Itu 

Parameter pertama mendukung banyak konstanta simbolis lainnya yang dapat digunakan untuk tujuan ini. Untungnya, membaca dari joystick tidak serumit memulainya. Berikut kode sumber tidak banyak berbeda dari keyboard atau mouse. Satu-satunya perbedaan adalah bahwa kita perlu memanggil Poll () sebelum benar-benar membaca dari joystick. Joystick yang disurvei perangkat, yang berarti mereka tidak menghasilkan interrupt, sehingga perlu 
melakukan jajak pendapat sebelum mengambil negara mereka. Selain itu, kode sangat mudah: 

hr = g_pJoystick->Poll();

if( FAILED(hr) )

{

hr = g_pJoystick->Acquire();

while( hr == DIERR_INPUTLOST || hr== DIERR_OTHERAPPHASPRIO)

hr = g_pJoystick->Acquire();

return S_OK;

}

DIJOYSTATE js;

hr = g_pJoystick->GetDeviceState( sizeof(DIJOYSTATE), &js ));

Kode ini mengembalikan struktur DIJOYSTATE dengan semua joystick informasi negara. Profil panggilan adalah sebagai berikut: 

typedef struct DIJOYSTATE {

LONG lX;

LONG lY;

LONG lZ;

LONG lRx;

LONG lRy;

LONG lRz;

LONG rglSlider[2];

DWORD rgdwPOV[4];

BYTE rgbButtons[32];

} DIJOYSTATE, *LPDIJOYSTATE;

Struktur ini harus cukup untuk sebagian besar menggunakan. Namun, ada struktur yang lebih terlibat dengan banyak ekstra parameter yang tersedia di bawah nama DIJOYSTATE2. Yang harus Anda lakukan adalah mengubah panggilan SetDataFormat sesuai: 

HRESULT hr = g_pJoystick->SetDataFormat( &c_dfDIJoystick2 );

Respon Curves 

Kita telah melihat bagaimana joystick analog memetakan posisi controller untuk berbagai berkesinambungan nilai sehingga kita bisa mendeteksi variasi halus. Perilaku ini dapat menjadi sekutu terbaik kami atau mimpi buruk tergantung bagaimana kita 
menanganinya. Sebagai contoh, bayangkan sebuah permainan seperti Mario, di mana tidak ada kontrol kecepatan: Mario hanya berjalan kiri, berjalan tepat, atau berdiri diam. Jadi bagaimana kita menerapkan bahwa menggunakan controller analog? Kita harus 
discretize rentang output jadi kami hanya mendapatkan tiga nilai yang mungkin: 

-1 Untuk menjalankan kiri

 0 untuk berdiri diam 

 1 untuk menjalankan hak

Dengan asumsi bahwa output analog dalam rentang -100 .. 100, kita perlu mendefinisikan fungsi transfer yang memetakan nomor dalam kisaran -100 .. 100 ke nomor dalam kisaran -1 .. 1. Memilih pengalihan fungsi-sering disebut respon kurva-akurat adalah kunci untuk menjaga komunikasi yang baik dengan pemain. Bayangkan bahwa kita melakukan sesuatu seperti ini: 

-1 Untuk nilai [-100 .. -1] 

0 untuk nilai 0 

1 untuk nilai-nilai [1 ​​.. 100] 

Ini berarti sedikit variasi atau Decentering dari controller akan memicu gerakan, membuat 

unplayable permainan. Untuk jenis-jenis kurva respon (yang mengubah rentang analog ke satu diskrit), kita harus menyediakan cukup rentang dinamis sehingga setiap nilai akan dipetakan dengan benar. Sebagai contoh, banyak solusi yang lebih baik akan 
-1 Untuk nilai [-100 .. -25]  untuk nilai [-24 .. 24] 1 untuk nilai-nilai [25 .. 100] 
Decalibrations cara ini minimal tidak akan memicu joystick oleh kesalahan. Kurva ini respon dapat dilihat pada Gambar 5.1. 

Gambar 5.1. Kurva respons tanpa (kiri) dan dengan (kanan) zona mati. 
Image

 Kebanyakan game menggunakan kontrol analog hari ini. Pengendali analog mengembalikan nilai dalam kisaran yang kontinyu, dan kita menggunakan nilai tersebut untuk melaksanakan berbagai tingkat pengaruh (baik itu kecepatan, berputar, dll) dalam dunia permainan kami. Sebuah pesawat akan menyelam lebih cepat jika kita tarik controller sepenuhnya, mobil akan mempercepat lebih agresif, dan sebagainya. Namun, kontrol analog juga membutuhkan kurva respon. Tanpa kurva respons, mobil akan tetap balik jika controller hanya minimal decalibrated. Meskipun ini adalah kemungkinan besar masalah controller, kami kode harus berurusan dengan itu sehingga pemain menikmati pengalaman bermain mulus. Seperti yang Anda duga, kita mulai dengan menetralkan zona sekitar pusat controller untuk mencegah gerakan karena kalibrasi buruk. Tapi akan netralisasi peta kecepatan linear ke controller posisi (seperti pada Gambar 5.2, kiri), atau akan menggunakan kurva (seperti yang di sebelah kanan pada Gambar 5.2)? Menggunakan kurva seperti parabola akan berguna untuk menerapkan efek inersia, di mana pemain perlu mengontrol rasa kecenderungan hati-hati. Itu membuat permainan sedikit lebih keras untuk menguasai karena kesalahan kecil dalam kontrol menghasilkan variasi besar dalam efek. 

Gambar 5.2. Jenis kurva respon.

 Image

 Abstraksi Hardware 

Game yang berjalan pada platform yang mendukung berbagai kontroler masukan menawarkan pengalaman gaming terkaya. Ini adalah kasus tidak hanya dengan PC (yang menggunakan keyboard, mouse, dan joystick), tetapi juga dengan sebagian besar 
konsol game melalui perangkat eksotis. Dalam beberapa tahun terakhir, kami telah menggunakan standar controller, pesawat-gaya joystick, snowboards, bantalan tarian segala macam, dan bahkan pancing! Ada dua jalur pengembang mungkin mengikuti ketika coding untuk platform tersebut.Beberapa game akan memilih untuk menggunakan satu (dan hanya satu) dari pengendali yang ada. Hal ini terjadi di sebagian besar game strategi, yang untuk alasan gameplay biasanya dikodekan dengan mouse PC dalam pikiran. Di sisi lain, beberapa permainan lain akan membiarkan pengguna memilih metode input yang dia inginkan untuk mempekerjakan.Aksi game untuk PC sering dapat bermain dengan keyboard, joystick, gamepad, dan bahkan kadang-kadang mouse.Meskipun baik untuk pemain, itu datang pada biaya rumit kode penanganan masukan signifikan, dan ini adalah persis di mana hardware abstraksi menjadi masalah. Dengan abstraksi perangkat keras, maksud saya coding permainan dengan “virtual” controller dalam pikiran, sehingga setiap controller yang sesuai dengan profil abstrak dapat dipasang ke dalam kode dengan nol dampak pada mesin permainan. Semua Anda perlu Anda lakukan adalah menulis kontroler handler generik (biasanya, sebuah kelas abstrak murni) yang spesifik pengendali berasal melalui warisan. Kemudian, pada saat runtime, hanya jenis kontroler dipilih oleh pemain adalah dibuat, menyediakan cara halus dan elegan mengintegrasikan kontroler yang berbeda.Gambar 5.3 menunjukkan bagaimana Struktur kelas ini akan bekerja. 

 Gambar 5.3. Sebuah struktur kelas mungkin untuk mengimplementasikan perangkat abstraksi.

 Image

Perhatikan bagaimana, demi kejelasan, saya telah membuat sebuah kontroler global yang sangat menyerupai sebuah game konsol. Ini memiliki dua kontroler arah dan empat tombol. Input ini kemudian dapat dipetakan ke keyboard  (Menggunakan tombol untuk pilihan yang berbeda), sebuah joystick analog, atau joystick digital. Satu-satunya barang kita perlu diwaspadai adalah kepekaan yang berbeda ditemukan di tombol dan tongkat. Sebuah kunci dapat ditekan atau dilepaskan, sehingga hanya membutuhkan nilai biner, sedangkan joystick mungkin akan memetakan ke satu set terus menerus. Dengan demikian, beberapa 
kode diskritisasi akan diminta untuk menawarkan output standar. Sebuah alternatif yang lebih baik jika Anda menggunakan DirectInput adalah untuk mengambil keuntungan dari pemetaan tindakan, yang memungkinkan perangkat Anda untuk kembali tidak nilai-nilai negara tertentu tetapi berorientasi pada nilai permainan. Kita dapat menetapkan aktivitas perangkat untuk acara permainan, sehingga controller masukan akan menerima nilai-nilai yang entah bagaimana perangkat independen. Untuk Misalnya, kita dapat memiliki joystick dan menetapkan gerakan pada sumbu X ke “muka kiri” tindakan. Kita bisa kemudian menetapkan tombol khusus untuk acara yang sama, sehingga kode kontrol input menjadi independen perangkat. Kita dapat mengubah perangkat, dan sebagai kontrol yang menerima pesan abstrak, semuanya akan tetap bekerja. Pemetaan tindakan tidak sulit untuk mendapatkan bekerja di bawah DirectInput, meskipun kode terlalu panjang untuk menjadi rinci di sini. Langkah pertama adalah menentukan tindakan dalam permainan kami: 

enum GAME_ACTIONS {

WALK,

WALK_LEFT,

WALK_RIGHT,

JUMP

QUIT

};

Kemudian, kita harus menyediakan peta tindakan yang berkaitan sumbu dan tombol atau kunci untuk tindakan yang berbeda: 

DIACTION g_adiaActionMap[] =

{

// Joystick input mappings

{ WALK, DIAXIS_FIGHTINGH_LATERAL, 0, ACTION_NAMES[WALK], },

{ JUMP, DIBUTTON_FIGHTINGH_JUMP, 0, ACTION_NAMES[JUMP], },

// Keyboard input mappings

{ WALK_LEFT, DIKEYBOARD_LEFT, 0, ACTION_NAMES[WALK_LEFT], },

{ WALK_RIGHT, DIKEYBOARD_RIGHT, 0, ACTION_NAMES[WALK_RIGHT], },

{ JUMP, DIKEYBOARD_J, 0, ACTION_NAMES[JUMP], },

{ QUIT, DIKEYBOARD_Q, DIA_APPFIXED, ACTION_NAMES[QUIT], },

// Mouse input mappings

{ WALK, DIMOUSE_XAXIS, 0, ACTION_NAMES[WALK], },

{ JUMP, DIMOUSE_BUTTON0, 0, ACTION_NAMES[JUMP], },

};

Inisialisasi sistem input akan sangat mirip dengan contoh sebelumnya. Semua kita perlu 

lakukan adalah menghitung semua perangkat input didukung oleh peta tindakan. Hal ini akan dicapai dengan panggilan untuk EnumerateDevicesBySemantics, yang akan menerima peta tindakan dan membutuhkan callback di mana semua perangkat mungkin akan dikembalikan. Callback kemudian harus membangun peta tindakan untuk itu spesifik 
perangkat. Setelah itu dibersihkan, panggilan membaca berikutnya akan kembali perangkat-data spesifik, seperti berikut contoh: 

hr = pdidDevice->Poll();

hr = pdidDevice->GetDeviceData( sizeof(DIDEVICEOBJECTDATA),

rgdod, &dwItems, 0 );

for( DWORD j=0; j<dwItems; j++ )

{

UINT_PTR dwAction = rgdod[j].uAppData;

switch( dwAction )

{

case WALK:

(…)

}

}

Perhatikan bahwa GetDeviceData mengembalikan daftar tindakan, sehingga kami dapat memproses beberapa tombol atau kunci dalam yang sama lingkaran.

 Tanggapan 

Banyak pengendali masukan datang dengan semacam umpan balik kekuatan hari ini, dari gamepads gemuruh pada permainan konsol untuk joystick umpan balik kekuatan penuh. Teknik ini hanyalah lapisan lain dalam pengejaran kita perendaman 
dan realisme. Hardware umpan balik kekuatan mensimulasikan getaran dan efek berbasis kekuatan lain dengan memasukkan satu atau lebih motor yang dapat dikonfigurasi melalui pemrograman. Motor ini bervariasi posisi atau perlawanan dari permainan controller, dan dengan pemrograman urutan gerakan cepat, ilusi getaran dan kekuatan yang dicapai. Jumlah motor dan jenis kontroler menentukan kualitas efek. Pada ujung bawah spektrum, semua gamepads-sejak awal PlayStation controller dukungan semacam umpan balik kekuatan, jenis biasanya berbeda getaran seperti ponsel. Joystick dapat melakukan jauh lebih canggih rutinitas. Sebagai contoh, adalah mungkin untuk program joystick untuk menggambar lingkaran dengan tongkat, serta banyak efek menarik lainnya. Perangkat umpan balik kekuatan Pemrograman melibatkan tiga langkah. Pertama, kita perlu cara untuk membuat atau menggambarkan efek yang diinginkan dalam hal bagaimana hal itu mempengaruhi posisi controller, kekuatan, dan sebagainya. Beberapa alat yang tersedia untuk tujuan ini. Kedua, efeknya harus dimuat ke API masukan. Ketiga, kita perlu cara untuk mereproduksi efek pada runtime, baik secara manual memicu atau dengan menugaskan ke acara tertentu seperti pewaktu atau tekan tombol tertentu. Sayangnya, tiga langkah sebagian besar tergantung platform, karena pengembangan aplikasi yang mendukung umpan balik kekuatan sangat tergantung pada API. Untuk sisa bagian ini, kita akan fokus pada Microsoft solusi DirectInput untuk memberikan contoh bagaimana perangkat ini bekerja. DirectInput memungkinkan penciptaan efek umpan balik kekuatan baik dari alat-konten penciptaan eksternal atau oleh menggunakan satu set khusus perintah dari dalam aplikasi kita. Cara termudah adalah dengan menggunakan alat penciptaan, disebut Angkatan Editor (lihat Gambar 5.4). Editor memiliki tampilan dan nuansa mirip dengan aplikasi audio, tetapi bekerja dengan kurva kekuatan bukan suara. Kita dapat memilih berbagai jenis bentuk gelombang (persegi, gigi gergaji, sinus, dan sebagainya) dan memodulasi mereka, sehingga efek yang dihasilkan dapat dipercaya. Kita bahkan dapat prototipe efek dari editor, mendapatkan preview tentang bagaimana produk akhir akan merasa. Ketika kami senang dengan hasilnya, kami dapat menyimpannya ke file. FFE, yang kemudian akan dibaca oleh DirectInput. 

 Gambar 5.4. Microsoft Angkatan Editor, dibangun ke dalam DirectX SDK.

 Image

Dari sudut aplikasi pandang, perbedaan mulai dari tahap pencacahan perangkat. Kita perlu query untuk perangkat gaya umpan balik yang kompatibel saja, sebagai berikut: 

HRESULT hr = g_pDI->EnumDevices( 0, EnumFFDevicesCallback, 0,

DIEDFL_ATTACHEDONLY | DIEDFL_FORCEFEEDBACK );

Tidak ada perubahan pada fungsi EnumDevicesCallback diperlukan. Sebuah joystick gaya umpan balik adalah, sejauh perangkat pergi, hanya joystick biasa yang dapat dibaca seperti biasa. Langkah selanjutnya adalah membaca yang relevan efek dari file FFE.. Satu berkas tersebut dapat berisi beberapa efek, jadi kita akan menggunakan panggilan Enum dengan Callback sebuah berfungsi untuk mengambil efek tersebut. Berikut adalah panggilan Enum: 

HRESULT hr = g_pFFDevice->EnumEffectsInFile( strFileName,

EnumAndCreateEffectsCallback,

NULL, DIFEF_MODIFYIFNEEDED );

Mari kita sekarang memeriksa kode untuk callback. Untuk mempermudah, saya akan menganggap file FFE. Hanya berisi satu Efek, maka setelah mengambilnya, tidak ada panggilan lebih lanjut akan ditempuh.Berikut ini adalah implementasi yang disarankan dari 
rutin, yang menyimpan efek dalam struktur gigih untuk akses nanti. Seperti biasa, pengecekan error dihapus untuk kejelasan: 

LPDIRECTINPUTEFFECT pDIEffect;

BOOL CALLBACK EnumAndCreateEffectsCallback( LPCDIFILEEFFECT pDIFileEffect, VOID* pvRef )

{

HRESULT hr = g_pFFDevice->CreateEffect( pDIFileEffect->GuidEffect,

pDIFileEffect->lpDiEffect,

&pDIEffect, NULL );

return DIENUM_STOP;

}

Kemudian, yang perlu kita lakukan adalah memicu efek yang diperlukan. Ini adalah proses dua langkah. Pertama, kita perlu berhenti setiap angkatan sebelumnya, sehingga kedua efek tidak bertentangan. Kedua, kita memicu efek baru. Berikut ini adalah sederhana contoh-pertama, berhenti untuk efek lainnya: 

HRESULT hr = g_pFFDevice->SendForceFeedbackCommand( DISFFC_STOPALL );

kedua, pelaksanaan efek: 

HRESULT hr = pDIEffect->Start(1, 0);

Parameter pertama adalah jumlah pengulangan yang kita inginkan untuk efek, dan parameter kedua adalah bendera parameter. Melewati INFINITE sebagai parameter pertama menyebabkan efek untuk loop selamanya, seperti mesin getaran untuk helikopter. Ini jenis efek harus dihentikan secara manual dengan menelpon ke: 

pDIEffect->Stop();

Kekuatan API umpan balik dari DirectInput sangat komprehensif. Tapi kita hanya menggores permukaan. Sebagai contoh, kita dapat mencampur efek dinamis atau bahkan membuat mereka prosedural tanpa menggunakan Force Editor. Dengan waktu dan banyak eksperimen, banyak menggunakan menarik dapat dirancang.

Penutup 
Input adalah subjek yang luas, membutuhkan banyak teknik. Tapi sayangnya, tidak ada standar yang luas yang tersedia. Meskipun kami telah berfokus pada teknik-teknik khusus untuk PC, sebagian besar ide-ide yang berlaku untuk platform lain baik. Ide seperti abstraksi perangkat, mouselooks, atau kurva respon bersifat universal dan juga digunakan pada platform lainnya. 

http://www.tar.hu/gamealgorithms/

http://www.tar.hu/gamealgorithms/ch05.html

http://www.tar.hu/gamealgorithms/ch05lev1sec1.html

http://www.tar.hu/gamealgorithms/ch05lev1sec2.html

http://www.tar.hu/gamealgorithms/ch05lev1sec3.html

http://www.tar.hu/gamealgorithms/ch05lev1sec4.html

http://www.tar.hu/gamealgorithms/ch05lev1sec5.html

http://www.tar.hu/gamealgorithms/ch05lev1sec6.html

Game Engine

 

Image

Engine bukanlah executable program, artinya engine tidak bisa dijalankan sebagai program yang berdiri sendiri. Diperlukan sebuah program utama sebagai entry point atau titik awal jalannya program. Pada C++, entry point-nya adalah fungsi ‘main().’ Biasanya program utama ini relatif pendek.

Game engine adalah program yang menjadi penggerak suatu program game. fungsionalitas inti biasanya disediakan oleh mesin permainan mencakup mesin render  (“renderer”) untuk 2D atau 3D grafis, mesin fisika atau tabrakan (dan tanggapan tabrakan), suara, script, animasi, kecerdasan buatan, jaringan, streaming, manajemen memori, threading, dukungan lokalisasi, dan adegan grafik. Proses pengembangan permainan sering dihemat oleh sebagian besar menggunakan kembali mesin permainan yang sama untuk menciptakan permainan yang berbeda.

Game engine adalah program yang ‘memotori’ jalannya suatu program game. Kalau game diilustrasikan sebagai ‘musik’ yang keluar dari mp3 player, maka engine adalah ‘mp3 player’ dan program utama adalah ‘data mp3’ yang dimasukkan ke dalam mp3 player tersebut. Dengan adanya engine, waktu, tenaga dan biaya yang dibutuhkan untuk membuat game software menjadi berkurang secara signifikan. Beberapa game dengan jenis dan gameplay yang hampir sama bisa dibuat dengan sedikit usaha bila terlebih dulu dibuat engine-nya. Setelah engine diselesaikan, programmer hanya perlu menambahkan program utama, memakai resources (objek 3D, musik, efek suara) yang baru, dan, jika benar-benar dibutuhkan, sedikit memodifikasi engine sesuai kebutuhan spesifk dari game yang bersangkutan. Program game engine seluruhnya berorientasi objek. Dia lebih bersifat reaktif daripada prosedural. Sulit untuk menggambarkan engine secara keseluruhan dalam flow-chart, karena alur program bisa diatur sesuai dengan keinginan pemakai engine, yaitu game programmer.

Konsep dari game engine sebenernya cukup gampang, yaitu bahan dasar yang diperlukan sebuah game untuk menjalankan tugasnya, merender pixel demi pixel, menghitung physiscs, memperkirakan input tombol, dan lain hal, yang memungkinkan developer kreatif dapat membuat sebuah game dengan engine yang sama menjadi unik satu sama lain. Di analogikan sebagai sebuah mobil, game engine sudah merupakan bagian mobil, sekitar 50% jadi. Mesin dan rangkaian sistem pengapian, sampai pembuangan. Kurang body dan aksesoris.

Sebuah game engine memungkinkan penggunaan kembali komponen komponen yang dapat mempercepat hadirnya game menjadi nyata di layar monitor mu. Beberapa diantara nya yang termasuk dengan itu adalah deteksi tubrukan, tampilan grafis, setting dalam game, artificial intelligence dan lain lain. Semua komponen tadi disatukan dalam satu pake game engine. Artist dan Developer, dapat menambahkan pustaka texture dan model sendiri untuk dijadikan tokoh utama atau setting dunia dalam sebuah engine. Sekali lagi dalam analogi game, model dan texture dalam game engine bisa dibilang sebagai body dan aksesoris mobil. Sebuah game engine dibagi lagi menjadi dua bagian besar, yaitu:

  1. API ( Applicaiton Programming Interfaces ) adalah bagian operating system, services dan libraries yang diperlukan untuk memanfaatkan beberapa feature yang diperlukan. Dalam hal ini contohnya DirectX.
  2. SDK adalah kumpulan dari libraries dan API yang sudah siap digunakan untuk memodifikasi program yang menggunakan operating system dan services yang sama. Biasanya, game engine menyertakan keduanya.

Contohnya dalam Unreal Engine, menyiapkan antarmuka baku bagi programmer untuk menciptakan game nya dengan mudah, melalui scripting engine, yang disebut UnrealScript, dan juga libraries, yang berisi model standar dan texture standar dan juga world editor yang disebut sebagai UnrealED.

 Tipe Tipe Game Engine

1. Roll-your-own game engine

Banyak perusahaan game kecil seperti publisher indie biasanya menggunakan engine nya sendiri. Ini berarti mereka menggunakan API seperti XNA, DirectX atau OpenGL untuk membuat game engine mereka sendiri. Disisi lain, mereka kadang menggunakan libraries komersil atau malah open source. Terkadang mereka malah membuat semuanya dari nol.

Biasanya, game engine tipe ini lebih disukai karena selain kemungkinan besar tersedia gratis, juga memperbolehkan mereka, para developer, lebih fleksibel dalam mengintegrasikan komponen yang diinginkan untuk dibentuk sebagai game engine mereka sendiri.

Kelemahannya, banyak engine yang dibuat dengan cara semacam ini malah menyerang balik developernya. Menara Games Studio membutuhkan satu tahun penuh untuk menyempurnakan game engine nya, hanya untuk di tulis ulang semuanya dalam beberapa hari penggunaan karena adanya bug kecil yang sangat mengganggu.

2. Mostly-ready game engines

Engine engine ini biasanya sudah menyediakan semuanya begitu diberikan pada developer / programmer. Semuanya termasuk contoh GUI, physiscs, libraries model dan texture, dan segalanya. Banyak dari mereka yang sudah benar benar matang, sehingga dapat langsung digunakan untuk scripting sejak hari pertama.

Biasanya game engine semacam ini memiliki batasan batasan, terutama jika dibandingkan dengan game engine sebelumnya yang benar benar terbuka lebar. Hal ini ditujukan agar tidak terjadi terlalu banyak error yang mungkin terjadi setelah sebuah game yang menggunakan engine ini dirilis, dan masih memungkinkan game engine nya itu sendiri untuk mengoptimalkan kinerja game nya. Banyak dari game engine seperti ini, Unreal Engine, Source Engine, id Tech Engine dan sebagainya, yang sudah sangat optimal dibandingkan jika harus membuat dari awal. Hal ini dengan serta merta menyingkat sangat banyak waktu dan jelas, biaya dari para Developer game.

3. Point-and-click engines

Engine untuk point-and-click merupakan engine yang sangat amat dibatasi, tapi dibuat sangat user friendly. Kamu bahkan bisa mulai membuat game mu sendiri menggunakan engine seperti GameMaker, Torque Game Builder dan Unity3D. Dengan sedikit memanfaatkan coding, kamu sudah bisa merilis game point-and-click yang kamu banget.

Kekurangannya terletak pada terbatasnya jenis interaksi yang bisa dilakukan, dan biasanya hal ini mencakup semuanya, mulai dari grafis, hingga tata suara. Tapi bukan berarti game engine jenis ini nggak berguna, bagi developer cerdas dan berdaya kreativitas tinggi, game engine bapuk seperti ini bisa dirubah menjadi sebuah game menyenangkan, seperti Flow. Game engine seperti ini memang ditujukan bagi developer yang ingin menyingkat waktu pemrogramman, dan secepatnya merilis game game mereka.

 Jenis-jenis Game Engine

1. Freeware game engine/open source game engine

  • Blender
  • Golden T Game Engine (GTGE)
  • DXFramework
  • Ogre
  • Aleph One
  • Axiom Engine
  • Allegro Library
  • Box2D
  • Build Engine
  • Cube
  • Cube 2
  • DarkPlaces
  • jMonkeyEngine (jME)
  • Panda3D
  • Sphere

2.  Commercial engines/game engine berbayar (komersial)

  • Alamo
  • A.L.I.V.E
  • BigWorld
  • DXStudio
  • Dunia Engine
  • Euphoria
  • GameStudio
  • Jade Engine
  • Jedi
  • Medusa
  • RPG Maker VX
  • RPG Maker XP
  • RPG Maker 2003
  • RPG Maker 95
  • Vision Engine

 Beberapa penjelasan game Engine :

  • OGRE

OGRE (Object-Oriented Graphics Rendering Engine) merupakan engine yang mendukung 3D Graphic. Merupakan game engine yang fleksibel dalam melakukan 3D Rendering, ditulis dalam bahasa C++ sehingga memudahkan pengembang untuk membangun game yang mendukung 3D Graphics.

  • Blender

Blender adalah program 3D dan animasi yang bersifat opensource,
bebas untuk dikembangkan oleh penggunanya dan dapat didistribusikan
kembali dan bersifat Legal. Blender memiliki video compositor dan intergrated game engine. Karya yang dihasilkan tidak ada sifat royalt kepada developer, dan
dapat dipublikasikan baik free maupun untuk dikomersilkan

  • RealmForge

Merupakan free dan open source game engine untuk Microsoft .Net Framework dan dikhususkan pada visual3D Game Engine, merupakan cross platform game engine untuk .NET 2.0 dan Microsoft XNA. RealmForge dibangun diatas AXIOM 3D rendering engine. Di tulis dalam bahasa C# keseluruhan. Dibangun untuk pembuatan game berbasis .NET.

  • GTGE (Golden T Game Engine)

GTGE adalah permainan perpustakaan pemrograman (dikenal sebagai mesin permainan) untuk membuat game 2D di Java. Perpustakaan GTGE menyediakan rutin yang lengkap untuk membuat game 2D dari rutinitas tingkat rendah seperti akselerasi perangkat keras grafik 2D, mouse dan keyboard input, support audio, permainan waktu, bitmapped font, untuk permainan rutinitas tertentu seperti sprite, latar belakang, dukungan tabrakan pixel sempurna presisi. Dengan semua rutinitas dasar ini, untuk mulai membuat permainan baru Anda tidak perlu untuk menciptakan roda lagi dan lagi.

  • jMonkey Engine (jME)

jMonkey Engine (jME) adalah performa tinggi mesin game 3D, yang ditulis seluruhnya di Java. OpenGL didukung melalui LWJGL, dengan dukungan JOGL dalam pembangunan. Untuk suara, OpenAL didukung. Input melalui keyboard, mouse, dan pengontrol lain juga didukung. jME adalah sebuah komunitas berbasis proyek open source yang dirilis di bawah lisensi BSD yang baru. Saat ini sedang digunakan oleh beberapa studio permainan komersial maupun oleh universitas kelas permainan.

 

Sumber:

http://frisellamariana.wordpress.com/2010/03/17/game-engine-tugas-softskill-minggu-ke-6/

http://bocahit.blogspot.com/2010/03/game-engine.html

http://roedavan.blogspot.com/2011/12/game-engine.html

Audio Engineer – Game Komputer

Dalam game, suara adalah salah satu hal yang paling penting yang wajib ada untuk memberikan efek pada game tersebut. Tanpa adanya suara, nilai pada game tersebut akan berkurang. Akan tetapi, penempatan suara pada game harus disesuaikan dengan keadaan pada game tersebut untuk menciptakan efek yang dramatis pada game sehingga game tersebut akan lebih menarik untuk dimainkan, contohnya untuk bagian mission succes berikan suara tepuk tangan atau suara yang memberikan efek bahagia, jangan memberikan suara atau musik sedih ketika bagian mission success, karena tidak cocok dengan keadaan yang ada pada game.

Engineer Audio menciptakan soundtrack untuk game. Ini mungkin termasuk musik, efek suara untuk mendukung aksi permainan, seperti suara tembakan atau ledakan, suara karakter dan ekspresi lainnya, instruksi lisan, dan efek ambien, seperti kebisingan kerumunan, kendaraan atau hujan.

Engineer Audio bekerja secara kreatif menghasilkan desain suara untuk permainan dan ini mungkin melibatkan penyusunan, mencetak dan merekam musik. Engineer Audio kadang-kadang juga akan melakukan audisi dan merekam setiap aktor yang diperlukan – dalam bahasa lain jika permainan sedang kembali diversi – dan ini mungkin melibatkan lipsynch untuk animasi.

Mereka bertanggung jawab untuk sumber setiap efek suara yang dibutuhkan, memperbaiki atau membuat mereka di mana diperlukan. Ini mungkin suara nyata atau imajiner, tergantung pada jenis permainan. Engineer Audio kemudian suntingan, campuran, dan master musik dan suara untuk menghasilkan soundtrack untuk pertandingan selesai.

Menciptakan sebuah soundtrack untuk permainan adalah proses yang kompleks. Permainan yang non-linear, pengalaman interaktif dan Engineer Audio perlu diingat bahwa, terutama ketika mencetak musik. Engineer Audio harus bekerja untuk tenggat waktu produksi yang seringkali sangat ketat.

Latar belakang musik sangatlah penting, biasanya seseorang yang memiliki latar belakang musik yang kuat dilibatkan dalam menyusun dan membuat musik.Pengalaman rekaman suara, mengedit dan pencampuran juga diperlukan. Kebanyakan pendatang baru untuk industri game adalah lulusan, tetapi ada juga kesempatan untuk individu dengan bakat untuk musik dan sound engineering.

Produksi Game adalah sebuah proses kolaboratif. Insinyur Audio membutuhkan komunikasi yang baik dan keterampilan interpersonal untuk dapat memahami apa yang desainer dan produsen inginkan dari mereka dan untuk bersaing dengan perubahan. Mereka juga perlu untuk berkomunikasi secara efektif dengan pemrograman dan tim seni departemen.

Engineer Audio juga harus mampu bekerja secara independen dan mengelola jadwal mereka. Mereka membutuhkan keterampilan organisasi yang baik untuk menangani jumlah efek suara dan musik yang dibutuhkan untuk permainan dan untuk mengkoordinasi sesi rekaman. Mereka juga membutuhkan rasa menyenangkan dan kemampuan untuk berpikir lateral – menciptakan suara, terutama untuk game fantasi, membutuhkan kreativitas dan imajinasi.

Kunci keterampilan :

  • Keterampilan teknik dan pengetahuan tentang alat yang relevan dan teknologi;
  • Kemampuan untuk menyusun dan membuat musik;
  • “Aural keterampilan”, rasa waktu, dan perhatian terhadap detail;
  • Komunikasi  yang kuat dan keterampilan interpersonal;
  • Kreativitas dan imajinasi;
  • Kemampuan untuk bekerja untuk tenggat waktu;
  • Dapat merasakan suasana permainan;

Untuk membuat atau mengedit suara yang sesuai dengan game yang ingin dibuat, sebaiknya memilih software yang baik untuk digunakan sehingga akan menghasilkan suara yang baik dan bagus. Contohnya, untuk RPG Maker VX, program ini secara otomatis telah menyediakan pengaturan suaranya, sehingga kita dapat membuat dan mengedit suara lebih praktis pada software tersebut. Pengetahuan tentang paket perangkat lunak yang relevan, seperti Audio Logic, Sound Forge, dan Cool Edit Pro juga berguna.

 

Sumber :

 http://www.bahaskomputer.com/2009/05/tahap-pembuatan-game.html

http://indys-lifemoresimply.blogspot.com/2011/02/games-step-by-step.html

http://arulgaijin.wordpress.com/2011/12/19/persiapan-membuat-game/

http://www.creativeskillset.org/games/careers/article_4723_1.asp