Selasa, 04 Desember 2012

Pembahasan Website E-coomerce dan E-business


Pada tugas kali ini, saya akan membahas tentang website yang tergolong kedalam website jenis e-commerce dan e-business. Disini, saya mengambil sebuah contoh salah satu websiteny, yaitu www.rakitan.com.  Pada website ini, akan saya bahas menjadi beberapa point, antara lain:

A.    Profile perusahaan
Pada website ini merupakan sebuah media online sebuah perusahaan / toko yang bergerak di penjualan hardware dan aksesoris komputer, dengan keterangan:
Nama                    : Quantum computer.
Lokasi                  : Mangga Dua Mall, Lt 5, blok D26, Jakarta
Telepon                : 021 – 6017020
Fax                       : 021 – 6017021
E-mail                   : rakitan@gmail.com
Waktu operasi      : Senin – sabtu , pk 11.00 – 19.00

B.     Visi dan misi website
Pembuatan website ini ada visi dan misinya, antara lain:
Visi   : ‘Menyediakan pelayanan yg efisien antar penjual dengan konsumen.”
Misi  : menjual barang yg 100% asli,
menyediakan pelayanan yg cepat sehingga konsumen dapat nyaman berbelanja lewat web ini.

C.    Kekurangan dan kelebihan website
Website ini memiliki beberapa kelebihan dan kekurangan, antara lain:
Kelebihan :
§  Adanya informasi lengkap mengenai nama toko, lokasi toko, nomor kontak yang bisa dihubungi.
§  Daftar harga dan barang di-update setiap hari (realtime).
§  Database berbagai hardware dan aksesoris komputer sangat lengkap dari berbagai jenis dan berbagai merek.
§  Terdapatnya berbagai penawaran pembelian berupa pembelian secara paket maupun terpisah yang cukup menarik.
§  Tampilan informasi lokasi toko ditampilkan dalam bentuk gambar.
§  Terdapatnya informasi lengkap mengenai cara untuk membeli barang secara online.
§  Terdapatnya informasi lengkap mengenai pengiriman barang apabila dibeli secara online.
§  Terdapatnya form pengisian bagi konsumen yang membeli secara online.
§  Terdapatnya aplikasi kalkulasi pembayaran apabila konsumen membeli barang dalam jumlah besar.
§  Adanya form untuk kritik dan saran.

Kekurangan :
o   Daftar hardware dan aksesoris komputer tidak disertai dengan gambar.
o   Tampilan website terbilang standart, sehingga website kurang menarik untuk dilihat.
o   Tampilan lokasi toko hanya berupa denah gedung.
o   Ada beberapa tabmenu dengan nama berbeda, namun menampilkan tampilan yang serupa.

D.    Print screen



Gambar 1. Tampilan daftar penjualan hardware komputer

Gambar 2. Tampilan daftar penjualan paket computer


Gambar 3. Tampilan aplikasi kalkulasi

Gambar 4. Tampilan denah lokasi


Gambar 5. Tampilan informasi pembelian online

Gambar 6. Tampilan form konsumen


Gambar 7. Tampilan form kritik dan saran






E.     Saran agar website menjadi lebih baik
Beberapa saran untuk pengembangan website ini, antara lain:
o   Tampilan website diperbaharui / diperindah.
o   Daftar hardware dan aksesoris disertai dengan tampilan gambarnya.
o   Tampilan tiap tabmenu yang dipilih, diperbedakan.
o   Tabmenu denah lokasi juga harus disertai direction dari lokasi pengakses ke lokasi toko.
o   Adanya informasi ada / tidaknya barang yang ada di toko.

Selasa, 06 November 2012

Tekno preneurship


Peluang usaha dibidang IT/Tekno preneurship
a.       Proses mencari informasi peluang usaha
·         Informasi tentang kepribadian dan kemampuan dirinya Temu kenali Diri Anda
·         Peluang yang dapat diraih
·         Kebutuhan dan keinginan konsumen
·         Situasi persaingan
·         Lingkungan yang dihadapi
·         Dukungan dan trend kebijakan pemerintah

b.      Tahapan pengembangan usaha
·         Ide usaha=> Mencari produk yang beda dan baru
·         Kelayakan => Kelayakan produk dalam masa sekarang
·         Business Proses => Memulai produksi yang produk yang sudah direncanakan
·         Prestasi => Hasil yang memuaskan

c.       Sumber usaha
·         Berdasarkan keahlian (mis: latar belakang pendidikan)
·         Merupakan usaha warisan
·         Membuat inovasi baru
·         Menyesuaikan dengan kebutuhan sekitar

d.      Faktor utama sebelum memulai usaha
·         Faktor kesukaan
·         Faktor keahlian atau familiaritas
·         Faktor dana
·         Faktor bahan baku
·         Faktor sumber daya manusia dan teknologi
·         Faktor kepribadian

Pendirian Badan Usaha


Pendirian badan usaha :
a.       Tujuan mendirikan badan usaha
Badan Usaha adalah kesatuan yuridis (hukum), teknis, dan ekonomis yang bertujuan mencari laba atau keuntungan. Badan Usaha seringkali disamakan dengan perusahaan, walaupun pada kenyataannya berbeda. Perbedaan utamanya, Badan Usaha adalah lembaga sementara perusahaan adalah tempat dimana Badan Usaha itu mengelola faktor-faktor produksi.

b.      Faktor yang harus dihadapi dalam badan usaha
Faktor – faktor yang harus dihadapi atau diperhitungkan di dalam pendirian suatu badan usaha, khususnya di bidang IT adalah:
1. Barang dan Jasa yang akan dijual
2. Pemasaran barang dan jasa
3. Penentuan harga
4. Pembelian
5. Kebutuhan Tenaga Kerja
6. Organisasi intern
7. Pembelanjaan
8. Jenis badan usaha yang akan dipilih, dll.

c.       Fungsi-fungsi yang terlibat dalam bisnis
Fungsi yang membentuk siklus persediaan dan pergudangan, diantaranya adalah:
·         Proses Pembelian
Siklus ini dimulai dengan permintaan bahan baku untuk produksi. Permintaan diawali oleh pegawai gudang atau komputer jika persediaan mencapai tingkat yang ditentukan sebelumnya, pemesanan dilakukan atas bahan baku yang dibutuhkan untuk memproduksi pesanan pelanggan, atau pemesanan diawali atas dasar perhitungan periodic oleh orang yang berwenang.
·         Menerima Bahan baku
Bahan baku yang diterima harus diinspeksi kuantitas dan kualitasnya. Bagian penerimaan menghasilkan laporan penerimaan yang menjadi dokumentasi penting sebelum pembayaran dilakukan. Setelah inspeksi, bahan baku dikirim ke gudang dan dokumen penerimaan atau notifikasi elektronik tentang penerimaan barang biasanya dikirim ke bagian pembelian, gudang, dan hutang usaha.
·         Menyimpan bahan baku
Sewaktu bahan baku diterima, bahan baku tersebut disimpan di gudang sampai diperlukan oleh bagian produksi. Bahan baku dikeluarkan dari persediaan atas penunjukan permintaan bahan baku, pesanan pekerjaan, dokumen yang sama atau pemberitahuan elektronik yang layak disetujui yang menunjukkan jenis dan kuantitas bahan baku yang diperlukan. Dokumen permintaan ini digunakan untuk memperbaharui berkas induk persediaan perpetual dan membukukan pemindahan dari akun bahan baku ke barang dalam proses.
·         Memproses Barang
Porsi pemrosesan pada siklus persediaan dan pergudangan sangat bervariasi. Penentuan jenis barang dan kuantitas yang diproduksi biasanya berdasarkan pesanan tertentu dari pelanggan, peramalan penjualan, tingkat persediaan barang jadi yang ditentukan lebih dulu, dan volume produksi yang paling hemat.
·         Menyimpan barang jadi
Setelah barang jadi selesai dikerjakan bagian produksi, penyimpanan dilakukan digudang sambil menunggu pengiriman. Dalam perusahaan dengan sistem pengendalian intern yang baik, dilakukan pengendalian pisik atas barang jadi dengan memisahkannya ke dalam beberapa bidang terpisah dengan akses terbatas.
·         Mengirim barang jadi
Pengiriman barang jadi merupakan bagian integral dari siklus penjualan dan penerimaan kas. Tiap pengiriman atau pengeluaran barang jadi harus didukung dokumen pengiriman atau pengeluaran barang jadi harus didukung dokumen pengiriman yang diotorisasi dengan memadai.

Proses Pendirian Badan Usaha
1. Mengadakan rapat umum pemegang saham.
2. Dibuatkan akte notaris (nama-nama pendiri, komisaris, direksi, bidang usaha, tujuan perusahaan didirikan).
3. Didaftarkan di pengadilan negeri (dokumen : izin domisili, surat tanda daftar perusahaan (TDP), NPWP, bukti diri masing-masing).
4. Diberitahukan dalam lembaran negara (legalitas dari dept. kehakiman).

e.       Tanggung jawab sosial perusahaan
Tanggung jawab Sosial Perusahaan atau Corporate Social Responsibility (selanjutnya dalam artikel akan disingkat CSR) adalah suatu konsep bahwa organisasi, khususnya (namun bukan hanya)perusahaan adalah memiliki suatu tanggung jawab terhadap konsumen, karyawan, pemegang saham, komunitas dan lingkungan dalam segala aspek operasional perusahaan.
CSR berhubungan erat dengan "pembangunan berkelanjutan", di mana ada argumentasi bahwa suatu perusahaan dalam melaksanakan aktivitasnya harus mendasarkan keputusannya tidak semata berdasarkan faktor keuangan, misalnya keuntungan atau deviden melainkan juga harus berdasarkan konsekuensi sosial dan lingkungan untuk saat ini maupun untuk jangka panjang.

f.       Hak hak konsumen 
Hak-Hak Konsumen menurut Pasal 5 Undang-undang Perlindungan Konsumen tersebut antara lain :
o   Hak atas kenyamanan, keamanan dan keselamatan dalam mengkonsumsi barang dan/atau jasa;
o   Hak untuk memilih barang dan/atau jasa serta mendapatkan barang dan/atau jasa tersebut sesuai dengan nilai tukar dan kondisi serta jaminan yang dijanjikan;
o   Hak atas informasi yang benar, jelas dan jujur mengenai kondisi dan jaminan barang dan/atau jasa;
o   Hak untuk didengar pendapat dan keluhannya atas barang dan/atau jasa yang digunakan;
o   Hak untuk mendapatkan advokasi, perlindungan dan upaya penyelesaian sengketa perlindungan konsumen secara patut;
o   Hak untuk mendapat pembinaan dan pendidikan konsumen;
o   Hak untuk diperlakukan atau dilayani secara benar dan jujur serta tidak diskriminatif;
o   Hak untuk mendapatkan kompensasi, ganti rugi/penggantian, apabila barang dan/atau jasa yang diterima tidak sesuai dengan perjanjian atau tidak sebagaimana mestinya;
o   Hak-hak yang diatur dalam ketentuan peraturan perundang-undangan lainnya.

Selasa, 16 Oktober 2012

Bio-informatika


Bioinformatika 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 sekuens DNA dan asam amino serta informasi yang berkaitan dengannya. Contoh meliputi :
  • ·         basis data untuk mengelola informasi biologis,
  • ·         penyejajaran sekuens (sequence alignment),
  • ·         prediksi struktur untuk meramalkan bentuk struktur protein maupun struktur sekunder RNA,
  • ·         analisis filogenetik, dan
  • ·         analisis ekspresi gen.


Basis data untuk mengelola informasi biologis,
Sesuai dengan jenis informasi biologis yang disimpannya, basis data sekuens biologis dapat berupa basis data primer untuk menyimpan sekuens primer asam nukleat maupun protein, basis data sekunder untuk menyimpan motif sekuens protein, dan basis data struktur untuk menyimpan data struktur protein maupun asam nukleat.
Basis data utama untuk sekuens asam nukleat saat ini adalah GenBank (Amerika Serikat), EMBL (Eropa), dan DDBJ(Inggris) (DNA Data Bank of Japan, Jepang). Ketiga basis data tersebut bekerja sama dan bertukar data secara harian untuk menjaga keluasan cakupan masing-masing basis data. Sumber utama data sekuens asam nukleat adalah submisi langsung dari periset individual, proyek sekuensing genom, dan pendaftaran paten. Selain berisi sekuens asam nukleat, entri dalam basis data sekuens asam nukleat umumnya mengandung informasi tentang jenis asam nukleat (DNA atau RNA), nama organisme sumber asam nukleat tersebut, dan pustaka yang berkaitan dengan sekuens asam nukleat tersebut.
Sementara itu, contoh beberapa basis data penting yang menyimpan sekuens primer protein adalah PIR (Protein Information Resource, Amerika Serikat), Swiss-Prot (Eropa), dan TrEMBL (Eropa). Ketiga basis data tersebut telah digabungkan dalam UniProt (yang didanai terutama oleh Amerika Serikat). Entri dalam UniProt mengandung informasi tentang sekuens protein, nama organisme sumber protein, pustaka yang berkaitan, dan komentar yang umumnya berisi penjelasan mengenai fungsi protein tersebut.

Penyejajaran sekuens (sequence alignment)
Penyejajaran sekuens (sequence alignment) adalah proses penyusunan/pengaturan dua atau lebih sekuens sehingga persamaan sekuens-sekuens tersebut tampak nyata. Hasil dari proses tersebut juga disebut sebagai sequence alignment atau alignment saja. Baris sekuens dalam suatu alignment diberi sisipan (umumnya dengan tanda "–") sedemikian rupa sehingga kolom-kolomnya memuat karakter yang identik atau sama di antara sekuens-sekuens tersebut. Berikut adalah contoh alignment DNA dari dua sekuens pendek DNA yang berbeda, "ccatcaac" dan "caatgggcaac" (tanda "|" menunjukkan kecocokan atau match di antara kedua sekuens).
Sequence alignment merupakan metode dasar dalam analisis sekuens. Metode ini digunakan untuk mempelajari evolusi sekuens-sekuens dari leluhur yang sama (common ancestor). Ketidakcocokan (mismatch) dalam alignment diasosiasikan dengan proses mutasi, sedangkan kesenjangan (gap, tanda "–") diasosiasikan dengan proses insersi atau delesi. Sequence alignment memberikan hipotesis atas proses evolusi yang terjadi dalam sekuens-sekuens tersebut. Misalnya, kedua sekuens dalam contoh alignment di atas bisa jadi berevolusi dari sekuens yang sama "ccatgggcaac". Dalam kaitannya dengan hal ini, alignment juga dapat menunjukkan posisi-posisi yang dipertahankan (conserved) selama evolusi dalam sekuens-sekuens protein, yang menunjukkan bahwa posisi-posisi tersebut bisa jadi penting bagi struktur atau fungsi protein tersebut.
Selain itu, sequence alignment juga digunakan untuk mencari sekuens yang mirip atau sama dalam basis data sekuens. BLAST adalah salah satu metode alignment yang sering digunakan dalam penelusuran basis data sekuens. BLAST menggunakan algoritma heuristik dalam penyusunan alignment.
Beberapa metode alignment lain yang merupakan pendahulu BLAST adalah metode "Needleman-Wunsch" dan "Smith-Waterman". Metode Needleman-Wunsch digunakan untuk menyusun alignment global di antara dua atau lebih sekuens, yaitu alignment atas keseluruhan panjang sekuens tersebut. Metode Smith-Waterman menghasilkan alignment lokal, yaitu alignment atas bagian-bagian dalam sekuens. Kedua metode tersebut menerapkan pemrograman dinamik (dynamic programming) dan hanya efektif untuk alignment dua sekuens (pairwise alignment)

Prediksi struktur untuk meramalkan bentuk struktur protein maupun struktur sekunder RNA
Secara kimia/fisika, bentuk struktur protein diungkap dengan kristalografi sinar-X ataupun spektroskopi NMR, namun kedua metode tersebut sangat memakan waktu dan relatif mahal. Sementara itu, metode sekuensing protein relatif lebih mudah mengungkapkan sekuens asam amino protein. Prediksi struktur protein berusaha meramalkan struktur tiga dimensi protein berdasarkan sekuens asam aminonya (dengan kata lain, meramalkan struktur tersier dan struktur sekunder berdasarkan struktur primer protein). Secara umum, metode prediksi struktur protein yang ada saat ini dapat dikategorikan ke dalam dua kelompok, yaitu metode pemodelan protein komparatif dan metode pemodelan de novo.
Pemodelan protein komparatif (comparative protein modelling) meramalkan struktur suatu protein berdasarkan struktur protein lain yang sudah diketahui. Salah satu penerapan metode ini adalah pemodelan homologi (homology modelling), yaitu prediksi struktur tersier protein berdasarkan kesamaan struktur primer protein. Pemodelan homologi didasarkan pada teori bahwa dua protein yang homolog memiliki struktur yang sangat mirip satu sama lain. Pada metode ini, struktur suatu protein (disebut protein target) ditentukan berdasarkan struktur protein lain (protein templat) yang sudah diketahui dan memiliki kemiripan sekuens dengan protein target tersebut. Selain itu, penerapan lain pemodelan komparatif adalah protein threading yang didasarkan pada kemiripan struktur tanpa kemiripan sekuens primer. Latar belakang protein threading adalah bahwa struktur protein lebih dikonservasi daripada sekuens protein selama evolusi; daerah-daerah yang penting bagi fungsi protein dipertahankan strukturnya. Pada pendekatan ini, struktur yang paling kompatibel untuk suatu sekuens asam amino dipilih dari semua jenis struktur tiga dimensi protein yang ada. Metode-metode yang tergolong dalam protein threading berusaha menentukan tingkat kompatibilitas tersebut.

Analisis ekspresi gen.
Ekspresi gen dapat ditentukan dengan mengukur kadar mRNA dengan berbagai macam teknik (misalnya dengan microarray ataupun Serial Analysis of Gene Expression ["Analisis Serial Ekspresi Gen", SAGE]). Teknik-teknik tersebut umumnya diterapkan pada analisis ekspresi gen skala besar yang mengukur ekspresi banyak gen (bahkan genom) dan menghasilkan data skala besar. Metode-metode penggalian data (data mining) diterapkan pada data tersebut untuk memperoleh pola-pola informatif. Sebagai contoh, metode-metode komparasi digunakan untuk membandingkan ekspresi di antara gen-gen, sementara metode-metode klastering (clustering) digunakan untuk mempartisi data tersebut berdasarkan kesamaan ekspresi gen.

E-Commerce dan E-Bussiness


Perdagangan elektronik (E-commerce) adalah penyebaran, pembelian, penjualan, pemasaran barang dan jasa melalui sistem elektronik seperti internet atau televisi, www, atau jaringan komputer lainnya. E-dagang dapat melibatkan transfer dana elektronik, pertukaran data elektronik, sistem manajemen inventori otomatis, dan sistem pengumpulan data otomatis.
Industri teknologi informasi melihat kegiatan e-dagang ini sebagai aplikasi dan penerapan dari e-bisnis (e-business) yang berkaitan dengan transaksi komersial, seperti: transfer dana secara elektronik, SCM (supply chain management), e-pemasaran (e-marketing), atau pemasaran online (online marketing), pemrosesan transaksi online (online transaction processing), pertukaran data elektronik (electronic data interchange /EDI), dll.
E-dagang atau e-commerce merupakan bagian dari e-business, di mana cakupan e-business lebih luas, tidak hanya sekedar perniagaan tetapi mencakup juga pengkolaborasian mitra bisnis, pelayanan nasabah, lowongan pekerjaan dll. Selain teknologi jaringan www, e-dagang juga memerlukan teknologi basisdata atau pangkalan data (databases), e-surat atau surat elektronik (e-mail), dan bentuk teknologi non komputer yang lain seperti halnya sistem pengiriman barang, dan alat pembayaran untuk e-dagang ini.

Faktor kunci kesuksesan E-commerce
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:
  • o   Menyediakan harga kompetitif
  • o   Menyediakan jasa pembelian yang tanggap, cepat, dan ramah.
  • o   Menyediakan informasi barang dan jasa yang lengkap dan jelas.
  • o   Menyediakan banyak bonus seperti kupon, penawaran istimewa, dan diskon.
  • o   Memberikan perhatian khusus seperti usulan pembelian.
  • o   Menyediakan rasa komunitas untuk berdiskusi, masukan dari pelanggan, dan lain-lain.
  • o   Mempermudah kegiatan perdagangan


Masalah yang dihadapi
  • o   Penipuan dengan cara pencurian identitas dan membohongi pelanggan.
  • o   Hukum yang kurang berkembang dalam bidang e-commerce ini.


Aplikasi pendukungnya
Beberapa aplikasi umum yang berhubungan dengan e-commerce adalah:
  • o   E-mail dan Messaging
  • o   Content Management Systems
  • o   Dokumen, spreadsheet, database
  • o   Akunting dan sistem keuangan
  • o   Informasi pengiriman dan pemesanan
  • o   Pelaporan informasi dari klien dan enterprise
  • o   Sistem pembayaran domestik dan internasional
  • o   Newsgroup
  • o   On-line Shopping
  • o   Conferencing
  • o   Online Banking/internet Banking
  • o   Product Digital/Non Digital


Perbedaan E-commerce dan E-bussiness
  • o    E-business lebih luas dalam lingkup dan e-commerce hanya merupakan satu aspek atau satu bagian dari e-business.
  • o    E-commerce hanya mencakup transaksi bisnis seperti membeli dan menjual barang dan jasa melalui internet.
  • o    E-commerce pada prinsipnya melibatkan perdagangan uang sedangkan dalam e-business, transaksi uang tidak diperlukan.
  • o    E-business melibatkan pemasaran, perancangan produk, evaluasi layanan konsumen, dll.

Senin, 30 April 2012

Element pada game helikopter HTML 5

pada kesempatna kali ini, saya akan membuat sebuah game helikpoter sederhana dengan menggunakan HTML 5. adapun beberapa element yang terdapat dalam game ini, berikut link tentang elemetn game tersebut:
http://www.mediafire.com/download.php?etjtq8taqw8msd8

berikujt juga source code dari game tersebut:
http://www.mediafire.com/download.php?4ot4in7yw9wnxwg

Senin, 19 Maret 2012

Bagaimana Cara Untuk Membuat Sebuah Permainan Kanvas Sederhana HTML5


Bagaimana Cara Untuk Membuat Sebuah Permainan Kanvas Sederhana HTML5

Sejak meluncurkan permainan Onslaught! Arena, aku telah menerima banyak permintaan untuk membuat tutorial yang sangat dasar tentang bagaimana cara untuk membuat permainan sederhana di kanvas. Setelah merenungkan untuk beberapa waktu cara untuk pendekatan terbaik subjek kompleks ini, Saya memutuskan hanya untuk mengumpulkan permainan yang sangat sederhana saya bisa membayangkan dan berjalan melalui itu praktis baris demi baris.  Jadi ini dia! Mari kita melompat segera dengan berjalan melalui game.js. Anda juga dapat bermain game di sini.
Simple game using Onslaught! graphics
1.                  Membuat kanvas
               // Membuat canvas
               var canvas = document.createElement("canvas");
               var ctx = canvas.getContext("2d");
               canvas.width = 512;
   canvas.height = 480;
   document.body.appendChild(canvas);

Hal pertama yang perlu kita lakukan adalah membuat elemen kanvas. Saya melakukan ini dalam JavaScript, bukan HTML untuk menunjukkan betapa mudah membuatnya. Setelah kita memiliki elemen kita mendapatkan referensi ke konteksnya, mengatur dimensi dan menambahkan ke bagian dokumen.








2.                         Menyertakan gambar
               // Gambar latar belakang
               var bgReady = false;
               var bgImage = new Image();
               bgImage.onload = function () {
                               bgReady = true;
               };
               bgImage.src = "images/background.png";

Sebuah Permainan membutuhkan grafis! Jadi mari kita memuat beberapa gambar. Saya ingin melakukan ini sesederhana mungkin, jadi itu hanya sebuah Gambar yang bukan dibungkus dalam Kelas bagus atau sesuatu. bgReady digunakan untuk memberitahu kanvas kalau sudah aman untuk menggambarnya, seperti mencoba untuk menterjemahkan sebelum itu dimuat dan akan melemparkan kesalahan DOM.
Kita melakukan ini untuk masing-masing dari tiga grafis yang kita butuhkan: latar belakang, pahlawan dan monster.

3.                         Objek permainan
               // Objek permainan
               var hero = {
                               speed: 256, // gerakan dalam pixel per detik
                               x: 0,
                               y: 0
               };
               var monster = {
                               x: 0,
                               y: 0
               };
               var monstersCaught = 0;
              
Sekarang kita mendefinisikan beberapa variabel yang akan kita gunakan nanti. Pahlawan mendapatkan setup dengan kecepatan, diaman seberapa cepat itu akan bergerak dalam piksel per detik. Monster tidak akan bergerak sehingga hanya memiliki koordinat. Terakhir, monstersCaught menyimpan jumlah monster pemain telah tertangkap.

4.                         Masukan pemain
               // Menangani keyboard kontrol
               var keysDown = {};

               addEventListener("keydown", function (e) {
                               keysDown[e.keyCode] = true;
               }, false);
               addEventListener("keyup", function (e) {
                               delete keysDown[e.keyCode];
               }, false);
              
Sekarang menangani masalah penginputan. Ini mungkin adalah bagian utama yang akan dilakukan oleh pengembang yang berasal dari latar belakang pengembangan web. Yang penting untuk diingat adalah bahwa kita tidak selalu ingin untuk bereaksi terhadap suatu peristiwa masukan yang tepat ketika itu terjadi. Dalam tumpukan web, mungkin tepat untuk mulai menghidupkan atau meminta data yang tepat ketika pengguna mulai masuk. Tapi dalam aliran ini, kami ingin permainan logika kita untuk hidup hanya di satu tempat untuk mempertahankan semua kontrol jika sesuatu terjadi. Untuk itu kami hanya ingin menyimpan input pengguna untuk nanti.
Untuk mencapai hal ini kita hanya memiliki keysDown variabel yang menyimpan keyCode pada setiap kejadian. Jika kode kunci berada didalam objek, pengguna harus menekan tombol itu. Mudahkan!


5.                         Permainan baru
               // Reset permainan ketika pemain menangkap rakasasa
               var reset = function () {
                               hero.x = canvas.width / 2;
                               hero.y = canvas.height / 2;

// Melemparkan Rakasasa di suatu tempat di layar secara acak
                               monster.x = 32 + (Math.random() * (canvas.width - 64));
                               monster.y = 32 + (Math.random() * (canvas.height - 64));
               };
              
Fungsi reset dipanggil untuk memulai permainan baru, atau tingkat, atau terserah Anda ingin menyebutnya apa. Ini menempatkan pahlawan (pemain) di tengah layar dan rakasa di suatu tempat secara acak.

6.                         Pembaruan objek
               // Memperbarui objek permainan
               var update = function (modifier) {
                               if (38 in keysDown) { // Pemain memegang
                               hero.y -= hero.speed * modifier;
                                              }
                               if (40 in keysDown) { // Pemain menekan
                                              hero.y += hero.speed * modifier;
                               }
                               if (37 in keysDown) { // Pemain menekan kiri
                                              hero.x -= hero.speed * modifier;
                               }
                               if (39 in keysDown) { // Pemain menekan kanan
                                              hero.x += hero.speed * modifier;
                               }

                               // Mereka menyentuh?
                               if (
                                              hero.x <= (monster.x + 32)
                                              && monster.x <= (hero.x + 32)
                                              && hero.y <= (monster.y + 32)
                                              && monster.y <= (hero.y + 32)
                               ) {
                                              ++monstersCaught;
                                              reset();
                               }
               };
              
Ini adalah fungsi update dan disebut setiap satu interval eksekusi. Hal pertama yang dilakukannya adalah memeriksa atas, bawah, kiri dan kanan tombol panah untuk melihat apakag pengguna telah menekannya. Jika demikian, pahlawan akan berpindah ke arah yang sesuai.
Yang mungkin tampak aneh adalah merubah argumen masuk ke update. Anda akan melihat bagaimana hal ini direferensikan dalam fungsi utama, tapi biarkan saya menjelaskan di sini. pengubah adalah angka berdasarkan waktu berdasarkan 1. Jika tepat satu detik telah berlalu, nilai akan menjadi 1 dan kecepatan pahlawan akan dikalikan dengan 1, berarti dia akan pindah 256 piksel dalam kedua itu. Jika setengah detik telah berlalu, nilai akan 0,5 dan pahlawan akan pindah setengah dari kecepatan dalam jumlah waktu. Dan sebagainya. Fungsi ini dipanggil begitu cepat sehingga nilai pengubah biasanya akan sangat rendah, tetapi menggunakan pola ini akan memastikan bahwa pahlawan akan bergerak dengan kecepatan yang sama tidak peduli seberapa cepat (atau lambat) script berjalan.
Sekarang kita sudah dapat memindahkan pahlawan sesuai yang diinputkan oleh pemain, kita dapat memeriksa untuk melihat apa yang terjadi dengan gerakan itu. Apabila hanya ada tabrakan dengan pahlawan dan rakasa, itu saja! Itu cukup banyak permainan. Kami menambahkan nilai (+1 untuk monstersCaught) dan me-reset permainan.

7.                         Membuat objek
               // Menarik segala sesuatu
               var render = function () {
                               if (bgReady) {
                                              ctx.drawImage(bgImage, 0, 0);
                               }

                               if (heroReady) {
                                              ctx.drawImage(heroImage, hero.x, hero.y);
                               }

                               if (monsterReady) {
                                              ctx.drawImage(monsterImage, monster.x, monster.y);
                               }

                               // Skor
                               ctx.fillStyle = "rgb(250, 250, 250)";
                               ctx.font = "24px Helvetica";
                               ctx.textAlign = "left";
                               ctx.textBaseline = "top";
                               ctx.fillText("Goblins caught: " + monstersCaught, 32, 32);
               };
              
Game akan lebih menyenangkan apabila Anda bisa melihat aksi turun, jadi mari kita menarik segala sesuatu ke layar. Pertama kita mengambil gambar latar belakang dan menariknya ke kanvas. Ulangi untuk pahlawan dan rakasa. Perhatikan bahwa perintah ini penting, karena setiap gambar ditarik ke permukaan akan ditarik selama piksel di bawahnya.
Selanjutnya kita mengubah beberapa sifat pada konteks yang berhubungan dengan cara menggambar font, dan kami membuat panggilan ke fillText untuk menampilkan skor pemain. Apabila  kita tidak memiliki animasi yang rumit atau gerakan, kita sudah selesai menggambar.

8.                         Loop permainan utama
               // Loop permainan utama
               var main = function () {
                               var now = Date.now();
                               var delta = now - then;

                               update(delta / 1000);
                               render();

                               then = now;
               };
              
Loop permainan utama adalah apa yang mengontrol aliran permainan. Pertama kita ingin mendapatkan waktu permainan saat ini sehingga kita dapat menghitung delta (berapa banyak milidetik yang berlalu sejak interval terakhir). Kami dapat mengubahnya untuk mengirim yang baru dan membaginya dengan 1000 (jumlah milidetik dalam satu detik). Yang sering kita sebut membuat dan merekam timestamp(pencatat waktu).
Lihat juga Onslaught itu! Arena Studi Kasus untuk lebih lanjut tentang loop permainan..

9.                         Memulai permainan!
               // Mari kita memainkan permainan ini!
               reset();
               var then = Date.now();
               setInterval(main, 1); // Menjalankan secepat mungkin
              
Hampir sama, ini adalah potongan kode terakhir! Pertama kita sebut memanggil “Reset/Ulang” untuk memulai permainan baru / tingkatan. (Ingatlah bahwa ini pusat pahlawan dan tempat rakasa secara acak bagi pemain untuk menemukannya.) Kemudian kita menaruh pencatat waktu kami (dengan variabel itu) dan memulai interval.
SELAMAT! Sekarang Anda (mudah-mudahan!) memahami dasar-dasar dasar pengembangan game dengan menggunakan elemen kanvas dalam JavaScript. Anda dapat mencobanya sendiri! Bermain game atau merubah kode pada GitHub dan memulai hacking.

Ingin Memberi Saran?
Apa yang anda pikirkan dari tutorial ini? Apakah itu berguna? Terlalu lambat, terlalu cepat, terlalu teknis, tidak teknis? Tolong beritahu saya dan saya akan mencoba untuk meningkatkan tutorial berikutnya! Pastikan untuk mengikuti kami di Twitter untuk mngetahui tutorial berikutnya.