SlideShare a Scribd company logo
1 of 125
1
KATA PENGANTAR
Puji dan syukur kami panjatkan kehadirat Tuhan Yang Ma-
ha Esa atas segala rahmat dan tauk nya, dan tidak lupa juga
dengan penyusunan buku ini sehingga kami dapat menyelesaik-
an penyusunan buku ini dengan judul Visualisasi Diagram Pe-
warnaan. Harapan kami semoga buku ini dapat membantu dan
memberi wawasan yang lebih luas tentang pembuatan game Te-
tris dengan menggunakan software arduino yang akan dibahas.
Buku ini kami akui masih banyak kekurangan karena penga-
laman yang kami miliki sangat kurang. Oleh kerena itu kami
harapkan kepada para pembaca untuk memberikan masukan-
masukan yang bersifat membangun untuk kesempurnaan buku
ini. Terima kasih kepada rekan-rekan kelompok dalam penger-
jaan penulisan ini, berkat bantuannya dan semangat dalam pe-
nulisan ini, buku ini telah selesai dengan baik, dan terima kasih
untuk Dr. rer. Nat. I Made Wiryana, Skom, SSI, MAppScc
telah memberikan kesempatan dalam menyelesaikan penulisan
dengan konsep yang di berikan, semoga menjadi bermanfaat.
Depok, 30 Mei 2017
Penyusun
Daftar Isi
1 PENDAHULUAN 5
1.1 Latar Belakang . . . . . . . . . . . . . . . . . . . 5
1.2 Rumusan Masalah . . . . . . . . . . . . . . . . . 7
1.3 Tujuan . . . . . . . . . . . . . . . . . . . . . . . . 7
2 LANDASAN TEORI 9
2.1 Game . . . . . . . . . . . . . . . . . . . . . . . . 9
2.1.1 Pengertian Game . . . . . . . . . . . . . . 9
2.1.2 Klasikasi Game . . . . . . . . . . . . . . 12
2.1.3 Sejarah Perkembangan Game . . . . . . . 17
2.1.4 Desain Game . . . . . . . . . . . . . . . . 21
2.1.5 Hal-hal yang Penting Dalam Game . . . . 22
2.1.6 Sudut Pandang User . . . . . . . . . . . . 25
2.1.7 Bagian - bagian Pada Game Desainer . . 26
2.1.8 Beberapa Hal yang Perlu Diperahatikan
Dalam Mendesain Sebuah Game . . . . . 26
2.2 Tetris . . . . . . . . . . . . . . . . . . . . . . . . 27
2
DAFTAR ISI 3
2.3 Gamication . . . . . . . . . . . . . . . . . . . . 30
2.3.1 Pengertian Gamication . . . . . . . . . . 30
2.3.2 Elemen Gamication . . . . . . . . . . . . 31
2.3.3 Perbedaan Antara Gamication dan Game 32
2.3.4 Jenis - jenis gamication . . . . . . . . . . 33
2.3.5 Kapan Menggunakan Gamication? . . . 34
2.3.6 Kelebihan Menggunakan Gamication . . 34
2.3.7 Kekurangan Menggunakan Gamication . 35
2.3.8 Gamication Dalam Game Tetris . . . . . 36
2.4 Arduino . . . . . . . . . . . . . . . . . . . . . . . 36
2.4.1 Sejarah Arduino . . . . . . . . . . . . . . 37
2.4.2 Jenis - jenis Arduino . . . . . . . . . . . . 39
2.5 C (Bahasa Pemrograman) . . . . . . . . . . . . . 62
2.5.1 Versi Bahasa C . . . . . . . . . . . . . . 62
3 PEBUATAN PAPAN PERMAINAN
TETRIS MENGGUNAKAN ARDUINO 64
3.1 LANGKAH - LANGKAH PEMBUATAN PAP-
AN PERMAINAN TETRIS . . . . . . . . . . . . 65
3.2 Listing Program . . . . . . . . . . . . . . . . . . 76
4 PENERAPAN PERMAIN TETRIS DALAM
KEHIDUPAN 100
4.1 Contoh Kasus . . . . . . . . . . . . . . . . . . . . 100
4.2 Penerapan Arduino . . . . . . . . . . . . . . . . . 104
4.2.1 Pinokio . . . . . . . . . . . . . . . . . . . 104
4.2.2 The Inebriator . . . . . . . . . . . . . . . 106
DAFTAR ISI 4
4.2.3 Pumpktris . . . . . . . . . . . . . . . . . . 106
4.2.4 ExpeditInvaders . . . . . . . . . . . . . . 106
4.2.5 Tersembunyi kontrol lampu . . . . . . . . 106
4.2.6 Hacking Hotel kunci kamar . . . . . . . . 106
4.2.7 Disco Planet . . . . . . . . . . . . . . . . 112
4.2.8 WiiChuck mengarahkan Laser pointer . . 112
4.2.9 Indikator pesan Reddit . . . . . . . . . . . 112
4.2.10 MP3 Player . . . . . . . . . . . . . . . . . 112
4.2.11 Timer Sleepy . . . . . . . . . . . . . . . . 112
4.2.12 Alarm Suara . . . . . . . . . . . . . . . . 116
4.2.13 Arduino-l3dgecomm . . . . . . . . . . . . 116
5 PENUTUP 120
5.1 Kesimpulan . . . . . . . . . . . . . . . . . . . . . 120
Bab 1
PENDAHULUAN
1.1 Latar Belakang
Manusia diberikan tuhan kemampuan untuk menciptakan
sesuatu hal yang baru, banyak inovasi yang telah dikembangk-
an manusia yang digunakan diberbagai macam bidang. Bidang-
bidang tersebut diantaranya adalah bidang pendidikan, politik,
kesehatan, ekonomi, sosial, budaya, hukum, kesenian, industri,
dan lain-lain. Kita ambil contoh pada bidang industri. Bidang
industri mencakup banyak hal, salah satunya industri hiburan.
Dalam era global ini, industri hiburan sangat berkembang de-
ngan pesat baik itu dalam dunia entertainment maupun industri
5
BAB 1. PENDAHULUAN 6
permainan.
Berkembangnya industri permainan tersebut membuat de-
veloper berlomba-lomba untuk membuat berbagai macam per-
mainan dengan genre yang beraneka ragam, karena dengan per-
mintaan pasar yang meningkat tentang pembuatan games.
Games atau permainan yang sedang populer saat ini ada-
lah bentuk games yang menggunakan teknologi digital. Games
sendiri dapat dimainkan baik secara individu (single player) ma-
upun dengan banyak pemain (multiplayer) dan dengan tambah-
an teknologi internet dapat membuat permainan menjadi lebih
seru.
Permainan dengan menggunakan teknologi internet ini men-
jadi semakin beragam. Software pembuat games yang banyak
digunakan adalah Arduino. Arduino adalah kit elektronik atau
papan rangkaian elektronik bersifat open source yang di dalam-
nya terdapat komponen utama yaitu sebuah chip mikrokontro-
ler dengan jenis AVR (Alf (Egil Bogen) and Vegard (Wollan)'s
Risc processor) dari perusahaan Atmel. Arduino bisa digunak-
an untuk mengontrol alat seperti drone dan komponen seperti
sensor. Arduino memiliki beragam tipe dengan tur-tur unik
tersendiri pada setiap tipe Arduino. Dengan begitu Arduino
dapat digunakan sesuai dengan kebutuhan dalam pembuatan
sebuah robot atau alat dengan tur yang dibutuhkan. Teknologi
Arduino dapat diterapkan ke dalam sebuah game (permainan)
guna menambah daya tarik, tur dan sebuah keseruan dari game
BAB 1. PENDAHULUAN 7
tersebut.
1.2 Rumusan Masalah
Berdasarkan latar belakang diatas, maka penulis memberik-
an perumusan masalah sebagai berikut :
1. Apa yang dimaksud games?
2. Apa yang dimaksud tetris?
3. Apa perangkat lunak yang digunakan untuk membuat ga-
mes tetris?
4. Bagaimana penggunaan Arduino pada Games tetris?
5. Bagaimana contoh pemanfaatan games tersebut?
1.3 Tujuan
Berdasarkan rumusan masalah diatas, maka yang menjadi
tujuan pembahasan dalam buku ini adalah sebagai berikut:
1. Untuk mengetahui tentang games.
BAB 1. PENDAHULUAN 8
2. Untuk mengetahui apa yang dimaksud dengan Arduino.
3. Untuk mengetahui penggunaan arduino pada games.
4. Untuk mengetahui pemanfaatan Arduino untuk games te-
tris.
Bab 2
LANDASAN TEORI
2.1 Game
2.1.1 Pengertian Game
Dalam bahasa Indonesia Game berarti permainan merujuk
pada-  kelincahan intelektual (intellectual playability). kata
game bisa diartikan sebagai arena keputusan dan aksi pema-
innya. Ada target-target yang ingin dicapai pemainnya. Ke-
lincahan intelektual, pada tingkat tertentu, merupakan ukuran
sejauh mana game itu menarik untuk dimainkan secara maksi-
mal.
Segala bentuk kegiatan yang memerlukan pemikiran, kelin-
9
BAB 2. LANDASAN TEORI 10
cahan intelektual dan pencapaian terhadap target tertentu da-
pat dikatakan sebagai game. Hal inilah yang membuat perkem-
bangan games di komputer sangat cepat. Sehingga games buk-
an hanya sekedar permainan untuk mengisi waktu luang atau
sekedar hobi. Melainkan sebuah cara untuk meningkatkan kre-
atitas dan tingkat intelektual para penggunanya.
Bermain game adalah suatu proses ne tuning (atau pe-
nyamaan frekuensi) dari logika berpikir dengan logika berpikir
aplikasi komputer yang canggih. Pada saat bersamaan, game
juga secara nyata mempertajam daya analisis para pengguna-
nya untuk mengolah informasi dan mengambil keputusan cepat
yang jitu.
Beberapa platform media yang bisa dijadikan pilihan untuk
advergames adalah :
1. Personal Computer berupa aplikasi games pada PC. Pada
media Personal Computer, durasi waktu penayangan adalah ti-
dak terbatas, selama games tersebut bagus dan mampu menghi-
bur audience/pemain, maka selama itulah tingkat kemungkinan
untuk dilihat audience akan semakin tinggi. Pembuatan Games
ini biasanya menggunakan Language C++ / C#, membutuhkan
waktu 3- 6 bulan tergantung dengan kompleksitas games terse-
but.
2. Web Based Games. Yaitu aplikasi games yang diletakkan
pada server di internet dimana audience/pemain hanya perlu
menggunakan akses internet dan browser untuk mengakses ga-
mes tersebut.
3. SmartPhones/PocketPC
Telepon pintar (smartphone) adalah telepon genggam yang
mempunyai kemampuan tingkat tinggi, terkadang dengan fung-
BAB 2. LANDASAN TEORI 11
si yang menyerupai komputer. Belum ada standar pabrik yang
menentukan denisi telepon pintar. Bagi beberapa orang, te-
lepon pintar merupakan telepon yang bekerja menggunakan se-
luruh piranti lunak sistem operasi yang menyediakan hubungan
standar dan mendasar bagi pengembang aplikasi. Bagi yang la-
innya, telepon pintar hanyalah merupakan sebuah telepon yang
menyajikan tur canggih seperti surel (surat elektronik), inter-
net dan kemampuan membaca buku elektronik (e-book) atau
terdapat papan ketik (baik built-in maupun eksternal) dan ko-
nektor VGA. Dengan kata lain, telepon pintar merupakan kom-
puter mini yang mempunyai kapabilitas sebuah telepon.
4. Cellphones
Telepon genggam atau telepon seluler (ponsel) atau hand-
phone (HP) adalah perangkat telekomunikasi elektronik yang
mempunyai kemampuan dasar yang sama dengan telepon kon-
vensional saluran tetap, namun dapat dibawa ke mana-mana
(portabel/mobile) dan tidak perlu disambungkan dengan jaring-
an telepon menggunakan kabel (nirkabel wireless). Saat ini,
Indonesia mempunyai dua jaringan telepon nirkabel yaitu sis-
tem GSM (Global System for Mobile Telecommunications) dan
sistem CDMA (Code Division Multiple Access). Badan yang
mengatur telekomunikasi seluler Indonesia adalah Asosiasi Te-
lekomunikasi Seluler Indonesia (ATSI).
Game adalah permainan yang menggunakan media elektro-
nik, merupakan sebuah hiburan berbentuk multimedia yang di
buat semenarik mungkin agar pemain bisa mendapatkan sesua-
tu sehingga adanya kepuasaan batin. Bermain game merupakan
salah satu sarana pembelajaran. Game edukasi dibuat dengan
tujuan spesik sebagai alat pendidikan, untuk belajar mengenal
BAB 2. LANDASAN TEORI 12
warna, mengenal huruf dan angka, matematika, sampai belajar
bahasa asing. Desainer yang membuat game harus memperhi-
tungkan berbagai hal agar game benar-benar dapat mendidik,
menambah pengetahuan dan meningkatkan keterampilan yang
memainkannya. Game edukasi di Indonesia bisa masyarakat te-
mukan di berbagi toko buku, tempat hiburan, pameran atau
bazar dan di sekolah-sekolah yang bekerja sama langsung de-
ngan perusahaan pembuat game tersebut. Game edukasi dalam
perancangan ini ditujukan pada produk keluaran PT Maximize
Informa Studio Indonesia (MISI) yang bernama EduGames.
Kondisi ideal dari keberadaan Edu-Games, yaitu berada pa-
da taraf yang sama dengan game sejenis. Keseimbangan itu
dilihat dari promosi yang dilakukan, mengingat peran promosi
tersebut sangat penting dalam menunjukan keberadaan Edu-
Games. Berdasarkan wawancara dengan Bapak Asep seorang
desainer game edukasi dari sebuah perusahaan game interaktif,
keberadaan game edukasi itu sangat jarang, hal itu disebabk-
an karena dianggap kurang menarik dan belum semua kalangan
mengetahui karena promosi game edukasi hanya terbatas pada
kawasan promosi tertentu saja lain halnya dengan keberada-
an game hiburan. Sedangkan 2 berdasarkan data pada produk
Edu-Games itu sendiri promosinya juga masih dibawah pesaing
langsung seperti Elexmedia dan Akal Interaktif.
2.1.2 Klasikasi Game
1.Action
Game dengan genre ini mengedepankan aksi dalam permai-
nannya. pemain akan memerankan seorang tokoh untuk menye-
BAB 2. LANDASAN TEORI 13
lesaikan misi, yang dalam perjalanannya akan mengalami aksi-
aksi yang beragam. Game tipikal ini biasanya mengetengahkan
permusuhan dan kekerasan. Contoh game yang popular untuk
genre ini adalah Grand Theft Auto, Battleeld 2, Medal of Ho-
nor, dan lain sebagainya.
2. Arcade
Game dengan jenis ini merupakan adopsi dari gaya perma-
inan dingdong di dunia nyata. Cara mainnya sederhana karena
memng dingdong dicipta ketika game masih baru berkembang.
Cara permainan side scroll dipopulerkan oleh arcade. Contoh
permainan arcade yang populer adalah Pinball.
3. Adventure
Petualangan. Genre ini memiliki gameplay yang menitikbe-
ratkan perjalanan untuk melakukan sesuatu, misalnya menyela-
matkan seorang putri. Dalam perjalanan, kita akan menemuk-
an beragam item yang akan kita simpan. Game genre ini tidak
menitikberatkan pada pertarungan, namun fokus terhadap pe-
nyelesaian masalah. Contoh game yang populer untuk genre ini
adalah Beyond Good.
4. Card Games
Genre game kartu. Sarna seperti yang anda temui di dunia
nyata, genre ini menitikberatkan permainan pada kartu remi.
Anda bisa menemukan genre ini melekat pada game Freecell,
Poker, Hearts, Solitaire, dan sebagainya. Sebagai pengembang-
an, permainan seperti kartu Uno juga termasuk genre ini.
5. Battle Card
Jenis permainan ini menitikberatkan strategi kompleks di
mana kartu yang dipakai berasal dari game /anime/komik. Yang
dimaksud battle di sini adalah pertarungan antar karakter di ti-
BAB 2. LANDASAN TEORI 14
ap kartu melawan kartu lawan. Biasanya dalam permainan ini
anda akan diberi sistem Life point atau variasinya. Jika karakter
anda menyerang karakter lawan, maka Life point-nya berkurang.
Dalam permainan juga akan ditemui kartu khusus yang memiliki
efek sihir sehingga bisa memperkuat strategi. Permainan jenis
ini memiliki gameplay turn-based. Contoh game yang sangat
populer untuk genre ini adalah Pokémon, Digimon, Yu-Gi-Oh!,
dan Duel Masters.
6. RPG (Role Playing Game)
Role Playing game merupakan genre yang sangat populer.
Genre ini jika diartikan haraah maka menjadi permainan dra-
ma. Dalam game seperti ini, pemain akan berperan menjadi
seorang tokoh yang menjalankan suatu cerita. Disediakan bebe-
rapa tokoh yang bisa dipilih untuk dimainkan. Biasanya tokoh-
tokoh itu dibedakan menurut ras, bangsa, atau kelas. Dalam
RPG, cerita menentukan segalanya.
Mengapa ada ras, mengapa harus memegang pedang, dan
lain sebagainya. Pemain pasti akan menemukan QUEST da-
lam game RPG. Quest merupakan misi yang harus diselesaikan
untuk bisa menyelesaikan game. Dengan menyelesaikan suatu
quest, maka akan memperoleh bonus berupa EXP atau lainnya.
Dengan meningkatnya EXP, pemain bisa meningkatkan level ka-
rakter anda. Level? Ya, jika pemain memainkan game di mana
karakternya memiliki level, maka dapat dipastikan pemain me-
mainkan genre RPG. Ciri khas yang bisa ditemui dalam setiap
game RPG adalah: Leveling, Inventory, Skill, Quest, Ras, bang-
sa, kelas, atau kategori lain, Monster, Potion, Melee, Experience
Point (EXP), Sistem jual-beli (trading), Gauge system (HP, MP,
FP, SP, dsb)
BAB 2. LANDASAN TEORI 15
Contoh game RPG populer adalah Final Fantasy, Gauntlet:
Seven Sorrow, Ultima (game klasik), dan banyak nama besar
lain.
7. FPS (First Person Shooter)
First Person Shooter merupakan jenis game selain RPG yang
memiliki jumlah gamer terbanyak. FPS merupakan game sho-
oting dengan sudut pandang orang pertama (gamer). Jika kita
memainkannya, maka terasa melihat musuh dari mata anda sen-
diri. Objek musuh dalam FPS sangat beragam, mulai manusia,
robot, sampai monster. Dalam gamenya, pasti akan menemukan
senjata-senjata yang berhubungan dengan menembak. Seperti
pistol, machine gun, rie, bazooka, dan lain sebagainya. Anda
juga akan menemukan senjata yang tidak mungkin ada dalam
dunia nyata seperti Gravity Gun milik Half Life 2. Dalam FPS
pasti menemukan pointer yang dinamakan crosshair. Ini meru-
pakan pointer yang mewakili laras dari senjata. Contoh game
FPS yang terkenal adaiah Hellgate: London, Half Life 2,Maze.
dapat diartikan labirin. Genre ini merupakan nenek moyang
genre game zaman sekarang. Di awal perkembangannya, game
memiliki genre seperti ini. Anda akan memainkan sebuah ka-
rakter (non-human) yang bertugas menyusuri lorong-lorong da-
lam sebuah map untuk menghabisi musuh. Karakter anda bisa
memperoleh kekuatan tambahan dari item yang berserakan di
map. Pandangan yang diperoleh adalah dari atas (atap) 90°.
Artinya, anda melihat apa yang anda mainkan seperti kertas
2D.
8. Fighting
9. Side Scrolling
Genre ini diklasikasikan berdasar permainan yang bergerak
BAB 2. LANDASAN TEORI 16
menyamping (side scroll) entah ke kanan atau ke kiri. Biasanya
genre ini tidak berdiri sendiri, namun digabung dengan genre
lain seperti adventure atau TPS. Genre ini bersama adventure
telah menelurkan Super mario sebagai game paling populer di
dunia. Bersama TPS, genre ini pernah melahirkan Contra yang
pernah jaya di konsol Nintendo.
10. Card Board
11. Puzzle
12. MMORPG
MMORPG Massively Multiplayer Online Role Playing Ga-
mes Contoh game MMORPG yang populer di Indonesia adalah
Nexia, Redmoon, Laghaim, Neverwinter Nights, Ragnarok, Ri-
sing Force, World of Warcraft, Tabula Rasa, Cabal, dan lain
sebagainya.
13. Sport
Genre ini disebut bukan berdasar pada teknologi atau hai
teknisnya, namun berdasar pada jenisnya saja. Segala game
yang bertema olahraga, termasuk dalam genre ini. Contoh game
bergenre sport adaiah Fifa Soccer, Winning Eleven, dan lain
sebagainya.
14. Simulation
Genre ini memiliki gameplay yang menitikberatkan peniru-
an dunia nyata. Dalam genre ini, anda akan membangun seca-
ra simulasi sebuah kota, negara, koloni, dunia, bahkan galaksi.
Anda berperan sebagai dewa dan mengatur segalanya dari atas
(sedikit pengecualian di beberapa scene). Dalam permainan,
anda akan disuguhi bermacam event menarik seperti menciptak-
an karakter, menciptakan makhluk hidup sendiri, membangun
gedung, menata kota/negara, bertempur melawan player lain
BAB 2. LANDASAN TEORI 17
sesama simer, atau terbang ke galaksi lain untuk menantang
perang koloni asing. game dengan genre ini kebanyakan dima-
inkan oleh wanita. Contoh game yang populer untuk simulasi
adalah The Sims, Sim City, Spore, dan lain lain.
15. Flight Simulation
Game genre ini berfokus pada simulasi penerbangan. An-
da akan belajar mengemudikan pesawat sungguhan dalam ga-
me. Anda bisa menerbangkan pesawat mulai dari yang kecil
sampai Boeing 747. Gameplaynya dibuat mirip atau sama per-
sis dengan kondisi penerbangan sesungguhnya. Genre ini tidak
hanya menyediakan simulasi zaman sekarang, zaman futuristik
juga dilirik. Contoh game ight sim futuristik adalah X-Wing
dan Wing Commander, di mana kita bisa mengendarai pesawat
tempur antariksa. Game ight sim lain contohnya Microsoft Fli-
ght Simulator (yang sangat populer), Apache Air Assault, IL-2
Sturmovik, dan lain sebagainya. Jika anda ingin menjadi pilot,
dalam tesnya anda juga akan dilatih memakai ight sim agar
mengenal kondisi penerbangan sesungguhnya tanpa perlu takut
cidera.
2.1.3 Sejarah Perkembangan Game
Asal usul permainan video/video game terletak pada awal ta-
bung sinar katoda berbasis pertahanan peluru kendali sistem pa-
da akhir 1940-an. Program-program ini kemudian diadaptasi ke
dalam permainan sederhana lainnya di era tahun 1950-an. Pada
akhir 1950-an dan melalui tahun 1960-an, lebih banyak perma-
inan komputer yang dikembangkan (kebanyakan di komputer
mainframe), secara bertahap tingkat kecanggihan dan komplek-
BAB 2. LANDASAN TEORI 18
sitasnya pu turut bertambah. Setelah periode ini, video game
menyimpang ke berbagai platform: arcade, mainframe, konsol,
pribadi komputer dan kemudian permainan genggam.
Perusahaan komersial pertama konsol permainan video ada-
lah Computer Space pada 1971, yang meletakkan dasar bagi
industri hiburan baru di akhir 1970-an di Amerika Serikat, Je-
pang, dan Eropa. tapi ini perusahaan tidak bertahan lama ini
sebagian besar disebabkan oleh banjir dari video game yang da-
tang ke pasar mengakibatkan keruntuhan total industri game
konsol di seluruh dunia, akhirnya menggeser dominasi pasar
dari Amerika Utara ke Jepang. Tapi inihanya mempengaruhi
pasar game konsol, pasar game komputer sebagian besar tidak
terpengaruh. Generasi selanjutnya dari konsol video game akan
terus didominasi oleh perusahaan-perusahaan Jepang. Walau-
pun beberapa upaya akan dilakukan oleh Amerika Utara dan
perusahaan-perusahaan Eropa, generasi keempat konsol, usaha
mereka pada akhirnya akan gagal. . Tidak sampai generasi
keenam konsol permainan video akan non-perusahaan Jepang
merilis sebuah sistem konsol sukses secara komersial. Pasar te-
lah mengikuti jalan yang sama dengan beberapa kali gagal di-
lakukan oleh perusahaan-perusahaan Amerika yang semuanya
gagal di luar beberapa keberhasilan terbatas dalam permain-
an elektronik genggam sejak dini. Saat ini hanya perusahaan-
perusahaan Jepang memiliki sukses besar konsol game handhe-
ld, walaupun dalam beberapa tahun terakhir permainan geng-
gam telah datang ke perangkat seperti ponsel dan PDA .
Generasi Pertama
Generasi pertama konsol permainan video berlangsung dari
tahun 1972, dengan rilis dari Magnavox Odyssey, hingga 1977,
BAB 2. LANDASAN TEORI 19
ketika pong-style produsen konsol meninggalkan pasar secara
massal karena pengenalan dan keberhasilan mikroprosesor ber-
basis konsol.
Generasi Kedua
Dalam sejarah komputer dan video game, generasi kedua
(biasa disebut sebagai awal era 8 bit atau kurang lebih 4 bit
era) dimulai pada tahun 1976 dengan merilis Fairchild Chan-
nel F dan Radon 1292 Advanced Programmable Video sistem.
Di era generasi kedua ini yang menjadi primadona konsol game
adalah konsol game ATARI. Beberapa contoh konsol game pada
generasi kedua dapat dilihat disamping. Dari ki-ka adalah Fair-
child Channel F,Atari 2600, Magnavox Odyssey ver. 2 , Atari
5200.
Generasi Ketiga
Generasi ketiga dimulai pada tahun 1983 dengan dipasarkan-
nya Jepang Family Computer tau lebih dikenal dengan nama
FAMICOM(kemudian dikenal sebagai Nintendo Entertainment
System di seluruh dunia). Walaupun konsol generasi sebelum-
nya juga menggunakan 8-bit processor, pada akhir generasi ini-
lah konsol rumah yang pertama kali diberi label oleh mereka
bit. Ini juga masuk ke mode sebagai sistem 16-bit seperti
Mega Drive / Genesis dipasarkan untuk membedakan antara
generasi konsol. Di Amerika Serikat, generasi ini di game ini
terutama didominasi oleh NES / Famicom. Di era ini pulalah
terjadi perang konsol game yang pertama antara perusahaan
konsol Nintendo dengan SEGA.
Generasi Keempat
Generasi keempat atau biasa disebut dengan era 16 bit,pada
generasi ini NES mendapat sambutan hangat di seluruh dunia,
BAB 2. LANDASAN TEORI 20
dan sebuah perusahaan bernama Sega mencoba menyaingi Nin-
tendo. Pada tahun 1988, Sega merilis konsol next-generation
mereka, Sega Mega Drive (yang juga dikenal dengan Sega Ge-
nesis). Konsol ini menyajikan gambar yang lebih tajam dan ani-
masi yang lebih halus dibanding NES. Konsol ini cukup berhasil
memberi tekanan, tetapi NES tetap bertahan dengan angka pen-
jualan tinggi. Dua tahun berselang, pada 1990, Nintendo kem-
bali menggebrak dengan konsol next-gen mereka, SNES (Super
Nintendo Entertainment System). Selama 4 tahun, Nintendo
dan Sega menjadi bebuyutan, meskipun ada beberapa produsen
seperti SNK dengan NeoGeo-nya, NEC dengan TurboGrafx-16
dan Phillips CD-i, tapi kedua konsol mereka begitu handal dan
populer.
Generasi Kelima
Generasi kelima atau disebut juga dengan era konsol 32 bit.
dimana konsol game yang paling populer pada generasi ini ada-
lah Sony Playstation.
Generasi Keenam
Generasi keenam ini ditandai dengan munculnya konsol-konsol
game next generation dari masing-masing perusahaan seperti
SONY, SEGA,Nintendo serta munculnya satu lagi konsol game
baru yang diluncurkan oleh Microsoft yang diberi nama Xbox.
Perang konsol game ini akhirnya mengakibatkan jatuhnya per-
usahaan konsol SEGA yang tidak dapat lagi meneruskan konsol
next generation(Dreamcast) mereka dan lebih memilih untuk
berkonsentrasi dibidang pembuatan game konsol.
Generasi Ketujuh
Dikarenakan semakin canggihnya teknologi di bidang tekno-
logi maka kemudian 3 perusahaan konsol terbesar(Sony, Ninten-
BAB 2. LANDASAN TEORI 21
do, dan Microsoft) mengeluarkan kembali konsol next-generation
mereka keluaran terbaru. Sony mengeluarkan konsol next-gen
yang diberi nama PS3(Playstation 3), lalu Nintendo dengan
Nintendo Wii kemudian Microsoft dengan Xbox 360. Pada ge-
nerasi ini semakin dikembangkan sistem permainan online atau
permainan yang melibatkan banyak pemain yang terhubung de-
ngan konsol mereka dan semakin ditinggalkannya permainan si-
ngle player.
2.1.4 Desain Game
Desain Game adalah gambaran bagaimana sebuah game kom-
puter itu akan dibuat. Untuk membuat sebuah game terlebih
dahulu pembuat game harus membuat deskripsi yang menceri-
takan game yang akan dibuat (Hahguoh dan Overmars, 2006).
Dari design yang telah dibuat kemudian dapat diketahui se-
mua elemen-elemen berbeda yang dibutuhkan dalam pembu-
atan game, misalnya karakter user, karakter musuh, animasi
serangan dan sebagainya. Membuat game akan membutuhkan
gambar dari tiap elemen-elemen yang ada. Hal tersebut dika-
takan sebagairesources game.
Game Design Dokumen (GDG)
Para pembuat game komersial biasanya mempersiapkan do-
kumendokumen yang berisi design game yang sangat panjang
sebelum memulai pembuatan game. Game Design Dokumen
(GDD) adalah setiap hal-hal yang detail di dalam game harus
disebutkan di dalamnya.
BAB 2. LANDASAN TEORI 22
2.1.5 Hal-hal yang Penting Dalam Game
Sprites
Sprites adalah kumpulan gambar-gambar yang digunakan
untuk icon, karakter ataupun gambar bergerak dalam game.
Sprites dapat dibuat dari gambar-gambar yang sudah dibuat
dalam sebuah art packages, download dari internet maupun di-
buat secara manual dengan menggunakan software seperti Ado-
be Photoshop.
Objects
Sprites tidak dapat melakukan sesuatu dengan sendirinya.
Sprites hanya menyimpan gambar-gambar dari elemen-elemen
yang berbeda dalam sebuah fame. Objects adalah bagian dari
game yang mengontrol bagaimana elemen-elemen tersebut ber-
gerak dan berinteraksi satu sama lain. Contohnya adalah ka-
rakter dalam game.
Events dan Actions
Events adalah hal-hal penting yang terjadi didalam sebuah
game, seperti ketika objects saling bertumbukan maupun ketika
user menekan tombol pada keyboard. Actions adalah hal-hal
yang terjadi sebagai respon dari sebuah event, seperti perubah-
an arah pergerakan objects, perubahan score, atau memainkan
sebuah lagu.
Backgrounds
Backgrounds adalah gambar gambar yang digunakan seba-
gai gambar latar belakang game dan merupakan jenis lain dari
resource, seperti sprites dan objects. Pada umumnya ukuran
backgrounds sama dengan resolusi game.
Sounds
BAB 2. LANDASAN TEORI 23
Sounds juga termasuk resource game, jenis sounds dalam
game ada dua, yaitu musics dan sound eect. Sounds dangat
mempengaruhi atmosfer dalam game. Masters berupa lagu yang
terus mengalun selama game dimainkan, namun lagu yang di-
mainkan pada umumnya bergantung pada tempat atau kondisi
game. Sounds eect adalah suara yang hanya terdengar keti-
ka terjadi suatu hal tertentu, misal penekanan tombol, karakter
terkena pukulan dan sebagainya. Kegunaan dari sound eects
adalah untuk membantu user mengetahui action yang dilakukan
maupun hal yang sedang terjadi.
Status
Status adalah sekumpulan informasi yang berguna untuk
orang yang memainkan sebuah game untuk mengetahui kondisi
permainan saat itu. Bergantung dari jenis game-nya informasi
yang disampaikan melalui status dapat bermacam-macam.
Berikut beberapa macam status pada game beserta penjela-
sannya :
1. Score adalah nilai yang diperoleh oleh orang yang mema-
inkan sebuah game. Status ini sangat sering digunakan pada
sebuah game untuk mengetahui kemampuan yang memainkan-
nya.
2. High Score adalah nilai tertinggi yang pernah dicapai
orang yang memainkan sebuah game. Status ini biasanya ter-
dapat pada game yang dapat diselesaikan dalam waktu yang
cukup singkat, sehingga membuat orang yang memainkannya
tertarik untuk mengulangi permainan dari awal, dengan harap-
an mendapat high score yang lebih tinggi.
3. HP (Hit Point) adalah status yang menunjukkan jum-
lah maksimal damage yang dapat diterima oleh karakter dalam
BAB 2. LANDASAN TEORI 24
game. Apabila bernilai 0 maka karakter tersebut dinyatakan
mati/kalah. Status ini biasanya terdapat pada game ber-genre
ghting, action atau RPG (Role Playing Game).
4. SP (Skill Point) adalah sejumlah poin yang dapat digu-
nakan untuk menggunakan skill. Jumlah yang dibutuhkan ber-
gantung dari skill yang digunakan. Status ini biasanya terdapat
pada game ber-genre RPG.
5. Strength adalah jumlah kekuatan karakter dalam game.
Nilai status biasanya menentukan kekuatan serangan karakter.
Status ini biasanya terdapat pada game ber-genre ghting action
atau RPG.
6. Vitality adalah jumlah pertahanan karakter dalam game.
Nilai status ini biasanya akan mempengaruhi jumlah HP dan
pertahanan yang dimiliki karakter. Status ini biasanya terdapat
pada game ber-genre ghting action atau RPG.
7. Speed adalah kecepatan karakter dalam game. Nilai sta-
tus ini biasanya akan mempengaruhi seberapa cepat karakter
akan bergerak atau mendapatkan giliran serta menentukan mu-
dah atau tidaknya terkena serangan musuh. Status ini biasanya
terdapat pada game ber-genre ghting, action atau RPG.
8. Intelligence adalah jumlah kekuatan sihir dari karakter
dalam game. Nilai status ini biasanya akan berpengaruh pada
jumlah SP, serangan sihir dan ketahanan terhadap serangan si-
hir. Status ini biasanya terdapat pada game ber-genre action
atau RPG.
9. Luck adalah keberuntungan karakter dalam game. Nilai
status ini biasanya akan mempengaruhi karakter dalam menda-
patkan hal-hal yang sulit didapatkan dalam game, seperti ter-
jadinya critical hit.
BAB 2. LANDASAN TEORI 25
10. Status point adalah sejumlah poin yang biasanya digu-
nakan untuk menambah status karakter seperti Strength, Vita-
lity, Intelligence, Speed dan Luck. Status ini biasanya terdapat
pada game ber-genre action atau RPG.
11. Time adalah status yang digunakan untuk berbagai ma-
cam fungsi dalam game, misal untuk menentukan waktu yang
tersisa untuk mencapai tujuan tertentu, jumlah waktu yang te-
lah dihabiskan seseorang untuk memainkan game tersebut, dan
lain sebagainya. Status ini biasanya terdapat pada game ber-
genre ghting, action atau RPG.
12. Experience dalam dunia game adalah sejumlah poin
yang biasanya digunakan untuk menentukan level karakter da-
lam game. Status ini biasanya terdapat pada game ber-genre
action atau RPG.
Turn Based
Turn Based adalah sebuah sistem dalam game untuk me-
nentukan giliran dimana hanya satu user yang dapat bergerak
dalam suatu waktu tertentu. Contoh game antara lain Tic Tac
Toe, Scrabble, Catur, Permainan Kartu dan lain-lain
2.1.6 Sudut Pandang User
Sudut pandang user dalam game ada 2, yaitu
: 1. First Person View adalah sudut pandang orang per-
tama, dimana user dijadikan seperti karakter yang dimainkan,
sehingga user melihat dari sudut pandang karakter yang dima-
inkan. Contoh game : Counter Strike, HALO.
2. Third Person View adalah sudut pandang orang ketiga,
dimana user dapat melihat keseluruhan tubuh karakter dalam
BAB 2. LANDASAN TEORI 26
game. Contoh game : Ragnarok Online, FATE.
2.1.7 Bagian - bagian Pada Game Desainer
Lead designer adalah orang yang bertanggung jawab atas semua
kinerja teamnya. Dia akan memimpin dan juga memastikan
komunikasi team berjalan dengan baik serta memiliki wewenang
dalam pengambilan keputusan.
Game mechanic designer adalah orang yang mendesain dan
menyeimbangkan mekanika alur cerita pada sebuah game.
Level designer or environment designer adalah orang yang
bertanggung jawab dalam pembuatan misi game, level game,
tur game dan lingkungan sekitar pada game.
Writer adalah orang yang menulis dan memahami cerita dari
game, dialog, komentar, dan cerita cuplikan game.
2.1.8 Beberapa Hal yang Perlu Diperahatikan
Dalam Mendesain Sebuah Game
1. Level Design : mendesain setiap level game termasuk tur,
tingkat kesulitan, dan tema dari setiap level.
2. World Design : merancang dunia dalam game. Mulai dari
latar tempat, waktu dan tema keseluruhan dari game.
3. Game Writing : merancang setiap dialog, komentar dan
jalan cerita dari game.
4. User Interface Design : mendesain interaksi user dan se-
gala feedbacknya, misalnya saat kita mengetuk pintu, apa yang
akan terjadi selanjutnya.
BAB 2. LANDASAN TEORI 27
5. Content Design : mendesain karakter, barang, perleng-
kapan, misi, dan lainlain.
6. System Design : merancang game rules dan rumus-rumus
yang digunakan secara garis besar. Misalnya pada game Angry
Bird, bagaimana game akan terjadi, apakah menggunakan ru-
mus parabola, atau lebih mengutamakan tur physics, atau
bahkan kedua-duanya.
2.2 Tetris
Tetris (bahasa Rusia: Òåòðèñ) adalah teka-teki yang didesain
dan diprogram oleh Alexey Pajitnov pada bulan Juni 1985, pada
saat ia bekerja di Pusat Komputer Dorodnicyn di Akademi Sains
Uni Soviet di Moskow. Namanya berasal dari awalan numerik
Yunani tetra yang bermakna bangun dengan empat bagian.
Permainan ini (atau variasi lainnya) terdapat pada hampir
setiap konsol permainan video dan komputer pribadi, begitu
juga pada peralatan lainnya seperti kalkulator, ponsel, pemutar
media portabel, PDA dan bahkan sebagai rahasia pada produk
non-media seperti osiloskop. Pada dasarnya, ada 7 jenis formasi
balok yang ada di dalam game tetris, yaitu balok I, J, L, O,
S, I, dan Z. balok-balok tersebut diberi nama demikian karena
memang bentuknya mirip dengan hurup tersebut, untuk lebih
jelasnya, silahkan lihat gambar di bawah ini.
Permainan tetris ini sukses setelah dirilis oleh gameboy pada
tahun 1989, setelah itu, permainan ini mulai dirilis ulang oleh
berbagai perusahaan game dunia seperti nintendo, playstation,
oce game, dan perusahaan-perusahaan game ternama lainya.
BAB 2. LANDASAN TEORI 28
Gambar 2.1: Blok dalam Permainan Tetris
walaupun sudah berusia sangat lama, tapi permainan ini tetap
menjadi primadona di mata gammer-gammer dunia, menurut
mereka, game ini adalah game yang banyak menguras otak dan
mengasah cara pandang ruang otak seseorang.
Makin lama, pola permainan game ini makin beragam, jika
pada versi awalnya, game ini hanya menggunakan sistem peni-
laian berdasarkan bangun ruang yang disusu, tapi lama kelama-
an, mulai banyak versi tetris yang juga menggunakan penilaian
berdasarkan keserasian warna.
Walaupun Tetris muncul kebanyakan pada komputer rumah-
an, permainan ini lebih sukses pada versi Gameboy yang dirilis
pada 1989 yang membuatnya sebagai permainan paling popu-
ler sepanjang masa. Pada berita Electronic Gaming Monthly
ke-100, Tetris berada pada urutan pertama pada Permainan
BAB 2. LANDASAN TEORI 29
Gambar 2.2: Pengelompokan Warna dalam Blok Tetris
BAB 2. LANDASAN TEORI 30
Terbaik Sepanjang Masa. Pada tahun 2007, Tetris berada di
urutan kedua pada 100 Permainan Terbaik Sepanjang Masa
menurut IGN.
2.3 Gamication
2.3.1 Pengertian Gamication
Gamication atau dalam bahasa Indonesia gamikasi adalah
penggunaan dari teknik desain permainan, permainan berpikir
dan permainan mekanik untuk meningkatkan non-game konteks.
Biasanya gamikasi berlaku untuk non-game aplikasi dan
proses, untuk mendorong orang untuk mengadopsi mereka, atau
untuk mempengaruhi bagaimana mereka digunakan. Gamica-
tion menggunakan mekanisme berbasos game, estetika dan pe-
mikiran game untuk mengaktifkan orang, memotivasi tindakan,
mendorong pembelajran, dan memecahkan masalah.
Gamikasi bekerja dengan membuat teknologi yang lebih
menarik, dengan mendorong pengguna untuk terlibat dalam
perilaku yang diinginkan, dengan menunjukkan jalan untuk pe-
nguasaan dan otonomi, dengan membantu untuk memecahkan
masalah dan tidak menjadi gangguan, dan dengan mengam-
bil keuntungan dari kecenderungan psikologis manusia 'untuk
terlibat dalam game'. Teknik ini dapat mendorong orang un-
tuk melakukan pekerjaan mereka yang biasanya membosankan,
seperti menyelesaikan survei, belanja, mengisi formulir pajak,
atau membaca situs web.Data yang tersedia dari situs-situs ga-
BAB 2. LANDASAN TEORI 31
mied, aplikasi, dan proses perbaikan menunjukkan potensi di
daerah seperti keterlibatan pengguna, ROI, kualitas data, kete-
patan waktu, atau belajar.
2.3.2 Elemen Gamication
Ada beberapa elemen dari pengertian gamication yang perlu
diperhatikan :
1. Berbasis game = bertujuan menciptakan suatusistem di-
mana pembelajar, pemain, konsumen,dan karyawan aktif meng-
hadapi tantanganyang didenisikan melalui aturan-aturan,interaktitas,
dan feedback yang menghasilkansuatu penilaian yang terukur
dan mendorongreaksi emosional.
2. Mekanisme = mekanisme memainkan gameyang dimak-
sud di sini adalah munculnya level,mendapatkan lencana, sistem
poin, danbatasan waktu. Inilah elemen-elemen yangdigunakan
dalam game.
3. Estetika = Tanpa gras yang interaktif danpengalaman
permainan yang dirancangsecara baik, maka gamication tidak
akan sukses.
4. Pemikiran game = Ini elemen terpentingdari gamica-
tion. Ini merupakan gagasanmerubah pengalaman sehari-hari
seperti jogging atau berlari menjadi suatu kegiatanyang memi-
liki elemen-elemen kompetisi,kerja sama, eksplorasi, dan berce-
rita (story-telling).
5. Aktif = Tujuan eksplisit gamication adalahmenarik per-
hatian pembelajar danmelibatkannya. Keterlibatan dan keakti-
fanseorang individu menjadi fokus utamagamication.
BAB 2. LANDASAN TEORI 32
6. Orang = dapat berupa pembelajar,konsumen, atau pe-
main.
7. Memotivasi tindakan = membangkitkanenergi dan mem-
berikan arah, tujuan, ataumakna bagi perilaku dan tindakan.
8. Mendorong pembelajaran = hal ini berjalankarena ba-
nyak elemen gamicationberdasarkan psikologi pendidikan.
9. Memecahkan masalah = gamication dapatberpotensi
tinggi menolong memecahkanmasalah.
2.3.3 Perbedaan Antara Gamication dan Ga-
me
1. Game merupakan suatu unit yang utuh.
2. Game memiliki kegiatan awal, pertengahan,dan akhir yang
jelas sebagai satu keutuhan.
3. Game memiliki suatu kondisi dimana harusada kemenang-
an yang jelas.
4. Pemain tahu ketika orang lain dan dirinyatelah menyele-
saikan Game.
5. Game memiliki elemen game yang banyak.
6. Game memuat mekanisme untuk berapa kaliusaha yang
dimainkan; tantangan; reward system.
7. Gamication bukanlah satu unit game yang utuh.
BAB 2. LANDASAN TEORI 33
8. Gamication bertujuan menggunakanelemen game untuk
mendorongpembelajar sibuk dengan isi materinyadan me-
nunjukkan kemajuannya untukmencapai tujuan pembela-
jaran.
2.3.4 Jenis - jenis gamication
Structural Gamication
Menerapkan elemen game untuk mendorong pembelajar me-
nyimak konten materi dengan tanpamerubah konten materi men-
jadi terlihat seperti gamenamun struktur di sekeliling konten
itulah yang tampakseperti game.Tujuan utama tipe ini adalah
ntuk memotivasipembelajar menyimak isi materi dan menyi-
bukkan diridengan materinya dalam proses pembelajaran yang
terlihat tidak seperti game namun sambil meraih berbagai re-
ward.
Content Gamication
Menerapkan elemen game dan pemikirangame dalam isi ma-
teri sehingga isi materiberubah terlihat seperti game. Con-
toh:menambah elemen cerita dalam pengajaransuatu materi atau
memulai suatu pengajarandengan suatu tantangan alih-alihmenyampaikan
sederet tujuan mata kuliah.
Elemen dalam Content Gamication :
1. Cerita
2. Tantangan
3. Keingintahuan
4. Karakter
BAB 2. LANDASAN TEORI 34
5. Interaktitas
6. Feedback
7. Bebas Untuk Gagal
2.3.5 Kapan Menggunakan Gamication?
Gamication digunakan untuk memenuhi sejumlah tujuan pem-
belajaran.Gamication efektif ketika digunakan untuk :
1. Mendorong semangat pembelajar
2. Memotivasi tindakan
3. Mempengaruhi perilaku
4. Mengarahkan terciptanya inovasi
5. Membangun skill
6. Memperoleh pengetahuan
2.3.6 Kelebihan Menggunakan Gamication
Gamikasi bekerja dengan membuat teknologi yang lebih mena-
rik, dengan mendorong pengguna untuk terlibat dalam perilaku
yang diinginkan, dengan menunjukkan jalan untuk penguasaan
dan otonomi, dengan membantuk untuk memecahkan masalah
dan tidak jadi gangguan, dan dengan mengambil keuntuknagn
dari kecenderungan psikkologis manusoa `untuk terlibat dalam
game'.
BAB 2. LANDASAN TEORI 35
2.3.7 Kekurangan Menggunakan Gamication
1. Motivasi yang didapatkan hanya bersifat supersial. Moti-
vasi yang didapatkan hanya dari permainan bukan dari produk
yang seharusnya dihasilkan. Ada program yang menyediakan
beberapa manfaat nyata bagi aktivitas dan perkembangan. Na-
mun grakasi akan mennurunkan nilai insentif yang didapat ka-
rena hal ini hanya dijadikan perayaan digital atau cara untuk
menyombongkan diri.
2. Terkadang metode untuk mencapai tingkatan tertinggi
menjadi satu-satunya aspek yang dianggap penting. Hal ini
menjadi masalh akibat kesalahan arah motivasional. Pengguna
menetapkan motivasi mereka hanya untuk menjadi yang terbaik
namun melupakan apa yang sebenarnya menjadi penawaran da-
ri situs yang dimaksud. Hal ini mungkin terlihat tidak relevan
bagi perusahaan karena pengguna terus menghabiskan waktu
mereka namun tidak terbentuk loyalitas dan ikatan terhadap
brand seperti yang diharapkan perusahaan.
3. Gamikasi menghilangkan banyak esensi dari permain-
an itu sendiri. Ini menjadi seperti teknoogi cut and paste dan
kurangnya orisinilitas. Permainan adalah tentang menemukan
sesuatu dan melewati rintagan. Memang pada situs yang meng-
gunakan gamikasi terdapat beberapa tingkatan namun bukan
layaknya permainan tradisional. Dimana pengembang situs jus-
tru menampilkan tur mudah, biasa, dan membosankan sehing-
ga diharapkan pengguna akan lebih mudah untu k menang.
BAB 2. LANDASAN TEORI 36
2.3.8 Gamication Dalam Game Tetris
Pada permainan tetris, pemain dituntut untuk mendapatkan
skor sebanyak banyaknya dengan cara membuat satu baris dari
blok  blok yang akan terus muncul. Blok  blok tersebut ak-
an terus muncul dan akan semakin cepat sesuai dengan waktu
yang terus berjalan. Apabila blok  blok tersebut sudah penuh
atau mencapai batas yang telah di tentukan game maka pema-
in dinyatakan kalah. Disini lah pemain akan dituntut untuk
mendapatkan skor sebanyak banyaknya dengan waktu terbatas.
Apabil waktu sudah habis dan blok  blok tetris belum mencapai
batasnya maka permainan dinyatakan selesai dan skor pemain
akan dibandingkan dengan skor pemain lain. Apabila pemain
memiliki skor tertinggi, maka skor pemain tersebut akan dica-
tat ke dalam High Score, maka pemain akan semakin terpacu
untuk mendapatkan skor sebanyak banyaknya walaupun harus
bermain sampai beberapa kali sesi permainan.
2.4 Arduino
Arduino adalah pengendali mikro single-board yang bersifat
open-source, diturunkan dari Wiring platfor, dirancang untuk
memudahkan penggunaan elektronik dalam berbagai bidang.
BAB 2. LANDASAN TEORI 37
Hardwarenya memiliki prosesor Atmel AVR dan softwarenya
memiliki bahasa pemrograman sendiri.
Arduino juga merupakan platform hardware terbuka yang
ditujukan kepada siapa saja yang ingin membuat purwarupa
peralatan elektronik interaktif berdasarkan hardware dan sof-
tware yang eksibel dan mudah digunakan. Mikrokontroler dip-
rogram menggunakan bahasa pemrograman arduino yang me-
miliki kemiripan syntax dengan bahasa pemrograman C. Karena
sifatnya yang terbuka maka siapa saja dapat mengunduh skema
hardware arduino dan membangunnya.
Arduino menggunakan keluarga mikrokontroler ATMega yang
dirilis oleh Atmel sebagai basis, namun ada individu/perusahaan
yang membuat clone arduino dengan menggunakan mikrokon-
troler lain dan tetap kompatibel dengan arduino pada level ha-
rdware. Untuk eksibilitas, program dimasukkan melalui bo-
otloader meskipun ada opsi untuk membypass bootloader dan
menggunakan downloader untuk memprogram mikrokontroler
secara langsung melalui port ISP.
2.4.1 Sejarah Arduino
Semuanya berawal dari sebuah thesis yang dibuat oleh Hernan-
do Barragan, di institute Ivrea, Italia pada tahun 2005, dikem-
bangkan oleh Massimo Banzi dan David Cuartielles dan diberi
nama Arduin of Ivrea. Lalu diganti nama menjadi Arduino yang
dalam bahasa Italia berarti teman yang berani.
Tujuan awal dibuat Arduino adalah untuk membuat perang-
kat mudah dan murah, dari perangkat yang ada saat itu. Dan
BAB 2. LANDASAN TEORI 38
perangkat tersebut ditujukan untuk para siswa yang akan mem-
buat perangkat desain dan interaksi. Visi awalnya aja udah
mulia kan.
Saat ini tim pengembangnya adalah Massimo Banzi, David
Cuartielles, Tom Igoe, Gianluca Martino, David Mellis, dan Ni-
cholas Zambetti. Mereka mengupayakan 4 hal dalam Arduino
ini, yaitu:
ˆ Harga terjangkau
ˆ Dapat dijalankan diberbagai sistem operasi, Windows, Li-
nux, Max, dan sebagainya.
ˆ Sederhana, dengan bahasa pemograman yang mudah bisa
dipelajari orang awam, bukan untuk orang teknik saja.
ˆ Open Source, hardware maupun software.
Sifat Arduino yang Open Source, membuat Arduino ber-
kembang sangat cepat. Dan banyak lahir perangkat-perangkat
sejenis Arduino. Seperti DFRDuino atau Freeduino, dan kalau
yang lokal ada namanya CipaDuino yang dibuat oleh SKIR70,
terus ada MurmerDuino yang dibuat oleh Robot Unyil, ada lagi
AViShaDuino yang salah satu pembuatnya adalah Admin Kelas
Robot.
Sampai saat ini pihak resmi, sudah membuat berbagai jenis-
jenis Arduino. Mulai dari yang paling mudah dicari dan pa-
ling banyak digunakan, yaitu Arduino Uno. Hingga Arduino
yang sudah menggunakan ARM Cortex, beebentuk Mini PC.
Dan sudah ada ratusan ribu Arduino yang digunakan di gu-
nakan di dunia pada tahun 2011. Dan untuk hari ini, yang
bisa kamu hitung sendiri ya. Dan Arduino juga sudah banyak
dipaka oleh perusahaan besar. Contohnya Google menggunak-
an Arduino untuk Accessory Development Kit, NASA memakai
BAB 2. LANDASAN TEORI 39
Arduino untuk prototypin, ada lagi Large Hadron Colider me-
makai Arduino dalam beberapa hal untuk pengumpulan data.
Dan banyak yang bertanya juga Arduino ini menggunakan baha-
sa pemograman apa? Arduino sebenarnya menggunakan bahas
C, yang sudah disederhanakan. Sehingga orang awam pun bi-
sa menjadi seniman digital, bisa mempelajari Arduino dengan
mudahnya.
2.4.2 Jenis - jenis Arduino
Yaitu mikrokontroler Arduino dengan menggunakan USB seba-
gai antar muka pemrograman atau komunikasi komputer. Con-
toh:
1. Arduino Uno
2.Arduino Duemilanove
3. Arduno Leonardo
4. Arduino Mega2560
5. Arduino Intel Galile
6. Arduino Pro Micro AT
7. Arduino Nano R3
8. Arduino mini Atmega
9. Arduino Mega ADK
10. Arduino Esplora
Arduino UNO
Arduino Uno adalah papan mikrokontroler berdasarkan ATme-
ga328(datasheet). Ini memiliki 14 digital pin input / output
(dimana 6 dapat digunakan sebagai output PWM), 6 input ana-
log, resonator keramik 16 MHz,koneksi USB, jack listrik, header
ICSP, dan tombol reset. Ini berisi semua yang diperlukan untuk
BAB 2. LANDASAN TEORI 40
mendukung mikrokontroler; hanya menghubungkannyake kom-
puter dengan kabel USB atau power itu dengan adaptor AC-DC
atau baterai untuk memulai menggunakannya.
Uno berbeda dari semua papan sebelumnya di bahwa itu ti-
dakmenggunakan chip driver FTDI USB-to-serial. Sebaliknya,
tur Atmega16U2(Atmega8U2 sampai versi R2) diprogram se-
bagai konverter USB-to-serial. Revisi ke 2 Uno memiliki resistor
menarik garis 8U2 HWB line to ground, sehingga lebih mudah
untuk dimasukkan ke dalam mode DFU. Revisi ke 3 memiliki
tur-tur baru berikut: - 1,0 pinout: menambahkan SDA dan
pin SCL yang dekat dengan pin AREFdan dua pin baru lainnya
ditempatkan dekat dengan pin RESET, yang IOREFyang me-
mungkinkan perisai untuk beradaptasi dengan tegangan yang
tersedia dari papan. Di masa depan, perisai akan kompatibel
dengan keduapapan yang menggunakan AVR yang beropera-
si dengan 5V dan denganArduino Due yang beroperasi dengan
3.3V. Yang kedua adalah pin tidak terhubung, yang disediakan
untuk tujuan masa depan. -Stronger RESET sirkuit. -Atmega
16U2 menggantikan 8U2. Uno berarti satu di Italia dan dibe-
ri nama untuk menandai peluncuranArduino 1.0. The Uno dan
versi 1.0 akan menjadi versi referensi Arduino,bergerak maju.
The Uno adalah yang terbaru dalam serangkaian USB Ardui-
nopapan, dan model referensi untuk platform Arduino; untuk
perbandingan dengan versi sebelumnya, lihat indeks Arduino
papan.
Arduino DUE
The Arduino Due adalah papan mikrokontroler berdasarkan
AtmelSAM3X8E ARM Cortex-M3 CPU (datasheet). Ini adalah
pertama papanArduino didasarkan pada 32-bit mikrokontroler
BAB 2. LANDASAN TEORI 41
Gambar 2.3: Arduino Uno
BAB 2. LANDASAN TEORI 42
ARM inti. Ini memiliki 54 digitalpin input / output (yang 12 da-
pat digunakan sebagai output PWM), 12 analog input, 4 UART
(hardware port serial), jam 84 MHz, USB OTG koneksi yang
mampu, 2 DAC (digital ke analog) , 2 TWI, jack listrik, header
SPI, headerJTAG, tombol reset dan tombol hapus. Peringatan:
Tidak seperti papan Arduino lainnya, Arduino Due berjalan pa-
da3.3V. Tegangan maksimum yang I / O pin dapat mentolerir
adalah 3.3V.Memberikan tegangan yang lebih tinggi, seperti 5V
ke I / O pin dapat merusak papan.
Arduino Due berisi semua yang diperlukan untuk mendu-
kung mikrokontroler;hanya menghubungkannya ke komputer de-
ngan kabel micro-USB atau power dengan adaptor AC-DC atau
baterai untuk memulainya. Arduino Duekompatibel dengan se-
mua perisai Arduino yang bekerja di 3.3V dan telah sesuai de-
ngan 1,0 Arduino pinout. The Due mengikuti 1.0 pinout: -TWI:
SDA dan SCL pin yang dekat dengan pin AREF. -The IOREF
pin yang memungkinkan perisai terpasang dengan kongurasi-
yang tepat untuk beradaptasi dengan tegangan yang diberikan
oleh Arduino.Hal ini memungkinkan kompatibilitas perisai de-
ngan papan 3.3V sepertipapan Karena dan AVR berbasis yang
beroperasi pada 5V. Pin tidak berhubungan -Sebuah, disediak-
an untuk penggunaan masa depan. The Due memiliki forum
khusus untuk membahas papan. ARM Inti manfaat The Due
memiliki inti ARM 32-bit yang dapat mengalahkan papanmik-
rokontroler 8-bit yang khas. Perbedaan yang paling signikan
adalah: A 32-bit inti, yang memungkinkan operasi pada 4 byte
data luas dalam jamCPU tunggal. (untuk informasi lebih lan-
jut lihat int jenis halaman). Jam -CPU di 84Mhz. -96 KByte
SRAM. -512 KByte memori Flash untuk kode. a DMA con-
BAB 2. LANDASAN TEORI 43
Gambar 2.4: Arduino DUE
troller, yang dapat meringankan CPU dari melakukan tugas-
tugasintensif memori.
Arduino Leonardo
Arduino Leonardo adalah papan mikrokontroler berdasark-
an ATmega32u4(lihat datasheet). memiliki 20 digital pin input
/ output (yang 7 dapat digunakan sebagai output PWM dan
12 input analog sebagai), osilator kristal16 MHz, koneksi micro
USB, jack listrik, header ICSP, dan tombol reset.Berisi semua
yang diperlukan untuk mendukung mikrokontroler; hanyameng-
BAB 2. LANDASAN TEORI 44
Gambar 2.5: Arduino Leonardo
hubungkannya ke komputer dengan kabel USB atau power de-
ngan adaptor AC-DC atau baterai untuk memulai menggunak-
kannya.
Leonardo berbeda dari semua papan sebelumnya di bahwa
ATmega32u4telah built-in USB komunikasi, menghilangkan ke-
butuhan untuk prosesorsekunder. Hal ini memungkinkan Leo-
nardo tampil sebagai komputer yang terhubung sebagai mouse
dan keyboard, selain virtual (CDC) serial / COM port. Ini juga
memiliki implikasi lain untuk perilaku modul
BAB 2. LANDASAN TEORI 45
Arduino Mega 2560
Arduino mega 2560 adalah papan mikrokontroler ATme-
ga2560 berdasarkan (datasheet) memiliki 54 digital pin input
/ output (dimana 15 dapat digunakan sebagai output PWM),
16 analog input, 4 UART (hardware port serial), osilator kristal
16 MHz, koneksi USB, jack listrik, header ICSP, dan tombol re-
set. Ini berisi semua yang diperlukan untuk mendukung mikro-
kontroler,hanya menghubungkannya ke komputer dengan kabel
USB atau power dengan adaptor AC-DC atau baterai. Arduino
Mega kompatibel dengan sebagian besarshield,dirancang untuk
Arduino Duemilanove atau Diecimila.
Mega 2560 adalah update dari Arduino Mega
Arduino Mega2560 berbeda dari semua board sebelumnya
,tidak menggunakan chip driver FTDI USB-to-serial. Sebalik-
nya, tur ATmega16U2 (ATmega8U2 dalam revisi 1 dan revisi
2 papan) diprogram sebagai konverter USB-to-serial. Revisi 2
dewan Mega2560 memiliki resistor menarik garis 8U2 HWB ke
tanah, sehingga lebih mudah untuk dimasukkan ke dalam mode
DFU. Revisi 3 dari dewan memiliki tur-tur baru berikut: - 1,0
pinout: menambahkan SDA dan pin SCL yang dekat dengan pin
AREF dan dua pin baru lainnya ditempatkan dekat dengan pin
RESET, yang IOREF yang memungkinkan perisai untuk ber-
adaptasi dengan tegangan yang tersedia dari papan. Di masa
depan, perisai akan kompatibel baik dengan dewan yang meng-
gunakan AVR yang beroperasi dengan 5V dan dengan Arduino
Due yang beroperasi dengan 3.3V. Yang kedua adalah pin tidak
terhubung, yang disediakan untuk tujuan masa depan.
-Stronger RESET sirkuit.
-Atmega 16U2 menggantikan 8U2.
BAB 2. LANDASAN TEORI 46
Gambar 2.6: Arduino Leonardo
BAB 2. LANDASAN TEORI 47
Arduino Galileo
Galileo adalah papan mikrokontroler berdasarkan Intel ®
Quark SoC X1000Application Processor, 32-bit sistem Pentium-
kelas Intel pada sebuah chip(datasheet). Ini adalah board per-
tama berdasarkan arsitektur Intel ® dirancang untuk menjadi
hardware dan software pin-kompatibel dengan perisai Arduino
dirancanguntuk Uno R3. Digital pin 0-13 (dan AREF berde-
katan dan pin GND), Analog input 0 sampai 5, header listrik,
ICSP header, dan pin port UART (0 dan 1), semua di lokasi-
yang sama seperti pada Arduino Uno R3. Hal ini juga dikenal
sebagai Arduino 1.0pinout.
Galileo dirancang untuk mendukung shield yang beroperasi
di kedua tegangan 3.3Vatau 5V. Tegangan operasi inti Galileo
adalah 3.3V. Namun, jumper di boardmemungkinkan terjemah-
an tegangan 5V di pin I / O. Hal ini memberikan dukungan un-
tuk 5V shield Uno dan perilaku default. Dengan beralih posisi
jumper, terjemahantegangan dapat dinonaktifkan untuk menye-
diakan operasi 3.3V di pin I / O.
Tentu saja, board Galileo juga perangkat lunak yang co-
cok dengan ArduinoSoftware Development Environment (IDE),
yang membuat kegunaan dan pengenalan snap. Selain hardware
Arduino dan kompatibilitas software, arduino
Galileo memiliki beberapa industri PC standar I / O port
dan tur untuk memperluaspenggunaan asli dan kemampuan
luar ekosistem perisai Arduino. Sebuah ukuranpenuh Slot mini-
PCI Express, pelabuhan 100Mb Ethernet, slot Micro-SD, RS-
232 port serial, port host USB, port USB Client, dan 8MByte
NOR Flash .
Arduino Pro Micro AT
BAB 2. LANDASAN TEORI 48
BAB 2. LANDASAN TEORI 49
Gambar 2.8: Arduino Galileo
BAB 2. LANDASAN TEORI 50
Gambar 2.9: Arduino Pro Micro AT
Arduino Mikro adalah board mikrokontroler berdasarkan ATme-
ga32u4 (lihat datasheet), yangdikembangkan bersama dengan
Adafruit. Ini memiliki 20 digital pin input / output (yang 7 da-
pat digunakan sebagai output PWM dan 12 input analog seba-
gai), osilator 16 MHz kristal, koneksi USB mikro, header ICSP,
dan tombol reset. Ini berisi semua yang diperlukan untukmen-
dukung mikrokontroler; hanya menghubungkannya ke komputer
dengan kabel USB mikro untuk memulainya. Dengan memili-
ki faktor bentuk yang memungkinkannya untuk dapat dengan
mudah ditempatkan pada papan tempat memotong roti .
Arduino Micro mirip dengan Arduino Leonardo in bahwa
ATmega32u4 telah built-in USBkomunikasi,Dengan menghilangk-
an kebutuhan untuk prosesor sekunder. Hal ini memungkinkan
Micro muncul ke komputer yang terhubung sebagai mouse dan
keyboard,selain virtual (CDC) serial / COM port. Ini juga me-
miliki implikasi lain untuk pemanfaatan board.
BAB 2. LANDASAN TEORI 51
Gambar 2.10: Arduino Nano R3
Arduino Nano R3
The ArduinoNano adalah sebuah papan kecil, lengkap, dan
ramah-papan tempat memotong rotiberdasarkan ATmega328
(Arduino Nano 3.x) atau ATmega168 (Arduino Nano 2.x). Ini
memiliki lebih atau kurang fungsi yang sama dari Arduino Du-
emilanove, tetapi dalam paket yang berbeda. Ini tidak memiliki
hanya colokan listrik DC, dan bekerja dengan kabel USB Mini-
B bukan satu standar.The Nano dirancang dan diproduksi oleh
Gravitech.
Arduino Mini Atmega
Arduino ProMini ditujukan untuk pengguna tingkat lanjut
yang membutuhkan eksibilitas, biaya rendah, dan ukuran ke-
cil. Muncul dengan minimum komponen (tidak ada on-board
USB atau pinheader) untuk menjaga biaya turun. Ini adalah
pilihan yang baik untuk papan Anda inginmeninggalkan board
BAB 2. LANDASAN TEORI 52
Gambar 2.11: Arduino Mini Atmega
tertanam dalam proyek. Harap dicatat bahwa ada dua versi
dari board: satu yang beroperasi pada 5V (seperti kebanyak-
an papan Arduino), dan salah satu yang beroperasi pada 3.3V.
Pastikan untuk memberikan yang benar daya dan penggunaan
komponen yang operasitegangan cocok dengan board.
Arduino Mega ADK
Arduino MEGA ADK adalah board mikrokontroler ATme-
ga2560 berdasarkan (datasheet).Memiliki antarmuka USB un-
tuk terhubung dengan ponsel berbasis Android, berdasarkanMAX3421e
IC. Ini memiliki 54 digital pin input / output (dimana 15 dapat
digunakan sebagaioutput PWM), 16 analog input, 4 UART (ha-
rdware port serial), osilator kristal 16 MHz, koneksiUSB, jack
listrik, header ICSP, dan tombol reset. Arduino MEGA ADK
BAB 2. LANDASAN TEORI 53
berdasarkan Mega 2560.Mirip dengan Mega 2560 dan Uno, ho-
tel ini memiliki sebuah ATmega8U2 diprogram sebagai konver-
ter USB-to-serial. Revisi ke 2 dariboard ADK memiliki resistor
menarik garis 8U2 HWB ke tanah, sehingga lebih mudah untu-
kdimasukkan ke dalam mode DFU. Revisi 3 dari dewan memiliki
tur-tur baru berikut: - 1,0 pinout: menambahkan SDA dan
pin SCL yang dekat dengan pin AREF dan dua pin baru lain-
nya ditempatkan dekat dengan pin RESET, yang IOREF yang
memungkinkan perisaiuntuk beradaptasi dengan tegangan yang
tersedia dari papan. Di masa depan, shield akan kompatibel
baik dengan arduino yang menggunakan AVR yang beropera-
si dengan 5V dandengan Arduino Due yang beroperasi dengan
3.3V. Yang kedua adalah pin tidak terhubung,yang disediakan
untuk tujuan pengembangan.
Arduino Esplora
Arduino Esplora adalah papan mikrokontroler berasal dari
Arduino Leonardo. Esplora berbeda dari semua papan Arduino
sebelumnya dalam hal ini menyediakan sejumlah built-in, sia-
pdigunakan set sensor onboard untuk interaksi. Ini dirancang
untuk orang yang ingin bangun dan berjalan dengan Arduino
tanpa harus belajar tentang elektronik dari pertama. Untuklangkah-
demi-langkah pengantar Esplora, memeriksa Memulai dengan
Esplora panduan. Esplora onboard suara dan cahaya output,
dan beberapa sensor input, termasuk joystick,slider, sensor su-
hu, accelerometer, mikrofon, dan sensor cahaya. Hal ini juga
memiliki potensi untuk memperluas kemampuan dengan dua in-
put dan output konektor Tinkerkit, dan soketuntuk layar LCD
warna TFT. Seperti papan Leonardo, yang Esplora menggu-
nakan mikrokontroler AVR Atmega32U4dengan 16 MHz osila-
BAB 2. LANDASAN TEORI 54
Gambar 2.12: Arduino Mega ADK
BAB 2. LANDASAN TEORI 55
tor kristal dan koneksi USB mikro mampu bertindak sebagai
perangkatUSB klien, seperti mouse atau keyboard. Di sudut
kiri atas papan ada tombol tekan reset, yang dapat Anda gu-
nakan untuk me-restartboard arduino. Ada empat LED Sta-
tus: -Pada [Hijau] menunjukkan apakah board menerima catu
daya L [yellow] terhubung langsung ke mikrokontroler, dapat
diakses melalui pin 13 -RX Dan TX [kuning] menunjukkan da-
ta yang dikirim atau diterima melalui komunikasi USB Dewan
berisi semua yang diperlukan untuk mendukung mikrokontro-
ler; hanyamenghubungkannya ke komputer dengan kabel USB
untuk memulainya.
Arduino Tipe Serial
Arduino Serial, yaitu jenis mikrokontroler arduino yang meng-
gunakan RS232 sebagai antar muka pemrograman atau komu-
nikasi computer.
Arduino Mega
Arduino MEGA, yaitu mikrokontroler Arduino dengan spe-
sikasi yang lebih tinggi, dilengkapi tambahan pin digital, pin
analog, port serial dan sebagainya. Arduino Mega berbasis
ATmega1280 dengan 54 digital input/output. Contoh: Arduino
Mega, Arduino Mega 2560
Arduino Fio
Arduino FIO, yaitu mikrokontroler Arduino yang ditujuk-
an untuk penggunaan nirkabel. Arduino Fio ini menggunakan
ATmega328P sebagai basis kontrolernya.
Arduino Lylypad
Arduino LILYPAD, yaitu mikrokontroler dengan bentuk yang
melingkar. Contoh: LilyPad Arduino 00, LilyPad Arduino 01,
LilyPad Arduino 02, LilyPad Arduino 03, LilyPad Arduino 04
BAB 2. LANDASAN TEORI 56
Gambar 2.13: Arduino Esplora
BAB 2. LANDASAN TEORI 57
BAB 2. LANDASAN TEORI 58
Gambar 2.15: Arduino Mega
Gambar 2.16: Arduino Fio
BAB 2. LANDASAN TEORI 59
Gambar 2.17: Arduino Lylypad
BAB 2. LANDASAN TEORI 60
Gambar 2.18: Gambar Arduino BT
Arduino BT
Arduino BT, mikrokontroler Arduino yang mengandung mo-
dul Bluetooth untuk komunikasi nirkabel.
Arduino Nano dan Mini
Arduino Nano dan Arduino Mini, merupakan jenis arduino
berbentuk kompak dan digunakan bersama breadboard. Con-
toh: Arduino Nano 3.0, Arduino Nano 2.x, Arduino Mini 04,
Arduino Mini 03, Arduino Stamp 02.
BAB 2. LANDASAN TEORI 61
Gambar 2.19: Gambar Nano dan Mini
BAB 2. LANDASAN TEORI 62
2.5 C (Bahasa Pemrograman)
Bahasa pemrograman C merupakan salah satu bahasa pemro-
graman komputer. Dibuat pada tahun 1972 oleh Dennis Ritchie
untuk Sistem Operasi Unix di Bell Telephone Laboratories.
Meskipun C dibuat untuk memprogram sistem dan jaring-
an komputer namun bahasa ini juga sering digunakan dalam
mengembangkan software aplikasi. C juga banyak dipakai oleh
berbagai jenis platform sistem operasi dan arsitektur komputer,
bahkan terdapat beberepa compiler yang sangat populer telah
tersedia. C secara luar biasa memengaruhi bahasa populer la-
innya, terutama C++ yang merupakan extensi dari C.
2.5.1 Versi Bahasa C
C KR
Pada tahun 1978, Dennis Ritchie dan Brian Kernighan me-
nerbitkan edisi pertama dari buku yang berjudul The C Pro-
gramming Language. Buku ini hingga sekarang diakui sebagai
kitab suci bahasa C dan merupakan referensi utama seorang
pemrogram yang ingin mengetahui tentang bahasa C, terutama
karena begitu lengkapnya cakupan buku ini tentang bahasa C
dan mudahnya program yang dicontohkan dalam buku ini.
Versi bahasa C yang ditampilkan dalam buku ini kemudian
dikenal dalam kalangan pemrogram sebagai C KR. Pada buku
The C Programming Language edisi kedua kemudian melingku-
pi ANSI C yang diperkenalkan belakangan.
ANSI C  ISO C
Pada perkembangannya, muncul versi-versi C lain yang pada
BAB 2. LANDASAN TEORI 63
akhirnya membuat kebingungan di kalangan pemrogram. Kare-
na itu, pada tahun 1983, American National Standards Institute
(ANSI) membuat sebuah komite untuk membuat sebuah versi
standar dari bahasa C. Setelah melalui proses yang panjang dan
sengit, pada tahun 1989, telah berhasil disahkan standar yang
dinamakan ANSI X3.159-1989, versi ini seringkali dinamakan
ANSI C, atau kadang-kadang C89. Pada 1990, versi ANSI C
diadopsi oleh Organization for Standardization (ISO) dengan
sedikit perubahan dengan nama ISO/IEC 9899:1990. Versi ini
seringkali dinamakan ISO C atau C90. Karena versi ANSI C
dan ISO C hanya memiliki sedikit perbedaan, pemanggilan C90
dan C89 merujuk pada bahasa yang sama.
C99
Versi C99 dibuat oleh ISO C pada tahun 1999. Versi ini
dimaksudkan terutama untuk memperbanyak dukungan kepada
pemrograman berorientasi objek, terutama setelahC++, yang
dibuat berdasarkan bahasa ini mendapat tempat yang istimewa
di kalangan pemrogram
Bab 3
PEBUATAN PAPAN
PERMAINAN TETRIS
MENGGUNAKAN
ARDUINO
Bab ini berisi tentang tahapan pemubuatan papan perma-
inan tertris dan implementasi arduino didalamnya.
64
BAB 3. PEBUATAN PAPAN PERMAINAN TETRIS MENGGUNAKAN ARDU
3.1 LANGKAH - LANGKAH PEMBU-
ATAN PAPAN PERMAINAN TE-
TRIS
Dalam membuat papan permainan di bagi dalam beberapa
tahapan, tahapannya sebagai berikut :
Tahap 1 : Memotong Papan Kayu
File SVG dapat aktif untuk 3 dan 5 atau 6mm papan MDF.
Yang anda perlukan hanya satu buah papan dengan ketebalan
antara 5 atau 6 milimeter , tergantung dari seberapa mudah
bahan yang anda temukan di rumah anda. Kemudian mendo-
wnload le SVG dan menggunakan mesin laser pemotong kayu
untuk mendapatkan suku cadang kayu anda. Anda mungkin
dapat mewarnai salah satu sisi dari papan 5mm/6mm menggu-
nakan cat semprot/kuas, dimana bagian tersebut akan menjadi
sisi luar dan kemudian mewarnai sisi dalam dengan putih untuk
reeksi cahaya yang lebih baik.
Tahap 2 : Persiapan Kaki dan Perakitan
Sesuai dengan diameter dari baut anda, untuk menembus
kayu dengan memilih bor sedikit lebih kecil dari diameter baut;
misalnya 7mm untuk baut 8mm. kemudian pasang 4 baut untuk
ke 4 kaki. Anda dapat menggunakan baut untuk memaksanya.
Akhirnya, merakit 4 bagian untuk kaki utama dari papan.
Tahap 3 : Pemotongan LED Strip, Perekatan dan So-
lder
Menggunakan gunting untuk memotong strip setiap 500mm
= 15 LEDs. Pastikan memotong di tengah koneksi coppered.
BAB 3. PEBUATAN PAPAN PERMAINAN TETRIS MENGGUNAKAN ARDU
BAB 3. PEBUATAN PAPAN PERMAINAN TETRIS MENGGUNAKAN ARDU
BAB 3. PEBUATAN PAPAN PERMAINAN TETRIS MENGGUNAKAN ARDU
BAB 3. PEBUATAN PAPAN PERMAINAN TETRIS MENGGUNAKAN ARDU
Anda harus mendapatkan 10 potong dari 15 LEDs, yang memi-
liki konektor positive. Menggunakan pensil, buatlah garis-garis
dimana anda akan meng-lem potongan strip. Dengan 10 garis
tengah horizontal. Kolom pertama harus ditelusuri 83.3mm da-
ri tepi, maka setiap baris memiliki jarak 33.3mm dari sebelum-
nya. Jarak antara baris awal dan akhir(ke-10) adalah 333.3mm.
Kemudian tahap menempatkan potongan-potongan 10 strip se-
telah diagram berikutnya. Cara kuno yang anda bisa ditemukan
alternative untuk setiap strip. Untuk ini anda dapat menggu-
nakan panah dengan direksi yang anda harus ubah setiap kolom:
dan seterusnya. Lem potongan strip pada garis pen-
sil dan pastikan baris data membentuk kumparan. Kemudian
memotong strip 9 x 3 = 27 potongan kabel untuk menyambung
kembali jalur data dan garis power antara setiap bagian strip.
Sambungkan 5V(merah) bersama, GND (Hitam) bersama, dan
DATA (hijau atau kuning) bersama, seperti yang di tunjukan
pada diagram listrik langkah berikutnya. Juga menghubungkan
catu daya dari dua buah ekstrimitas (GND untuk GND dan 5V
untuk 5V) melalui 2 kabel langsung. Hal ini memungkinkan un-
tuk pengiriman daya lebih baik untuk menghindari perbedaan
warna dari ekstrmitas.
Tahap 4 : Solder Papan Sirkuit
Elektronik Arbalet's, yang digambarkan pada diagram ter-
susun oleh: Papan Arduino , terhubung ke komputer melalui
USB. PCB Kustom, terhubung ke catu daya 5V. Sensor sentuh
opsional MPR121 terhubung ke 6 permukaan aktif.
Papan kustom akan dipasang tepat di atas papan arduino,
dengan kepala pin Positive yang terpasang langsung di kepala
pin negative, pastikan sambungannya dengan baik. Solder kom-
BAB 3. PEBUATAN PAPAN PERMAINAN TETRIS MENGGUNAKAN ARDU
Gambar 3.4: Rancangan Papan Sirkut
BAB 3. PEBUATAN PAPAN PERMAINAN TETRIS MENGGUNAKAN ARDU
ponen dan koneksi pada papan kustom seperti yang di tunjukan
pada diagram. Kabel putih pada diagram bukan kabel sebenar-
nya tapi sambungan langsung positive negative dari header PIN.
Kemudian ikuti pendahuluan perangkat keras dan lunak sam-
pai rmware arbalet diunggah sebelum melanjutkan. Jika ada
yang salah saat penyolderan anda dapat menemukannya selama
tes ini sebelum itu menjadi sulit untuk memperbaiki masalah
hardware. Tempatkan elektronik anda di sebelah dan lompat
ke langkah selanjutnya. Hanya setelah berhasil menjalankan se-
tidaknya demonstran warna pada perangkat keras baru anda
gunakan untuk mengaktifkan hardware. Pastikan bahwa semua
piksel dapat didorong dan dapat nyala. Jika anda mendapatkan
masalah, cari di troubleshooting section.
Tahap 5 : Merakit Grid bagian Dalam
Papan ukuran 3mm yang telah dipotong dan mempunyai
11 strip horizontal dan 14 strip vertikal. Pada sisi horizontal
mempunyai dua sisi rongga yang akan menjadi tempat untuk
menaruh elektronik dan penyanggah papan bagian atas. Perha-
tikan bahwa 9 strip pada sisi vertikal mempunyai passings kawat,
yang telah dibuat untuk jalur data anda memiliki prosesornya
tersolder pada langkah 6. Pastikan anda membuat alternative
jalur rakitan. Pasang seluruh grid yang terbuat dari strip ver-
tikal dan horizontal dengan menggeser strip ke satu sama lain
seperti yang ditunjukkan pada gambar. Kemudian putar balik
konstruksi akhir agar jalan berada pada bagian atas. Dan me-
mindahkan pembangkit energi pada papan tabel sehingga setiap
piksel struktur yang telah dibuat sesuai dengan LED.
Tahap 6 : Menutup Grid Tabel
Posisikan dan rekatkan menggunakan lem pada 4 potong la-
BAB 3. PEBUATAN PAPAN PERMAINAN TETRIS MENGGUNAKAN ARDU
BAB 3. PEBUATAN PAPAN PERMAINAN TETRIS MENGGUNAKAN ARDU
BAB 3. PEBUATAN PAPAN PERMAINAN TETRIS MENGGUNAKAN ARDU
ser pada sisi papan. Potong menjadi potongan potongan kertas
yang meliputi area pixcel yang akan membantu menyebar caha-
ya, serta kedua sisi yang meliputi dan menyembunyikan rongga
sisi yang menjadi host elektronik. Pada tahap akhir, potong
sepotong kaca atau plexiglass 498 x 498 mm, dan jaga tingkat
kebebasan 2mm pada setiap sisi untuk memudahkan peletakan
dan pelepasan kaca.
Tahap 7 : Tambahan Tombol Sentuh (Optional)
Langkah ini merupakan pilihan untuk pembuat, jika anda
ingin table anda dapat menyentuh sensitive. Walaupun mereka
berbeda dan dapat kembali menjadi berbagai jenis output, tur
sentuh disediakan oleh berbagai jenis sensor, termasuk infra-
merah, barycentre berat, getara sensing.Metode yang diusulkan
disini melibatkan capacitive sensor yang terhubung ke potongan-
potongan plastic ITO. Perangkat Keras Plastik ini ditutupi de-
ngan lapisan konduktif tipis yang membuat diskrit dibawah kaca
anda serta perubahan yang sensitive terhadap kapasitif. Hanya
satu sisi jika umumnya konduktif, mengidentikasi satu dengan
ohmmeter. Memotong bagian  bagian 6 dari ITO plastik sedi-
kit lebih kecil dari pada ukuran piksel dua yaitu 30 x 63 mm dan
tempat mereka dengan sisi konduktif turun seperti yang ditun-
jukkan. Bagian atas tabel : Menghubungkan setiap sisi konduk-
tif dari plastik untuk sebuah MPR121 masukan yang terletak di
bawah meja. koneksi ini tidak menggunakan pematrian, po-
tongan plastik berhenti pada menanggalkan kabel memastikan
sebuah kontak listrik. Lipat menanggalkan kabel terhadap strip
vertikal untuk membuat mereka stabil. Bagian bawah meja :
Ekstremitas ini menyentuh kabel terhubung ke MPR121. So-
lder input kapasitif 0-5 kabel akan melalui Arbalet's piksel dari
BAB 3. PEBUATAN PAPAN PERMAINAN TETRIS MENGGUNAKAN ARDU
Gambar 3.7: Rancangan Tombol Sentuh (optional)
BAB 3. PEBUATAN PAPAN PERMAINAN TETRIS MENGGUNAKAN ARDU
bawah meja. Perangkat lunak
Pastikan Anda mengerti cara menjalankan aplikasi dasar se-
belum mengaktifkan antarmuka sentuh. Secara default, SDK
online memiliki tur sentuh yang dinonaktifkan. Anda dapat
mengaktifkannya dengan menambahkan parameter-c cong150touch.json
saat menjalankan aplikasi. Parameter ini memuat le kongu-
rasi yang memungkinkan 6 tombol sentuh. Pada sebagian besar
aplikasi yang kompatibel dengan sentuhan, tombol sentuh yang
tersedia akan menjadi lampu latar berwarna putih terang sa-
at dapat disentuh, beralih ke putih kuat saat berada. Buatlah
perubahan terus-menerus dengan mengubah kongurasi default
menjadi le default.cfg dan instal ulang SDK.
Tahap 8 : Menjalankan Permainan dan Aplikasi
Arbalet dilengkapi dengan seperangkat permainan yang ada
(Tetris, Snake, Piano Tiles - pada gambar -, ... dan yang akan
datang) dan lampu ambisi, Anda dapat menggunakannya atau
membuat bahasa Python Anda sendiri atau bahkan menggu-
nakan bahasa pemrograman visual Jepret.
3.2 Listing Program
Tetris Table / SimpleTimer.cpp
/*
* SimpleTimer.cpp
* SimpleTimer - A timer library for Arduino.
* Author: mromani@ottotecnica.com
* Copyright (c) 2010 OTTOTECNICA Italy
BAB 3. PEBUATAN PAPAN PERMAINAN TETRIS MENGGUNAKAN ARDU
BAB 3. PEBUATAN PAPAN PERMAINAN TETRIS MENGGUNAKAN ARDU
** This library is free software; you can redistribute it
* and/or modify it under the terms of the GNU Lesser
* General Public License as published by the Free Software
* Foundation; either version 2.1 of the License, or (at * your
option) any later version.
* This library is distributed in the hope that it will
* be useful, but WITHOUT ANY WARRANTY; without
even the
* implied warranty of MERCHANTABILITY or FITNESS
FOR A
* PARTICULAR PURPOSE. See the GNU Lesser General
Public
* License for more details.
* You should have received a copy of the GNU Lesser
* General Public License along with this library; if not,
* write to the Free Software Foundation, Inc.,
* 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
#include SimpleTimer.h
// Select time function:
//static inline unsigned long elapsed() { return micros(); }
static inline unsigned long elapsed() { return millis(); }
SimpleTimer::SimpleTimer() {
unsigned long current_millis = elapsed();
for (int i = 0; i  MAX_TIMERS; i++) {
enabled[i] = false; callbacks[i] = 0; // if the callback pointer
is zero,
the slot is free, i.e. doesn't contain any timer
prev_millis[i] = current_millis;
BAB 3. PEBUATAN PAPAN PERMAINAN TETRIS MENGGUNAKAN ARDU
numRuns[i] = 0; }
numTimers = 0; }
void SimpleTimer::run() {
int i; unsigned long current_millis;
// get current time
current_millis = elapsed();
for (i = 0; i  MAX_TIMERS; i++) {
toBeCalled[i] = DEFCALL_DONTRUN;
// no callback == no timer, i.e. jump over empty slots if
(callbacks[i]) {
// is it time to process this timer ?
// see
http://arduino.cc/forum/index.php/topic,
124048.msg932592.html#msg932592
if (current_millis - prev_millis[i] = delays[i]) {
// update time
//prev_millis[i] = current_millis;
prev_millis[i] += delays[i];
// check if the timer callback has to be executed
if (enabled[i]) {
// run forever timers must always be executed
if (maxNumRuns[i] == RUN_FOREVER) { toBeCalled[i]
= DEFCALL_RUNONLY; }
// other timers get executed the specied number of times
else if
(numRuns[i]  maxNumRuns[i]) {
toBeCalled[i] = DEFCALL_RUNONLY; numRuns[i]++;
// after the last run, delete the timer
if (numRuns[i] = maxNumRuns[i]) {
BAB 3. PEBUATAN PAPAN PERMAINAN TETRIS MENGGUNAKAN ARDU
toBeCalled[i] = DEFCALL_RUNANDDEL;
}
}
}
}
}
}
for (i = 0; i  MAX_TIMERS; i++) {
switch(toBeCalled[i]) {
case DEFCALL_DONTRUN:
break;
case DEFCALL_RUNONLY:
(*callbacks[i])();
break;
case DEFCALL_RUNANDDEL:
(*callbacks[i])();
deleteTimer(i);
break;
}
}
}
// nd the rst available slot
// return -1 if none found
int SimpleTimer::ndFirstFreeSlot() {
int i;
// all slots are used
if (numTimers = MAX_TIMERS) {
return -1;
}
BAB 3. PEBUATAN PAPAN PERMAINAN TETRIS MENGGUNAKAN ARDU
// return the rst slot with no callback (i.e. free)
for (i = 0; i  MAX_TIMERS; i++) {
if (callbacks[i] == 0) {
return i;
}
}
// no free slots found
return -1;
}
int SimpleTimer::setTimer(long d, timer_callback f, int n)
{
int freeTimer;
freeTimer = ndFirstFreeSlot();
if (freeTimer  0) {
return -1;
}
if (f == NULL) {
return -1;
}
delays[freeTimer] = d;
callbacks[freeTimer] = f;
maxNumRuns[freeTimer] = n;
enabled[freeTimer] = true;
prev_millis[freeTimer] = elapsed();
numTimers++;
return freeTimer;
}
int SimpleTimer::setInterval(long d, timer_callback f) {
return setTimer(d, f, RUN_FOREVER);
BAB 3. PEBUATAN PAPAN PERMAINAN TETRIS MENGGUNAKAN ARDU
}
int SimpleTimer::setTimeout(long d, timer_callback f) {
return setTimer(d, f, RUN_ONCE); }
void SimpleTimer::deleteTimer(int timerId) {
if (timerId = MAX_TIMERS) {
return;
}
// nothing to delete if no timers are in use
if (numTimers == 0) {
return;
}
// don't decrease the number of timers if the
// specied slot is already empty
if (callbacks[timerId] != NULL) {
callbacks[timerId] = 0;
enabled[timerId] = false;
toBeCalled[timerId] = DEFCALL_DONTRUN;
delays[timerId] = 0;
numRuns[timerId] = 0;
// update number of timers
numTimers--;
}
}
//function contributed by code@rowansimms.com
void SimpleTimer::restartTimer(int numTimer) {
if (numTimer = MAX_TIMERS) {
return;
}
prev_millis[numTimer] = elapsed();
BAB 3. PEBUATAN PAPAN PERMAINAN TETRIS MENGGUNAKAN ARDU
}
boolean SimpleTimer::isEnabled(int numTimer) {
if (numTimer = MAX_TIMERS) {
return false;
}
return enabled[numTimer];
}
void SimpleTimer::enable(int numTimer) {
if (numTimer = MAX_TIMERS) {
return;
}
enabled[numTimer] = true;
}
void SimpleTimer::disable(int numTimer) {
if (numTimer = MAX_TIMERS) {
return;
}
enabled[numTimer] = false;
}
void SimpleTimer::toggle(int numTimer) {
if (numTimer = MAX_TIMERS) {
return;
}
enabled[numTimer] = !enabled[numTimer];
}
int SimpleTimer::getNumTimers() {
return numTimers;
}
Tetris Table / SimpleTimer.h
BAB 3. PEBUATAN PAPAN PERMAINAN TETRIS MENGGUNAKAN ARDU
/*
* SimpleTimer.h
* SimpleTimer - A timer library for Arduino.
* Author: mromani@ottotecnica.com
* Copyright (c) 2010 OTTOTECNICA Italy
* This library is free software; you can redistribute it
* and/or modify it under the terms of the GNU Lesser
* General Public License as published by the Free Software
* Foundation; either version 2.1 of the License, or (at
* your option) any later version.
* This library is distributed in the hope that it will
* be useful, but WITHOUT ANY WARRANTY; without
even the
* implied warranty of MERCHANTABILITY or FITNESS
FOR A
* PARTICULAR PURPOSE. See the GNU Lesser General
Public
* License for more details.
* You should have received a copy of the GNU Lesser
* General Public License along with this library; if not,
* write to the Free Software Foundation, Inc.,
* 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
#ifndef SIMPLETIMER_H
#dene SIMPLETIMER_H
#if dened(ARDUINO)  ARDUINO = 100
#include Arduino.h
#else
#include WProgram.h
BAB 3. PEBUATAN PAPAN PERMAINAN TETRIS MENGGUNAKAN ARDU
#endif
typedef void (*timer_callback)(void);
class SimpleTimer {
public:
// maximum number of timers
const static int MAX_TIMERS = 10;
// setTimer() constants
const static int RUN_FOREVER = 0;
const static int RUN_ONCE = 1;
// constructor
SimpleTimer();
// this function must be called inside loop()
void run();
// call function f every d milliseconds
int setInterval(long d, timer_callback f);
// call function f once after d milliseconds
int setTimeout(long d, timer_callback f);
// call function f every d milliseconds for n times
int setTimer(long d, timer_callback f, int n);
// destroy the specied timer
void deleteTimer(int numTimer);
// restart the specied timer
void restartTimer(int numTimer);
// returns true if the specied timer is enabled
boolean isEnabled(int numTimer);
// enables the specied timer
void enable(int numTimer);
// disables the specied timer
void disable(int numTimer);
BAB 3. PEBUATAN PAPAN PERMAINAN TETRIS MENGGUNAKAN ARDU
// enables the specied timer if it's currently disabled,
// and vice-versa
void toggle(int numTimer);
// returns the number of used timers
int getNumTimers();
// returns the number of available timers
int getNumAvailableTimers() { return MAX_TIMERS -
numTimers; };
private:
// deferred call constants
const static int DEFCALL_DONTRUN = 0; // don't call
the
callback function
const static int DEFCALL_RUNONLY = 1; // call the ca-
llback
function but don't delete the timer
const static int DEFCALL_RUNANDDEL = 2; // call the
callback
function and delete the timer
// nd the rst available slot int ndFirstFreeSlot();
// value returned by the millis() function
//in the previous run() call
unsigned long prev_millis[MAX_TIMERS];
// pointers to the callback functions
timer_callback callbacks[MAX_TIMERS];
// delay values
long delays[MAX_TIMERS];
// number of runs to be executed for each timer
int maxNumRuns[MAX_TIMERS];
BAB 3. PEBUATAN PAPAN PERMAINAN TETRIS MENGGUNAKAN ARDU
//number of executed runs for each timer
int numRuns[MAX_TIMERS];
// which timers are enabled
boolean enabled[MAX_TIMERS];
// deferred function call (sort of) - N.B.: this array is only
used in
run()
int toBeCalled[MAX_TIMERS];
// actual number of timers in use
int numTimers;
};
#endif
TetrisTable / TetrisTable.ino
#include
ESP8266WiFi.h
#include DNSServer.h
#includeESP8266WebServer.h
#include WiFiManager.h
#includeNeoPixelBus.h
#include SimpleTimer.h
#includefonts/6x8_vertikal_MSB_1.h
#include WebSocketsServer.h
#include index_html.h
bool debug = true;
#dene SerialDebug(text) Serial.print(text);
#dene SerialDebugln(text) Serial.println(text);
char MyIp[16];
char MyHostname[16];
ESP8266WebServer server = ESP8266WebServer(80);
BAB 3. PEBUATAN PAPAN PERMAINAN TETRIS MENGGUNAKAN ARDU
WebSocketsServer webSocket = WebSocketsServer(81);
#dene Width 13
#dene pixelCount (Width*Width)
#dene pixelPin 2 // should be ignored because of
NeoEsp8266Dma800KbpsMethod
NeoPixelBusNeoGrbFeature,
NeoEsp8266Uart800KbpsMethod strip(pixelCount, pixelPin);
NeoTopology ColumnMajorAlternatingLayout topo(Width,
Width); RgbColor black = RgbColor(0);
#dene FontWidth 6
#dene MaxTextLen 255
byte Text[MaxTextLen];
int TextPos=0;
int TextLen=0;
SimpleTimer TextTimer;
RgbColor TextCol=RgbColor(128,128,128);
byte Mode=1;
byte RenderLetter(byte * pos, const char x) {
byte l=0;
for (int i=0 ; iFontWidth ; i++) {
if (font[x][i] != 0) {
pos[l] = font[x][i]; l++;
}
}
return l;
}
void RenderText(const uint8_t * text, size_t len) {
const uint8_t * p = text;
TextPos=TextLen=0;
BAB 3. PEBUATAN PAPAN PERMAINAN TETRIS MENGGUNAKAN ARDU
for (size_t i=0 ; ilen  iMaxTextLen-8 ; i++) {
TextLen += RenderLetter(Text[TextLen], *p);
Text[TextLen]=0; TextLen++; // one row free space p++;
}
} void RenderText(const char * text) {
RenderText((const uint8_t *) text, strlen(text));
}
void RenderText(String s){
RenderText((const uint8_t *)s.c_str(), s.length());
}
void ShowText() {
TextPos++; if (TextPos  TextLen) TextPos=0;
strip.ClearTo(black);
for (uint8_t i=0 ; iWidth ; i++) {
if (TextPos+i = TextLen) break;
for (int x=0 ; x8 ; x++) {
if ((Text[TextPos+i]  (1x)) != 0) {
strip.SetPixelColor(topo.Map(2+x,Width-i-1), TextCol);
}
}
}
strip.Show();
}
#dene MaxStones 7
const uint8_t Stones[MaxStones] = {0x0F, 0x2E, 0x4E, 0x8E,
0x6C, 0xCC, 0xC6};
struct sStone {
int8_t x,y;
uint8_t id;
BAB 3. PEBUATAN PAPAN PERMAINAN TETRIS MENGGUNAKAN ARDU
int8_t dir;
RgbColor col;
} Stone, NewStone;
SimpleTimer TetrisTimer;
int TetrisTimerId;
int Lines=0;
int Level=1;
void UpdateClient() {
String s; s += Lines: ;
s += Lines;
s += br /Level: ;
s += Level; webSocket.broadcastTXT(s);
}
void MoveStoneDown();
void UpdateLevel() {
int interval = 1000 - (50*Level);
TetrisTimer.deleteTimer(TetrisTimerId);
TetrisTimerId = TetrisTimer.setInterval(interval, MoveSto-
neDown);
}
void DrawStone(bool draw) {
for (int8_t y=0 ; y4 ; y++) {
for (int8_t x=0 ; x2 ; x++) {
if ((Stones[Stone.id]  (1(y+x*4))) != 0) {
int8_t x1=Stone.x, y1=Stone.y;
switch (Stone.dir) {
case 0: x1+=x-1; y1+=y-2; break;
case 1: x1+=y-2; y1-=x-1; break;
case 2: x1-=x-1; y1-=y-2; break;
BAB 3. PEBUATAN PAPAN PERMAINAN TETRIS MENGGUNAKAN ARDU
case 3: x1-=y-2; y1+=x-1; break;
}
if (x1Width) strip.SetPixelColor(topo.Map(x1,y1), draw?
Stone.col:black);
}
}
}
strip.Show();
}
void CalcNewStone(uint8_t dir) {
NewStone=Stone;
switch (dir) {
case 1: NewStone.x--; break; // Down
case 2: NewStone.y++; break; // Left
case 3: NewStone.y--; break; // Right
case 4: NewStone.dir--; // Rotate left
if (NewStone.dir0) NewStone.dir=3; break;
case 5: NewStone.dir++; // Rotate right
if (NewStone.dir3) NewStone.dir=0; break;
}
}
void NextStone() {
Stone.x=Width;
Stone.y=Width/2-2;
Stone.id=random(0,MaxStones);
Stone.dir=0;
Stone.col=RgbColor(random(5,255),random(5,255),
random(5,255));
}
BAB 3. PEBUATAN PAPAN PERMAINAN TETRIS MENGGUNAKAN ARDU
uint8_t CheckSpace() {
for (int8_t y=0 ; y4 ; y++) {
for (int8_t x=0 ; x2 ; x++) {
if ((Stones[NewStone.id]  (1(y+x*4))) != 0) {
int8_t x1=NewStone.x, y1=NewStone.y;
switch (NewStone.dir) {
case 0: x1+=x-1; y1+=y-2; break;
case 1: x1+=y-2; y1-=x-1; break;
case 2: x1-=x-1; y1-=y-2; break;
case 3: x1-=y-2; y1+=x-1; break;
}
if (y10 || y1=Width) return 1;
if (x10) return 2;
if (strip.GetPixelColor(topo.Map(x1,y1)).CalculateBrightness()
!=
0) return 3;
}
}
}
return 0;
}
void CheckRows() {
for (int x=0 ; xWidth ; ) {
uint8_t cnt=0;
for (int y=0 ; yWidth ; y++) {
if (strip.GetPixelColor(topo.Map(x,y)).CalculateBrightness()
!= 0)
cnt++;
}
BAB 3. PEBUATAN PAPAN PERMAINAN TETRIS MENGGUNAKAN ARDU
if (cnt == Width) {
for (int x1=x ; x1Width-1 ; x1++) {
for (int y=0 ; yWidth ; y++) {
strip.SetPixelColor(topo.Map(x1,y),
strip.GetPixelColor(topo.Map(x1+1,y)));
}
}
for (int y=0 ; yWidth ; y++) {
strip.SetPixelColor(topo.Map(Width,y), black);
}
strip.Show();
Lines++;
if ((Lines%10) == 0) { Level++; UpdateLevel(); }
UpdateClient();
continue;
}
x++;
}
}
void MoveStoneDown() {
CalcNewStone(1);
DrawStone(false);
switch (CheckSpace()) {
case 0: // OK!
case 1: // Move to far left/right
Stone=NewStone;
break;
case 2: // reached bottom
case 3: // stone blocked
BAB 3. PEBUATAN PAPAN PERMAINAN TETRIS MENGGUNAKAN ARDU
DrawStone(true);
CheckRows();
NextStone();
break;
}
DrawStone(true);
}
void NewGame() {
strip.ClearTo(black);
strip.Show();
NextStone();
Lines=0;
Level=1;
UpdateLevel();
UpdateClient();
}
void webSocketEvent(uint8_t num, WStype_t type, uint8_t
*
payload, size_t len) {
switch(type) {
case WStype_DISCONNECTED:
break;
case WStype_CONNECTED: {
IPAddress ip = webSocket.remoteIP(num);
webSocket.sendTXT(num, Connected);
if (Mode!=2) {
Mode=2;
NewGame();
}
BAB 3. PEBUATAN PAPAN PERMAINAN TETRIS MENGGUNAKAN ARDU
} break;
case WStype_TEXT: {
// RenderText(payload, len); switch (*payload) {
case 'd': CalcNewStone(1); break;
case 'l': CalcNewStone(2); break;
case 'r': CalcNewStone(3); break;
case 'x': CalcNewStone(4); break;
case 'y': CalcNewStone(5); break;
case 'n': NewGame(); break;
}
DrawStone(false);
switch (CheckSpace()) {
case 0: // OK!
Stone=NewStone;
break;
case 1: // Move to far left/right
case 2: // reached bottom
case 3: // stone blocked
break;
}
DrawStone(true);
} break;
}
}
void setup() {
Serial.begin(9600);
Serial.setTimeout(200);
delay(100);
WiFiManager wiManager;
BAB 3. PEBUATAN PAPAN PERMAINAN TETRIS MENGGUNAKAN ARDU
wiManager.setDebugOutput(debug);
wiManager.setTimeout(3*60);
if(!wiManager.autoConnect()) {
delay(3000);
ESP.reset();
delay(5000);
}
IPAddress MyIP=WiFi.localIP();
snprintf(MyIp, 16, %d.%d.%d.%d, MyIP[0], MyIP[1],
MyIP[2], MyIP[3]);
snprintf(MyHostname, 15, ESP-%08x, ESP.getChipId());
SerialDebug(ESP-Hostname: );
SerialDebugln(MyHostname);
RenderText(WiFi.localIP().toString().c_str());
TextTimer.setInterval(150, ShowText);
TetrisTimerId = TetrisTimer.setInterval(1000, MoveStone-
Down);
server.on(/, []() {
server.send(200, text/html, index_html);
});
server.begin();
webSocket.begin();
webSocket.onEvent(webSocketEvent);
strip.Begin();
strip.ClearTo(black);
strip.Show();
}
void loop() {
server.handleClient();
BAB 3. PEBUATAN PAPAN PERMAINAN TETRIS MENGGUNAKAN ARDU
webSocket.loop();
switch (Mode) {
case 1: TextTimer.run(); TextCol=RgbColor(random(1,255),
random(1,255), random(1,255));
break;
case 2: TetrisTimer.run();
break;
default: Mode=1;
}
}
Tetris Table / html2h.sh
#!/bin/bash
echo -n 'const char index_html[]=' index_html.h
perl -ne 's///g; chomp; print;' index.html index_html.h
echo ';' index_html.h
Tetris Table / index.html
htmlhead
titleTetris/title
meta http-equiv=Content-Type content=text/html;
charset=utf-8
link rel=apple-touch-icon-precomposed href=http://
cdn1.iconnder.com/data/icons/CrystalClear/128x128/apps/
ksirtet.png /
meta name=apple-mobile-web-app-capable
content=yes /
meta name=mobile-web-app-capable content=yes /
meta name=viewport content=target-densitydpi=device-
dpi;
BAB 3. PEBUATAN PAPAN PERMAINAN TETRIS MENGGUNAKAN ARDU
width=device-width; initial-scale=1.0; maximum-scale=1.0;
user-
scalable=0; /
script
var connection = new WebSocket('ws://'+location.hostname+':81/',
['arduino']);
connection.onopen = function () {
connection.send('Connect ' + new Date());
};
connection.onerror = function (error) {
console.log('WebSocket Error ', error);
};
connection.onmessage = function (e) {
console.log('Server: ', e.data);
document.getElementById(info).innerHTML = e.data;
};
/script
style
button { font-size:400%; width:200px; height:130px; }
table, td { padding:10px; text-align:center; }
p { font-size:200%; }
/style
/headbodytabletr
tdbutton id=l type=button
onclick=connection.send('l');#x2190;/button/td
tdp id=infoLines: -br /Level: -/p/td
tdbutton id=r type=button
onclick=connection.send('r');#x2192;/button/td
/trtr
BAB 3. PEBUATAN PAPAN PERMAINAN TETRIS MENGGUNAKAN ARDU
tdbutton id=x type=button
onclick=connection.send('x');#x21BA;/button/td
tdbutton id=d type=button
onclick=connection.send('d');#x2193;/button/td
tdbutton id=y type=button
onclick=connection.send('y');#x21BB;/button/td
/trtr
/trtr
tdbutton id=n type=button
onclick=connection.send('n');new/button/td /tr/
body/html
Bab 4
PENERAPAN
PERMAIN TETRIS
DALAM KEHIDUPAN
4.1 Contoh Kasus
Sebagian besar permainan di bentuk dengan maksud terten-
tu yang mana dapat di implementasikan pada kehidupan nyata
sehari-hari. sebagai contoh adlaha permainan snake pada ponsel
nokia terdahulu, permainan tersebut berguna untuk memperke-
nalkan pengguna pada papan angka yang terdapat pada ponsel
tersebut. Masih banyak lagi permaian -permainan yang yang
100
BAB 4. PENERAPAN PERMAIN TETRIS DALAM KEHIDUPAN101
diimplementasikan dalam kehidupan. Tetris sendiri memiliki
banyak hal yang diterapkan dalam kehidupan sehari-hari, mulai
dari metode permainan, aturan , serta bentuk-bentuk pada tiap
objek.
4.1.1 Penerapan metode
Penerapan Metode permainan tettris pada kehidupan sehari-
hari bisa terlihat pada penyusunan setiap benda baik dalam
konstruksi bangunan maupun penyimpanan suatu benda. pada
konstruksi bangunan penyususnan tiap-tiap objek batu disu-
sun sedemikian rupa sehingga dapat terbentuk susuanan yang
padat. di sisi lain penerapan metode pada permainan tetris
ini mengolah logika berkir seseorang agar dapat menyelisaikan
suatu pekerjaan dengan cepat dan tepat. contoh: Dari perma-
inan tetris ini, seorang seniman dari Swedia bernama Michael
Johansson terinspirasi menyusun barang-barang yang ada seba-
gaimana sebuah tetris menjadi sebuah seni, yang enak untuku
dipandang.
Dimulai dari adanya kumpulan barang-barang yang sudah
tidak terpakai lagi, Michael Johansson kemudian mempunyai
ide untuk menyusunnya, walaupun berlainan ukurannya, war-
nanya, dan bentuknya. Dengan kemampuan seninya, kemudian
ia memanfaatkan ruang-ruang kosong baik dalam rumah mau-
pun luar rumah menjadi objek seninya.
BAB 4. PENERAPAN PERMAIN TETRIS DALAM KEHIDUPAN102
Gambar 4.1: contoh implementasi pada barnga bekas
BAB 4. PENERAPAN PERMAIN TETRIS DALAM KEHIDUPAN103
Gambar 4.2: sebagai sekat ruangan
BAB 4. PENERAPAN PERMAIN TETRIS DALAM KEHIDUPAN104
4.1.2 Penerapan Aturan
Penerapan aturan pada permainan tetris banyak diterapkan da-
lam berbagai pekerjaan. Yang mana pada penerapan aturan ini
membentuk pola kerja seseorang untuk dapat menyelesaikan se-
tiap tugas yang dikerjakan.
4.1.3 Penerapan Bentuk
penereapan pada bentuk diimplementasikan pada objek objek
yang dapat saling dihubung-hubungkan. hal ini membantu da-
lam hal konstruksi bangunan yang mana dalam pengerjaan kon-
struksi bangunan bangunan harus kokoh berdiri dan kekokohan
dari bangunan di tentukan dari kepadatan objek -objek yang
salig=ng terhubung pada tiap bagian-bagian dari bangunan ter-
sebut.
4.2 Penerapan Arduino
penggunaan arduin dalam kehidupan nyata ini banyak sekali
kegunaannya mulai dari bahan projek percoabaan hingga per-
usahaan besar yang menggunakan robot dalam melakukan pro-
duksi produk-produknya beberapa implementasi arduino dalam
kehidupan sehari-hari
4.2.1 Pinokio
Pinokio bukan hanya lampu, itu adalah animatronik yang indah
didukung oleh Arduino, Pengolahan dan OpenCV, yang sadar
BAB 4. PENERAPAN PERMAIN TETRIS DALAM KEHIDUPAN105
BAB 4. PENERAPAN PERMAIN TETRIS DALAM KEHIDUPAN106
akan lingkungan sekitar dan mengekspresikan perilaku yang ber-
beda dalam cara yang sangat alami.
4.2.2 The Inebriator
Sebuah mesin cocktail Arduino bertenaga, dengan banyak kok-
tail untuk memilih dari
4.2.3 Pumpktris
Proyek sempurna untuk Halloween: menggabungkan labu de-
ngan video game klasik Tetris!
4.2.4 ExpeditInvaders
Sebuah rak buku sederhana dapat sangat ditingkatkan dengan
beberapa modul LED dikendalikan oleh sebuah papan Arduino
4.2.5 Tersembunyi kontrol lampu
Mengontrol strip LED dengan action gure dari Ezio Auditore
(Assasin Creed)
4.2.6 Hacking Hotel kunci kamar
Musim panas lalu sebuah topi hitam yang disebut Cody Broci-
ous (alias Daeken) berhasil mendapatkan akses ke 4 juta kamar
hotel dengan Arduino papan.
BAB 4. PENERAPAN PERMAIN TETRIS DALAM KEHIDUPAN107
BAB 4. PENERAPAN PERMAIN TETRIS DALAM KEHIDUPAN108
BAB 4. PENERAPAN PERMAIN TETRIS DALAM KEHIDUPAN109
Gambar 4.6: ExpeditInvaders
BAB 4. PENERAPAN PERMAIN TETRIS DALAM KEHIDUPAN110
Gambar 4.7: Tersembunyi kontrol lampu
BAB 4. PENERAPAN PERMAIN TETRIS DALAM KEHIDUPAN111
Gambar 4.8: Hacking Hotel kunci kamar
BAB 4. PENERAPAN PERMAIN TETRIS DALAM KEHIDUPAN112
4.2.7 Disco Planet
Sebuah bola disko besar yang terbuat dari 800 LED.
4.2.8 WiiChuck mengarahkan Laser pointer
Proyek ini menggunakan Wii Nunchuck untuk mengontrol laser
pointer digerakkan oleh 2 servos mini.
4.2.9 Indikator pesan Reddit
Proyek ini dapat berguna bagi semua pengguna Reddit, itu ada-
lah notier meja kecil yang menyala ketika account Reddit Anda
menerima pesan.
4.2.10 MP3 Player
Campur Arduino Mega decoder MP3, SD card, dan nokia LCD
dengan ribuan baris kode dan Anda akan mendapatkan MP3
player bekerja.
4.2.11 Timer Sleepy
SleepyTimer adalah monitor tidur Arduino berbasis yang meng-
gunakan IMU 3-axis untuk menyimpulkan pola tidur malam. Ini
grak hasil pada LCD dan pada thermal transfer printer.
BAB 4. PENERAPAN PERMAIN TETRIS DALAM KEHIDUPAN113
Gambar 4.9: Disco Planet
BAB 4. PENERAPAN PERMAIN TETRIS DALAM KEHIDUPAN114
Gambar 4.10: WiiChuck mengarahkan Laser pointer
BAB 4. PENERAPAN PERMAIN TETRIS DALAM KEHIDUPAN115
BAB 4. PENERAPAN PERMAIN TETRIS DALAM KEHIDUPAN116
Gambar 4.12: MP3 Player
4.2.12 Alarm Suara
Sebuah ide sederhana, tetapi ia datang dengan cukup bebera-
pa tur menarik. Perangkat yang dibangun dalam proyek ini
adalah detektor tingkat suara yang set o alarm via IR ketika
mendeteksi tingkat suara adalah tinggi terlalu lama.
4.2.13 Arduino-l3dgecomm
Proyek ini bertujuan untuk mengintegrasikan dunia 3D dengan
sensor nyata dan motor, lebih bukti dari konsep dari sebuah
proyek yang tepat, tapi masih ide yang menarik.
BAB 4. PENERAPAN PERMAIN TETRIS DALAM KEHIDUPAN117
Gambar 4.13: Timer Sleepy
BAB 4. PENERAPAN PERMAIN TETRIS DALAM KEHIDUPAN118
BAB 4. PENERAPAN PERMAIN TETRIS DALAM KEHIDUPAN119
Gambar 4.15: Arduino-l3dgecomm
Bab 5
PENUTUP
5.1 Kesimpulan
Game berarti permainan merujuk pada-  kelincahan in-
telektual (intellectual playability). kata game bisa diartikan
sebagai arena keputusan dan aksi pemainnya. Ada target-target
yang ingin dicapai pemainnya. Kelincahan intelektual, pada
tingkat tertentu, merupakan ukuran sejauh mana game itu me-
narik untuk dimainkan secara maksimal.
Segala bentuk kegiatan yang memerlukan pemikiran, kelin-
cahan intelektual dan pencapaian terhadap target tertentu da-
pat dikatakan sebagai game. Hal inilah yang membuat perkem-
bangan games di komputer sangat cepat. Sehingga games buk-
an hanya sekedar permainan untuk mengisi waktu luang atau
120
BAB 5. PENUTUP 121
sekedar hobi. Melainkan sebuah cara untuk meningkatkan kre-
atitas dan tingkat intelektual para penggunanya.
Tetris (bahasa Rusia: Òåòðèñ) adalah teka-teki yang didesa-
in dan diprogram oleh Alexey Pajitnov pada bulan Juni 1985,
pada saat ia bekerja di Pusat Komputer Dorodnicyn di Akade-
mi Sains Uni Soviet di Moskow. Namanya berasal dari awalan
numerik Yunani tetra yang bermakna bangun dengan empat
bagian.
Permainan ini (atau variasi lainnya) terdapat pada hampir
setiap konsol permainan video dan komputer pribadi, begitu
juga pada peralatan lainnya seperti kalkulator, ponsel, pemutar
media portabel, PDA dan bahkan sebagai rahasia pada produk
non-media seperti osiloskop. Pada dasarnya, ada 7 jenis formasi
balok yang ada di dalam game tetris, yaitu balok I, J, L, O, S,
I, dan Z.
Gamikasi bekerja dengan membuat teknologi yang lebih
menarik, dengan mendorong pengguna untuk terlibat dalam
perilaku yang diinginkan, dengan menunjukkan jalan untuk pe-
nguasaan dan otonomi, dengan membantuk untuk memecahkan
masalah dan tidak jadi gangguan, dan dengan mengambil ke-
untuknagn dari kecenderungan psikkologis manusoa `untuk ter-
libat dalam game'
Tujuan awal dibuat Arduino adalah untuk membuat perang-
kat mudah dan murah, dari perangkat yang ada saat itu. Dan
perangkat tersebut ditujukan untuk para siswa yang akan mem-
buat perangkat desain dan interaksi. Visi awalnya aja udah
mulia kan.
Saat ini tim pengembangnya adalah Massimo Banzi, David
Cuartielles, Tom Igoe, Gianluca Martino, David Mellis, dan Ni-
Game Tetris
Game Tetris
Game Tetris
Game Tetris

More Related Content

What's hot

Free Ebook Gratis - Belajar Arduino untuk Pemula v1
Free Ebook Gratis - Belajar Arduino untuk Pemula v1Free Ebook Gratis - Belajar Arduino untuk Pemula v1
Free Ebook Gratis - Belajar Arduino untuk Pemula v1haripinter
 
2015 06 & 21 ardian - dicky - pemrograman game unity (roll ball)
2015   06 & 21 ardian - dicky - pemrograman game unity (roll ball)2015   06 & 21 ardian - dicky - pemrograman game unity (roll ball)
2015 06 & 21 ardian - dicky - pemrograman game unity (roll ball)Syiroy Uddin
 
2015 17 & 14 hendy & fachrur rozi - Pemrograman Game Android ( save satelli...
2015   17 & 14 hendy & fachrur rozi - Pemrograman Game Android ( save satelli...2015   17 & 14 hendy & fachrur rozi - Pemrograman Game Android ( save satelli...
2015 17 & 14 hendy & fachrur rozi - Pemrograman Game Android ( save satelli...Syiroy Uddin
 
2. abstrak dan daftar isi, tabel dan gambar
2. abstrak dan daftar isi, tabel dan gambar2. abstrak dan daftar isi, tabel dan gambar
2. abstrak dan daftar isi, tabel dan gambarIan March
 
Pengenalan linux
Pengenalan linuxPengenalan linux
Pengenalan linuxBais Wong
 
Ebook ubuntu-indonesia.com-v01
Ebook ubuntu-indonesia.com-v01Ebook ubuntu-indonesia.com-v01
Ebook ubuntu-indonesia.com-v01Judha BeJho
 
Ebook gratis arduino untuk pemula v1
Ebook gratis   arduino untuk pemula v1Ebook gratis   arduino untuk pemula v1
Ebook gratis arduino untuk pemula v1wahyu dwi nugroho
 
Panduan praktis belajar komputer
Panduan praktis belajar komputerPanduan praktis belajar komputer
Panduan praktis belajar komputerPutuMahendra Wijaya
 
Tik sd berbasis open source kelas iii (editing 14042013)
Tik sd berbasis open source kelas iii (editing 14042013)Tik sd berbasis open source kelas iii (editing 14042013)
Tik sd berbasis open source kelas iii (editing 14042013)Owner Istana Media
 
Beamer ; Media Presentasi LaTeX
Beamer ; Media Presentasi LaTeXBeamer ; Media Presentasi LaTeX
Beamer ; Media Presentasi LaTeXHirwanto Iwan
 

What's hot (11)

Free Ebook Gratis - Belajar Arduino untuk Pemula v1
Free Ebook Gratis - Belajar Arduino untuk Pemula v1Free Ebook Gratis - Belajar Arduino untuk Pemula v1
Free Ebook Gratis - Belajar Arduino untuk Pemula v1
 
2015 06 & 21 ardian - dicky - pemrograman game unity (roll ball)
2015   06 & 21 ardian - dicky - pemrograman game unity (roll ball)2015   06 & 21 ardian - dicky - pemrograman game unity (roll ball)
2015 06 & 21 ardian - dicky - pemrograman game unity (roll ball)
 
2015 17 & 14 hendy & fachrur rozi - Pemrograman Game Android ( save satelli...
2015   17 & 14 hendy & fachrur rozi - Pemrograman Game Android ( save satelli...2015   17 & 14 hendy & fachrur rozi - Pemrograman Game Android ( save satelli...
2015 17 & 14 hendy & fachrur rozi - Pemrograman Game Android ( save satelli...
 
2. abstrak dan daftar isi, tabel dan gambar
2. abstrak dan daftar isi, tabel dan gambar2. abstrak dan daftar isi, tabel dan gambar
2. abstrak dan daftar isi, tabel dan gambar
 
Pengenalan linux
Pengenalan linuxPengenalan linux
Pengenalan linux
 
Buku panduan-pattimura
Buku panduan-pattimuraBuku panduan-pattimura
Buku panduan-pattimura
 
Ebook ubuntu-indonesia.com-v01
Ebook ubuntu-indonesia.com-v01Ebook ubuntu-indonesia.com-v01
Ebook ubuntu-indonesia.com-v01
 
Ebook gratis arduino untuk pemula v1
Ebook gratis   arduino untuk pemula v1Ebook gratis   arduino untuk pemula v1
Ebook gratis arduino untuk pemula v1
 
Panduan praktis belajar komputer
Panduan praktis belajar komputerPanduan praktis belajar komputer
Panduan praktis belajar komputer
 
Tik sd berbasis open source kelas iii (editing 14042013)
Tik sd berbasis open source kelas iii (editing 14042013)Tik sd berbasis open source kelas iii (editing 14042013)
Tik sd berbasis open source kelas iii (editing 14042013)
 
Beamer ; Media Presentasi LaTeX
Beamer ; Media Presentasi LaTeXBeamer ; Media Presentasi LaTeX
Beamer ; Media Presentasi LaTeX
 

Similar to Game Tetris

Ukk 2016 membuat game dengan rpg maker (element of crystal) - ivan sanjaya ...
Ukk 2016   membuat game dengan rpg maker (element of crystal) - ivan sanjaya ...Ukk 2016   membuat game dengan rpg maker (element of crystal) - ivan sanjaya ...
Ukk 2016 membuat game dengan rpg maker (element of crystal) - ivan sanjaya ...Syiroy Uddin
 
Makalah Perangkat Keras Komputer
Makalah Perangkat Keras KomputerMakalah Perangkat Keras Komputer
Makalah Perangkat Keras KomputerAri Septiawan
 
Proposal SKripsi GAme Platrormer
Proposal SKripsi GAme PlatrormerProposal SKripsi GAme Platrormer
Proposal SKripsi GAme Platrormerhyandikaart
 
Buku Ajar Mikrokontroler dan Interface.pdf
Buku Ajar Mikrokontroler dan Interface.pdfBuku Ajar Mikrokontroler dan Interface.pdf
Buku Ajar Mikrokontroler dan Interface.pdfSiswantoSpd
 
Dampak game pada remaja
Dampak game pada remajaDampak game pada remaja
Dampak game pada remajaNaylawidhyani
 
Proses Device Doc.
Proses Device Doc.Proses Device Doc.
Proses Device Doc.Rexsy RS
 
Tugas softskill kelompok
Tugas softskill kelompokTugas softskill kelompok
Tugas softskill kelompokade yusrizal
 
Syarifudin, buku spesifikasi komputer grafis
Syarifudin, buku spesifikasi komputer grafisSyarifudin, buku spesifikasi komputer grafis
Syarifudin, buku spesifikasi komputer grafisSyarifudin Amq
 
Syarifudin, buku spesifikasi komputer grafis
Syarifudin, buku spesifikasi komputer grafisSyarifudin, buku spesifikasi komputer grafis
Syarifudin, buku spesifikasi komputer grafisSyarifudin Amq
 
Perangkat keras-komputer
Perangkat keras-komputerPerangkat keras-komputer
Perangkat keras-komputerBudi Permana
 
Merakit komputer sesuai dengan SOP
Merakit komputer sesuai dengan SOPMerakit komputer sesuai dengan SOP
Merakit komputer sesuai dengan SOPYusron Muzaki
 
Mohamad Try Murdianto 3IA18 55413607
Mohamad Try Murdianto 3IA18 55413607 Mohamad Try Murdianto 3IA18 55413607
Mohamad Try Murdianto 3IA18 55413607 MOHAMAD TRY MURDIANTO
 
Mohamad Try Murdianto 3IA18 55413607
Mohamad Try Murdianto 3IA18 55413607 Mohamad Try Murdianto 3IA18 55413607
Mohamad Try Murdianto 3IA18 55413607 MOHAMAD TRY MURDIANTO
 
Makalah Video Games: Platform, Programmers, and Players
Makalah Video Games: Platform, Programmers, and PlayersMakalah Video Games: Platform, Programmers, and Players
Makalah Video Games: Platform, Programmers, and Playersrevi fauziah
 
Modul praktikum c++ lanjutan semester 2 BSI
Modul praktikum c++ lanjutan  semester 2 BSIModul praktikum c++ lanjutan  semester 2 BSI
Modul praktikum c++ lanjutan semester 2 BSIBari Ajha
 
Pemrograman game tetris C#
Pemrograman game tetris C#Pemrograman game tetris C#
Pemrograman game tetris C#Marwan Saragih
 
Kisah Dua Sejoli: Arduino & Python
Kisah Dua Sejoli: Arduino & PythonKisah Dua Sejoli: Arduino & Python
Kisah Dua Sejoli: Arduino & PythonRidwan Fadjar
 

Similar to Game Tetris (20)

Ukk 2016 membuat game dengan rpg maker (element of crystal) - ivan sanjaya ...
Ukk 2016   membuat game dengan rpg maker (element of crystal) - ivan sanjaya ...Ukk 2016   membuat game dengan rpg maker (element of crystal) - ivan sanjaya ...
Ukk 2016 membuat game dengan rpg maker (element of crystal) - ivan sanjaya ...
 
Makalah Perangkat Keras Komputer
Makalah Perangkat Keras KomputerMakalah Perangkat Keras Komputer
Makalah Perangkat Keras Komputer
 
Proposal SKripsi GAme Platrormer
Proposal SKripsi GAme PlatrormerProposal SKripsi GAme Platrormer
Proposal SKripsi GAme Platrormer
 
Rancangan Game
Rancangan GameRancangan Game
Rancangan Game
 
Buku Ajar Mikrokontroler dan Interface.pdf
Buku Ajar Mikrokontroler dan Interface.pdfBuku Ajar Mikrokontroler dan Interface.pdf
Buku Ajar Mikrokontroler dan Interface.pdf
 
Dampak game pada remaja
Dampak game pada remajaDampak game pada remaja
Dampak game pada remaja
 
Proses Device Doc.
Proses Device Doc.Proses Device Doc.
Proses Device Doc.
 
Tugas softskill kelompok
Tugas softskill kelompokTugas softskill kelompok
Tugas softskill kelompok
 
Syarifudin, buku spesifikasi komputer grafis
Syarifudin, buku spesifikasi komputer grafisSyarifudin, buku spesifikasi komputer grafis
Syarifudin, buku spesifikasi komputer grafis
 
Syarifudin, buku spesifikasi komputer grafis
Syarifudin, buku spesifikasi komputer grafisSyarifudin, buku spesifikasi komputer grafis
Syarifudin, buku spesifikasi komputer grafis
 
Perangkat keras-komputer
Perangkat keras-komputerPerangkat keras-komputer
Perangkat keras-komputer
 
Perangkat keras-komputer
Perangkat keras-komputerPerangkat keras-komputer
Perangkat keras-komputer
 
Pengantar os-linux
Pengantar os-linuxPengantar os-linux
Pengantar os-linux
 
Merakit komputer sesuai dengan SOP
Merakit komputer sesuai dengan SOPMerakit komputer sesuai dengan SOP
Merakit komputer sesuai dengan SOP
 
Mohamad Try Murdianto 3IA18 55413607
Mohamad Try Murdianto 3IA18 55413607 Mohamad Try Murdianto 3IA18 55413607
Mohamad Try Murdianto 3IA18 55413607
 
Mohamad Try Murdianto 3IA18 55413607
Mohamad Try Murdianto 3IA18 55413607 Mohamad Try Murdianto 3IA18 55413607
Mohamad Try Murdianto 3IA18 55413607
 
Makalah Video Games: Platform, Programmers, and Players
Makalah Video Games: Platform, Programmers, and PlayersMakalah Video Games: Platform, Programmers, and Players
Makalah Video Games: Platform, Programmers, and Players
 
Modul praktikum c++ lanjutan semester 2 BSI
Modul praktikum c++ lanjutan  semester 2 BSIModul praktikum c++ lanjutan  semester 2 BSI
Modul praktikum c++ lanjutan semester 2 BSI
 
Pemrograman game tetris C#
Pemrograman game tetris C#Pemrograman game tetris C#
Pemrograman game tetris C#
 
Kisah Dua Sejoli: Arduino & Python
Kisah Dua Sejoli: Arduino & PythonKisah Dua Sejoli: Arduino & Python
Kisah Dua Sejoli: Arduino & Python
 

Recently uploaded

PELAKSANAAN + Link2 Materi Pelatihan "Teknik Perhitungan & Verifikasi TKDN & ...
PELAKSANAAN + Link2 Materi Pelatihan "Teknik Perhitungan & Verifikasi TKDN & ...PELAKSANAAN + Link2 Materi Pelatihan "Teknik Perhitungan & Verifikasi TKDN & ...
PELAKSANAAN + Link2 Materi Pelatihan "Teknik Perhitungan & Verifikasi TKDN & ...Kanaidi ken
 
Demonstrasi Kontekstual Modul 1.2. pdf
Demonstrasi Kontekstual  Modul 1.2.  pdfDemonstrasi Kontekstual  Modul 1.2.  pdf
Demonstrasi Kontekstual Modul 1.2. pdfvebronialite32
 
KONSEP KEBUTUHAN AKTIVITAS DAN LATIHAN.pptx
KONSEP KEBUTUHAN AKTIVITAS DAN LATIHAN.pptxKONSEP KEBUTUHAN AKTIVITAS DAN LATIHAN.pptx
KONSEP KEBUTUHAN AKTIVITAS DAN LATIHAN.pptxawaldarmawan3
 
Laporan Guru Piket untuk Pengisian RHK Guru Pengelolaan KInerja Guru di PMM
Laporan Guru Piket untuk Pengisian RHK Guru Pengelolaan KInerja Guru di PMMLaporan Guru Piket untuk Pengisian RHK Guru Pengelolaan KInerja Guru di PMM
Laporan Guru Piket untuk Pengisian RHK Guru Pengelolaan KInerja Guru di PMMmulyadia43
 
ppt-modul-6-pend-seni-di sd kelompok 2 ppt
ppt-modul-6-pend-seni-di sd kelompok 2 pptppt-modul-6-pend-seni-di sd kelompok 2 ppt
ppt-modul-6-pend-seni-di sd kelompok 2 pptArkhaRega1
 
MATERI EKOSISTEM UNTUK SEKOLAH MENENGAH ATAS
MATERI EKOSISTEM UNTUK SEKOLAH MENENGAH ATASMATERI EKOSISTEM UNTUK SEKOLAH MENENGAH ATAS
MATERI EKOSISTEM UNTUK SEKOLAH MENENGAH ATASKurniawan Dirham
 
PPT_AKUNTANSI_PAJAK_ATAS_ASET_TETAP.pptx
PPT_AKUNTANSI_PAJAK_ATAS_ASET_TETAP.pptxPPT_AKUNTANSI_PAJAK_ATAS_ASET_TETAP.pptx
PPT_AKUNTANSI_PAJAK_ATAS_ASET_TETAP.pptxalalfardilah
 
DEMONSTRASI KONTEKSTUAL MODUL 1.3 PENDIDIKAN GURU PENGGERAK
DEMONSTRASI KONTEKSTUAL MODUL 1.3 PENDIDIKAN GURU PENGGERAKDEMONSTRASI KONTEKSTUAL MODUL 1.3 PENDIDIKAN GURU PENGGERAK
DEMONSTRASI KONTEKSTUAL MODUL 1.3 PENDIDIKAN GURU PENGGERAKirwan461475
 
Aksi Nyata Modul 1.1 Calon Guru Penggerak
Aksi Nyata Modul 1.1 Calon Guru PenggerakAksi Nyata Modul 1.1 Calon Guru Penggerak
Aksi Nyata Modul 1.1 Calon Guru Penggeraksupriadi611
 
Materi Pertemuan Materi Pertemuan 7.pptx
Materi Pertemuan Materi Pertemuan 7.pptxMateri Pertemuan Materi Pertemuan 7.pptx
Materi Pertemuan Materi Pertemuan 7.pptxRezaWahyuni6
 
tugas 1 anak berkebutihan khusus pelajaran semester 6 jawaban tuton 1.docx
tugas 1 anak berkebutihan khusus pelajaran semester 6 jawaban tuton 1.docxtugas 1 anak berkebutihan khusus pelajaran semester 6 jawaban tuton 1.docx
tugas 1 anak berkebutihan khusus pelajaran semester 6 jawaban tuton 1.docxmawan5982
 
LAPORAN PKP KESELURUHAN BAB 1-5 NURUL HUSNA.pdf
LAPORAN PKP KESELURUHAN BAB 1-5 NURUL HUSNA.pdfLAPORAN PKP KESELURUHAN BAB 1-5 NURUL HUSNA.pdf
LAPORAN PKP KESELURUHAN BAB 1-5 NURUL HUSNA.pdfChrodtianTian
 
Karakteristik Negara Brazil, Geografi Regional Dunia
Karakteristik Negara Brazil, Geografi Regional DuniaKarakteristik Negara Brazil, Geografi Regional Dunia
Karakteristik Negara Brazil, Geografi Regional DuniaNadia Putri Ayu
 
Modul 1.2.a.8 Koneksi antar materi 1.2.pdf
Modul 1.2.a.8 Koneksi antar materi 1.2.pdfModul 1.2.a.8 Koneksi antar materi 1.2.pdf
Modul 1.2.a.8 Koneksi antar materi 1.2.pdfSitiJulaeha820399
 
Jurnal Dwi mingguan modul 1.2-gurupenggerak.pptx
Jurnal Dwi mingguan modul 1.2-gurupenggerak.pptxJurnal Dwi mingguan modul 1.2-gurupenggerak.pptx
Jurnal Dwi mingguan modul 1.2-gurupenggerak.pptxBambang440423
 
Lembar Observasi Pembelajaran di Kelas.docx
Lembar Observasi Pembelajaran di  Kelas.docxLembar Observasi Pembelajaran di  Kelas.docx
Lembar Observasi Pembelajaran di Kelas.docxbkandrisaputra
 
implementasu Permendikbudristek no 53 2023
implementasu Permendikbudristek no 53 2023implementasu Permendikbudristek no 53 2023
implementasu Permendikbudristek no 53 2023DodiSetiawan46
 
Kelompok 4 : Karakteristik Negara Inggris
Kelompok 4 : Karakteristik Negara InggrisKelompok 4 : Karakteristik Negara Inggris
Kelompok 4 : Karakteristik Negara InggrisNazla aulia
 
Kelompok 2 Karakteristik Negara Nigeria.pdf
Kelompok 2 Karakteristik Negara Nigeria.pdfKelompok 2 Karakteristik Negara Nigeria.pdf
Kelompok 2 Karakteristik Negara Nigeria.pdftsaniasalftn18
 
AKSI NYATA Strategi Penerapan Kurikulum Merdeka di Kelas (1).pdf
AKSI NYATA Strategi Penerapan Kurikulum Merdeka di Kelas (1).pdfAKSI NYATA Strategi Penerapan Kurikulum Merdeka di Kelas (1).pdf
AKSI NYATA Strategi Penerapan Kurikulum Merdeka di Kelas (1).pdfTaqdirAlfiandi1
 

Recently uploaded (20)

PELAKSANAAN + Link2 Materi Pelatihan "Teknik Perhitungan & Verifikasi TKDN & ...
PELAKSANAAN + Link2 Materi Pelatihan "Teknik Perhitungan & Verifikasi TKDN & ...PELAKSANAAN + Link2 Materi Pelatihan "Teknik Perhitungan & Verifikasi TKDN & ...
PELAKSANAAN + Link2 Materi Pelatihan "Teknik Perhitungan & Verifikasi TKDN & ...
 
Demonstrasi Kontekstual Modul 1.2. pdf
Demonstrasi Kontekstual  Modul 1.2.  pdfDemonstrasi Kontekstual  Modul 1.2.  pdf
Demonstrasi Kontekstual Modul 1.2. pdf
 
KONSEP KEBUTUHAN AKTIVITAS DAN LATIHAN.pptx
KONSEP KEBUTUHAN AKTIVITAS DAN LATIHAN.pptxKONSEP KEBUTUHAN AKTIVITAS DAN LATIHAN.pptx
KONSEP KEBUTUHAN AKTIVITAS DAN LATIHAN.pptx
 
Laporan Guru Piket untuk Pengisian RHK Guru Pengelolaan KInerja Guru di PMM
Laporan Guru Piket untuk Pengisian RHK Guru Pengelolaan KInerja Guru di PMMLaporan Guru Piket untuk Pengisian RHK Guru Pengelolaan KInerja Guru di PMM
Laporan Guru Piket untuk Pengisian RHK Guru Pengelolaan KInerja Guru di PMM
 
ppt-modul-6-pend-seni-di sd kelompok 2 ppt
ppt-modul-6-pend-seni-di sd kelompok 2 pptppt-modul-6-pend-seni-di sd kelompok 2 ppt
ppt-modul-6-pend-seni-di sd kelompok 2 ppt
 
MATERI EKOSISTEM UNTUK SEKOLAH MENENGAH ATAS
MATERI EKOSISTEM UNTUK SEKOLAH MENENGAH ATASMATERI EKOSISTEM UNTUK SEKOLAH MENENGAH ATAS
MATERI EKOSISTEM UNTUK SEKOLAH MENENGAH ATAS
 
PPT_AKUNTANSI_PAJAK_ATAS_ASET_TETAP.pptx
PPT_AKUNTANSI_PAJAK_ATAS_ASET_TETAP.pptxPPT_AKUNTANSI_PAJAK_ATAS_ASET_TETAP.pptx
PPT_AKUNTANSI_PAJAK_ATAS_ASET_TETAP.pptx
 
DEMONSTRASI KONTEKSTUAL MODUL 1.3 PENDIDIKAN GURU PENGGERAK
DEMONSTRASI KONTEKSTUAL MODUL 1.3 PENDIDIKAN GURU PENGGERAKDEMONSTRASI KONTEKSTUAL MODUL 1.3 PENDIDIKAN GURU PENGGERAK
DEMONSTRASI KONTEKSTUAL MODUL 1.3 PENDIDIKAN GURU PENGGERAK
 
Aksi Nyata Modul 1.1 Calon Guru Penggerak
Aksi Nyata Modul 1.1 Calon Guru PenggerakAksi Nyata Modul 1.1 Calon Guru Penggerak
Aksi Nyata Modul 1.1 Calon Guru Penggerak
 
Materi Pertemuan Materi Pertemuan 7.pptx
Materi Pertemuan Materi Pertemuan 7.pptxMateri Pertemuan Materi Pertemuan 7.pptx
Materi Pertemuan Materi Pertemuan 7.pptx
 
tugas 1 anak berkebutihan khusus pelajaran semester 6 jawaban tuton 1.docx
tugas 1 anak berkebutihan khusus pelajaran semester 6 jawaban tuton 1.docxtugas 1 anak berkebutihan khusus pelajaran semester 6 jawaban tuton 1.docx
tugas 1 anak berkebutihan khusus pelajaran semester 6 jawaban tuton 1.docx
 
LAPORAN PKP KESELURUHAN BAB 1-5 NURUL HUSNA.pdf
LAPORAN PKP KESELURUHAN BAB 1-5 NURUL HUSNA.pdfLAPORAN PKP KESELURUHAN BAB 1-5 NURUL HUSNA.pdf
LAPORAN PKP KESELURUHAN BAB 1-5 NURUL HUSNA.pdf
 
Karakteristik Negara Brazil, Geografi Regional Dunia
Karakteristik Negara Brazil, Geografi Regional DuniaKarakteristik Negara Brazil, Geografi Regional Dunia
Karakteristik Negara Brazil, Geografi Regional Dunia
 
Modul 1.2.a.8 Koneksi antar materi 1.2.pdf
Modul 1.2.a.8 Koneksi antar materi 1.2.pdfModul 1.2.a.8 Koneksi antar materi 1.2.pdf
Modul 1.2.a.8 Koneksi antar materi 1.2.pdf
 
Jurnal Dwi mingguan modul 1.2-gurupenggerak.pptx
Jurnal Dwi mingguan modul 1.2-gurupenggerak.pptxJurnal Dwi mingguan modul 1.2-gurupenggerak.pptx
Jurnal Dwi mingguan modul 1.2-gurupenggerak.pptx
 
Lembar Observasi Pembelajaran di Kelas.docx
Lembar Observasi Pembelajaran di  Kelas.docxLembar Observasi Pembelajaran di  Kelas.docx
Lembar Observasi Pembelajaran di Kelas.docx
 
implementasu Permendikbudristek no 53 2023
implementasu Permendikbudristek no 53 2023implementasu Permendikbudristek no 53 2023
implementasu Permendikbudristek no 53 2023
 
Kelompok 4 : Karakteristik Negara Inggris
Kelompok 4 : Karakteristik Negara InggrisKelompok 4 : Karakteristik Negara Inggris
Kelompok 4 : Karakteristik Negara Inggris
 
Kelompok 2 Karakteristik Negara Nigeria.pdf
Kelompok 2 Karakteristik Negara Nigeria.pdfKelompok 2 Karakteristik Negara Nigeria.pdf
Kelompok 2 Karakteristik Negara Nigeria.pdf
 
AKSI NYATA Strategi Penerapan Kurikulum Merdeka di Kelas (1).pdf
AKSI NYATA Strategi Penerapan Kurikulum Merdeka di Kelas (1).pdfAKSI NYATA Strategi Penerapan Kurikulum Merdeka di Kelas (1).pdf
AKSI NYATA Strategi Penerapan Kurikulum Merdeka di Kelas (1).pdf
 

Game Tetris

  • 1. 1 KATA PENGANTAR Puji dan syukur kami panjatkan kehadirat Tuhan Yang Ma- ha Esa atas segala rahmat dan tauk nya, dan tidak lupa juga dengan penyusunan buku ini sehingga kami dapat menyelesaik- an penyusunan buku ini dengan judul Visualisasi Diagram Pe- warnaan. Harapan kami semoga buku ini dapat membantu dan memberi wawasan yang lebih luas tentang pembuatan game Te- tris dengan menggunakan software arduino yang akan dibahas. Buku ini kami akui masih banyak kekurangan karena penga- laman yang kami miliki sangat kurang. Oleh kerena itu kami harapkan kepada para pembaca untuk memberikan masukan- masukan yang bersifat membangun untuk kesempurnaan buku ini. Terima kasih kepada rekan-rekan kelompok dalam penger- jaan penulisan ini, berkat bantuannya dan semangat dalam pe- nulisan ini, buku ini telah selesai dengan baik, dan terima kasih untuk Dr. rer. Nat. I Made Wiryana, Skom, SSI, MAppScc telah memberikan kesempatan dalam menyelesaikan penulisan dengan konsep yang di berikan, semoga menjadi bermanfaat. Depok, 30 Mei 2017 Penyusun
  • 2. Daftar Isi 1 PENDAHULUAN 5 1.1 Latar Belakang . . . . . . . . . . . . . . . . . . . 5 1.2 Rumusan Masalah . . . . . . . . . . . . . . . . . 7 1.3 Tujuan . . . . . . . . . . . . . . . . . . . . . . . . 7 2 LANDASAN TEORI 9 2.1 Game . . . . . . . . . . . . . . . . . . . . . . . . 9 2.1.1 Pengertian Game . . . . . . . . . . . . . . 9 2.1.2 Klasikasi Game . . . . . . . . . . . . . . 12 2.1.3 Sejarah Perkembangan Game . . . . . . . 17 2.1.4 Desain Game . . . . . . . . . . . . . . . . 21 2.1.5 Hal-hal yang Penting Dalam Game . . . . 22 2.1.6 Sudut Pandang User . . . . . . . . . . . . 25 2.1.7 Bagian - bagian Pada Game Desainer . . 26 2.1.8 Beberapa Hal yang Perlu Diperahatikan Dalam Mendesain Sebuah Game . . . . . 26 2.2 Tetris . . . . . . . . . . . . . . . . . . . . . . . . 27 2
  • 3. DAFTAR ISI 3 2.3 Gamication . . . . . . . . . . . . . . . . . . . . 30 2.3.1 Pengertian Gamication . . . . . . . . . . 30 2.3.2 Elemen Gamication . . . . . . . . . . . . 31 2.3.3 Perbedaan Antara Gamication dan Game 32 2.3.4 Jenis - jenis gamication . . . . . . . . . . 33 2.3.5 Kapan Menggunakan Gamication? . . . 34 2.3.6 Kelebihan Menggunakan Gamication . . 34 2.3.7 Kekurangan Menggunakan Gamication . 35 2.3.8 Gamication Dalam Game Tetris . . . . . 36 2.4 Arduino . . . . . . . . . . . . . . . . . . . . . . . 36 2.4.1 Sejarah Arduino . . . . . . . . . . . . . . 37 2.4.2 Jenis - jenis Arduino . . . . . . . . . . . . 39 2.5 C (Bahasa Pemrograman) . . . . . . . . . . . . . 62 2.5.1 Versi Bahasa C . . . . . . . . . . . . . . 62 3 PEBUATAN PAPAN PERMAINAN TETRIS MENGGUNAKAN ARDUINO 64 3.1 LANGKAH - LANGKAH PEMBUATAN PAP- AN PERMAINAN TETRIS . . . . . . . . . . . . 65 3.2 Listing Program . . . . . . . . . . . . . . . . . . 76 4 PENERAPAN PERMAIN TETRIS DALAM KEHIDUPAN 100 4.1 Contoh Kasus . . . . . . . . . . . . . . . . . . . . 100 4.2 Penerapan Arduino . . . . . . . . . . . . . . . . . 104 4.2.1 Pinokio . . . . . . . . . . . . . . . . . . . 104 4.2.2 The Inebriator . . . . . . . . . . . . . . . 106
  • 4. DAFTAR ISI 4 4.2.3 Pumpktris . . . . . . . . . . . . . . . . . . 106 4.2.4 ExpeditInvaders . . . . . . . . . . . . . . 106 4.2.5 Tersembunyi kontrol lampu . . . . . . . . 106 4.2.6 Hacking Hotel kunci kamar . . . . . . . . 106 4.2.7 Disco Planet . . . . . . . . . . . . . . . . 112 4.2.8 WiiChuck mengarahkan Laser pointer . . 112 4.2.9 Indikator pesan Reddit . . . . . . . . . . . 112 4.2.10 MP3 Player . . . . . . . . . . . . . . . . . 112 4.2.11 Timer Sleepy . . . . . . . . . . . . . . . . 112 4.2.12 Alarm Suara . . . . . . . . . . . . . . . . 116 4.2.13 Arduino-l3dgecomm . . . . . . . . . . . . 116 5 PENUTUP 120 5.1 Kesimpulan . . . . . . . . . . . . . . . . . . . . . 120
  • 5. Bab 1 PENDAHULUAN 1.1 Latar Belakang Manusia diberikan tuhan kemampuan untuk menciptakan sesuatu hal yang baru, banyak inovasi yang telah dikembangk- an manusia yang digunakan diberbagai macam bidang. Bidang- bidang tersebut diantaranya adalah bidang pendidikan, politik, kesehatan, ekonomi, sosial, budaya, hukum, kesenian, industri, dan lain-lain. Kita ambil contoh pada bidang industri. Bidang industri mencakup banyak hal, salah satunya industri hiburan. Dalam era global ini, industri hiburan sangat berkembang de- ngan pesat baik itu dalam dunia entertainment maupun industri 5
  • 6. BAB 1. PENDAHULUAN 6 permainan. Berkembangnya industri permainan tersebut membuat de- veloper berlomba-lomba untuk membuat berbagai macam per- mainan dengan genre yang beraneka ragam, karena dengan per- mintaan pasar yang meningkat tentang pembuatan games. Games atau permainan yang sedang populer saat ini ada- lah bentuk games yang menggunakan teknologi digital. Games sendiri dapat dimainkan baik secara individu (single player) ma- upun dengan banyak pemain (multiplayer) dan dengan tambah- an teknologi internet dapat membuat permainan menjadi lebih seru. Permainan dengan menggunakan teknologi internet ini men- jadi semakin beragam. Software pembuat games yang banyak digunakan adalah Arduino. Arduino adalah kit elektronik atau papan rangkaian elektronik bersifat open source yang di dalam- nya terdapat komponen utama yaitu sebuah chip mikrokontro- ler dengan jenis AVR (Alf (Egil Bogen) and Vegard (Wollan)'s Risc processor) dari perusahaan Atmel. Arduino bisa digunak- an untuk mengontrol alat seperti drone dan komponen seperti sensor. Arduino memiliki beragam tipe dengan tur-tur unik tersendiri pada setiap tipe Arduino. Dengan begitu Arduino dapat digunakan sesuai dengan kebutuhan dalam pembuatan sebuah robot atau alat dengan tur yang dibutuhkan. Teknologi Arduino dapat diterapkan ke dalam sebuah game (permainan) guna menambah daya tarik, tur dan sebuah keseruan dari game
  • 7. BAB 1. PENDAHULUAN 7 tersebut. 1.2 Rumusan Masalah Berdasarkan latar belakang diatas, maka penulis memberik- an perumusan masalah sebagai berikut : 1. Apa yang dimaksud games? 2. Apa yang dimaksud tetris? 3. Apa perangkat lunak yang digunakan untuk membuat ga- mes tetris? 4. Bagaimana penggunaan Arduino pada Games tetris? 5. Bagaimana contoh pemanfaatan games tersebut? 1.3 Tujuan Berdasarkan rumusan masalah diatas, maka yang menjadi tujuan pembahasan dalam buku ini adalah sebagai berikut: 1. Untuk mengetahui tentang games.
  • 8. BAB 1. PENDAHULUAN 8 2. Untuk mengetahui apa yang dimaksud dengan Arduino. 3. Untuk mengetahui penggunaan arduino pada games. 4. Untuk mengetahui pemanfaatan Arduino untuk games te- tris.
  • 9. Bab 2 LANDASAN TEORI 2.1 Game 2.1.1 Pengertian Game Dalam bahasa Indonesia Game berarti permainan merujuk pada- kelincahan intelektual (intellectual playability). kata game bisa diartikan sebagai arena keputusan dan aksi pema- innya. Ada target-target yang ingin dicapai pemainnya. Ke- lincahan intelektual, pada tingkat tertentu, merupakan ukuran sejauh mana game itu menarik untuk dimainkan secara maksi- mal. Segala bentuk kegiatan yang memerlukan pemikiran, kelin- 9
  • 10. BAB 2. LANDASAN TEORI 10 cahan intelektual dan pencapaian terhadap target tertentu da- pat dikatakan sebagai game. Hal inilah yang membuat perkem- bangan games di komputer sangat cepat. Sehingga games buk- an hanya sekedar permainan untuk mengisi waktu luang atau sekedar hobi. Melainkan sebuah cara untuk meningkatkan kre- atitas dan tingkat intelektual para penggunanya. Bermain game adalah suatu proses ne tuning (atau pe- nyamaan frekuensi) dari logika berpikir dengan logika berpikir aplikasi komputer yang canggih. Pada saat bersamaan, game juga secara nyata mempertajam daya analisis para pengguna- nya untuk mengolah informasi dan mengambil keputusan cepat yang jitu. Beberapa platform media yang bisa dijadikan pilihan untuk advergames adalah : 1. Personal Computer berupa aplikasi games pada PC. Pada media Personal Computer, durasi waktu penayangan adalah ti- dak terbatas, selama games tersebut bagus dan mampu menghi- bur audience/pemain, maka selama itulah tingkat kemungkinan untuk dilihat audience akan semakin tinggi. Pembuatan Games ini biasanya menggunakan Language C++ / C#, membutuhkan waktu 3- 6 bulan tergantung dengan kompleksitas games terse- but. 2. Web Based Games. Yaitu aplikasi games yang diletakkan pada server di internet dimana audience/pemain hanya perlu menggunakan akses internet dan browser untuk mengakses ga- mes tersebut. 3. SmartPhones/PocketPC Telepon pintar (smartphone) adalah telepon genggam yang mempunyai kemampuan tingkat tinggi, terkadang dengan fung-
  • 11. BAB 2. LANDASAN TEORI 11 si yang menyerupai komputer. Belum ada standar pabrik yang menentukan denisi telepon pintar. Bagi beberapa orang, te- lepon pintar merupakan telepon yang bekerja menggunakan se- luruh piranti lunak sistem operasi yang menyediakan hubungan standar dan mendasar bagi pengembang aplikasi. Bagi yang la- innya, telepon pintar hanyalah merupakan sebuah telepon yang menyajikan tur canggih seperti surel (surat elektronik), inter- net dan kemampuan membaca buku elektronik (e-book) atau terdapat papan ketik (baik built-in maupun eksternal) dan ko- nektor VGA. Dengan kata lain, telepon pintar merupakan kom- puter mini yang mempunyai kapabilitas sebuah telepon. 4. Cellphones Telepon genggam atau telepon seluler (ponsel) atau hand- phone (HP) adalah perangkat telekomunikasi elektronik yang mempunyai kemampuan dasar yang sama dengan telepon kon- vensional saluran tetap, namun dapat dibawa ke mana-mana (portabel/mobile) dan tidak perlu disambungkan dengan jaring- an telepon menggunakan kabel (nirkabel wireless). Saat ini, Indonesia mempunyai dua jaringan telepon nirkabel yaitu sis- tem GSM (Global System for Mobile Telecommunications) dan sistem CDMA (Code Division Multiple Access). Badan yang mengatur telekomunikasi seluler Indonesia adalah Asosiasi Te- lekomunikasi Seluler Indonesia (ATSI). Game adalah permainan yang menggunakan media elektro- nik, merupakan sebuah hiburan berbentuk multimedia yang di buat semenarik mungkin agar pemain bisa mendapatkan sesua- tu sehingga adanya kepuasaan batin. Bermain game merupakan salah satu sarana pembelajaran. Game edukasi dibuat dengan tujuan spesik sebagai alat pendidikan, untuk belajar mengenal
  • 12. BAB 2. LANDASAN TEORI 12 warna, mengenal huruf dan angka, matematika, sampai belajar bahasa asing. Desainer yang membuat game harus memperhi- tungkan berbagai hal agar game benar-benar dapat mendidik, menambah pengetahuan dan meningkatkan keterampilan yang memainkannya. Game edukasi di Indonesia bisa masyarakat te- mukan di berbagi toko buku, tempat hiburan, pameran atau bazar dan di sekolah-sekolah yang bekerja sama langsung de- ngan perusahaan pembuat game tersebut. Game edukasi dalam perancangan ini ditujukan pada produk keluaran PT Maximize Informa Studio Indonesia (MISI) yang bernama EduGames. Kondisi ideal dari keberadaan Edu-Games, yaitu berada pa- da taraf yang sama dengan game sejenis. Keseimbangan itu dilihat dari promosi yang dilakukan, mengingat peran promosi tersebut sangat penting dalam menunjukan keberadaan Edu- Games. Berdasarkan wawancara dengan Bapak Asep seorang desainer game edukasi dari sebuah perusahaan game interaktif, keberadaan game edukasi itu sangat jarang, hal itu disebabk- an karena dianggap kurang menarik dan belum semua kalangan mengetahui karena promosi game edukasi hanya terbatas pada kawasan promosi tertentu saja lain halnya dengan keberada- an game hiburan. Sedangkan 2 berdasarkan data pada produk Edu-Games itu sendiri promosinya juga masih dibawah pesaing langsung seperti Elexmedia dan Akal Interaktif. 2.1.2 Klasikasi Game 1.Action Game dengan genre ini mengedepankan aksi dalam permai- nannya. pemain akan memerankan seorang tokoh untuk menye-
  • 13. BAB 2. LANDASAN TEORI 13 lesaikan misi, yang dalam perjalanannya akan mengalami aksi- aksi yang beragam. Game tipikal ini biasanya mengetengahkan permusuhan dan kekerasan. Contoh game yang popular untuk genre ini adalah Grand Theft Auto, Battleeld 2, Medal of Ho- nor, dan lain sebagainya. 2. Arcade Game dengan jenis ini merupakan adopsi dari gaya perma- inan dingdong di dunia nyata. Cara mainnya sederhana karena memng dingdong dicipta ketika game masih baru berkembang. Cara permainan side scroll dipopulerkan oleh arcade. Contoh permainan arcade yang populer adalah Pinball. 3. Adventure Petualangan. Genre ini memiliki gameplay yang menitikbe- ratkan perjalanan untuk melakukan sesuatu, misalnya menyela- matkan seorang putri. Dalam perjalanan, kita akan menemuk- an beragam item yang akan kita simpan. Game genre ini tidak menitikberatkan pada pertarungan, namun fokus terhadap pe- nyelesaian masalah. Contoh game yang populer untuk genre ini adalah Beyond Good. 4. Card Games Genre game kartu. Sarna seperti yang anda temui di dunia nyata, genre ini menitikberatkan permainan pada kartu remi. Anda bisa menemukan genre ini melekat pada game Freecell, Poker, Hearts, Solitaire, dan sebagainya. Sebagai pengembang- an, permainan seperti kartu Uno juga termasuk genre ini. 5. Battle Card Jenis permainan ini menitikberatkan strategi kompleks di mana kartu yang dipakai berasal dari game /anime/komik. Yang dimaksud battle di sini adalah pertarungan antar karakter di ti-
  • 14. BAB 2. LANDASAN TEORI 14 ap kartu melawan kartu lawan. Biasanya dalam permainan ini anda akan diberi sistem Life point atau variasinya. Jika karakter anda menyerang karakter lawan, maka Life point-nya berkurang. Dalam permainan juga akan ditemui kartu khusus yang memiliki efek sihir sehingga bisa memperkuat strategi. Permainan jenis ini memiliki gameplay turn-based. Contoh game yang sangat populer untuk genre ini adalah Pokémon, Digimon, Yu-Gi-Oh!, dan Duel Masters. 6. RPG (Role Playing Game) Role Playing game merupakan genre yang sangat populer. Genre ini jika diartikan haraah maka menjadi permainan dra- ma. Dalam game seperti ini, pemain akan berperan menjadi seorang tokoh yang menjalankan suatu cerita. Disediakan bebe- rapa tokoh yang bisa dipilih untuk dimainkan. Biasanya tokoh- tokoh itu dibedakan menurut ras, bangsa, atau kelas. Dalam RPG, cerita menentukan segalanya. Mengapa ada ras, mengapa harus memegang pedang, dan lain sebagainya. Pemain pasti akan menemukan QUEST da- lam game RPG. Quest merupakan misi yang harus diselesaikan untuk bisa menyelesaikan game. Dengan menyelesaikan suatu quest, maka akan memperoleh bonus berupa EXP atau lainnya. Dengan meningkatnya EXP, pemain bisa meningkatkan level ka- rakter anda. Level? Ya, jika pemain memainkan game di mana karakternya memiliki level, maka dapat dipastikan pemain me- mainkan genre RPG. Ciri khas yang bisa ditemui dalam setiap game RPG adalah: Leveling, Inventory, Skill, Quest, Ras, bang- sa, kelas, atau kategori lain, Monster, Potion, Melee, Experience Point (EXP), Sistem jual-beli (trading), Gauge system (HP, MP, FP, SP, dsb)
  • 15. BAB 2. LANDASAN TEORI 15 Contoh game RPG populer adalah Final Fantasy, Gauntlet: Seven Sorrow, Ultima (game klasik), dan banyak nama besar lain. 7. FPS (First Person Shooter) First Person Shooter merupakan jenis game selain RPG yang memiliki jumlah gamer terbanyak. FPS merupakan game sho- oting dengan sudut pandang orang pertama (gamer). Jika kita memainkannya, maka terasa melihat musuh dari mata anda sen- diri. Objek musuh dalam FPS sangat beragam, mulai manusia, robot, sampai monster. Dalam gamenya, pasti akan menemukan senjata-senjata yang berhubungan dengan menembak. Seperti pistol, machine gun, rie, bazooka, dan lain sebagainya. Anda juga akan menemukan senjata yang tidak mungkin ada dalam dunia nyata seperti Gravity Gun milik Half Life 2. Dalam FPS pasti menemukan pointer yang dinamakan crosshair. Ini meru- pakan pointer yang mewakili laras dari senjata. Contoh game FPS yang terkenal adaiah Hellgate: London, Half Life 2,Maze. dapat diartikan labirin. Genre ini merupakan nenek moyang genre game zaman sekarang. Di awal perkembangannya, game memiliki genre seperti ini. Anda akan memainkan sebuah ka- rakter (non-human) yang bertugas menyusuri lorong-lorong da- lam sebuah map untuk menghabisi musuh. Karakter anda bisa memperoleh kekuatan tambahan dari item yang berserakan di map. Pandangan yang diperoleh adalah dari atas (atap) 90°. Artinya, anda melihat apa yang anda mainkan seperti kertas 2D. 8. Fighting 9. Side Scrolling Genre ini diklasikasikan berdasar permainan yang bergerak
  • 16. BAB 2. LANDASAN TEORI 16 menyamping (side scroll) entah ke kanan atau ke kiri. Biasanya genre ini tidak berdiri sendiri, namun digabung dengan genre lain seperti adventure atau TPS. Genre ini bersama adventure telah menelurkan Super mario sebagai game paling populer di dunia. Bersama TPS, genre ini pernah melahirkan Contra yang pernah jaya di konsol Nintendo. 10. Card Board 11. Puzzle 12. MMORPG MMORPG Massively Multiplayer Online Role Playing Ga- mes Contoh game MMORPG yang populer di Indonesia adalah Nexia, Redmoon, Laghaim, Neverwinter Nights, Ragnarok, Ri- sing Force, World of Warcraft, Tabula Rasa, Cabal, dan lain sebagainya. 13. Sport Genre ini disebut bukan berdasar pada teknologi atau hai teknisnya, namun berdasar pada jenisnya saja. Segala game yang bertema olahraga, termasuk dalam genre ini. Contoh game bergenre sport adaiah Fifa Soccer, Winning Eleven, dan lain sebagainya. 14. Simulation Genre ini memiliki gameplay yang menitikberatkan peniru- an dunia nyata. Dalam genre ini, anda akan membangun seca- ra simulasi sebuah kota, negara, koloni, dunia, bahkan galaksi. Anda berperan sebagai dewa dan mengatur segalanya dari atas (sedikit pengecualian di beberapa scene). Dalam permainan, anda akan disuguhi bermacam event menarik seperti menciptak- an karakter, menciptakan makhluk hidup sendiri, membangun gedung, menata kota/negara, bertempur melawan player lain
  • 17. BAB 2. LANDASAN TEORI 17 sesama simer, atau terbang ke galaksi lain untuk menantang perang koloni asing. game dengan genre ini kebanyakan dima- inkan oleh wanita. Contoh game yang populer untuk simulasi adalah The Sims, Sim City, Spore, dan lain lain. 15. Flight Simulation Game genre ini berfokus pada simulasi penerbangan. An- da akan belajar mengemudikan pesawat sungguhan dalam ga- me. Anda bisa menerbangkan pesawat mulai dari yang kecil sampai Boeing 747. Gameplaynya dibuat mirip atau sama per- sis dengan kondisi penerbangan sesungguhnya. Genre ini tidak hanya menyediakan simulasi zaman sekarang, zaman futuristik juga dilirik. Contoh game ight sim futuristik adalah X-Wing dan Wing Commander, di mana kita bisa mengendarai pesawat tempur antariksa. Game ight sim lain contohnya Microsoft Fli- ght Simulator (yang sangat populer), Apache Air Assault, IL-2 Sturmovik, dan lain sebagainya. Jika anda ingin menjadi pilot, dalam tesnya anda juga akan dilatih memakai ight sim agar mengenal kondisi penerbangan sesungguhnya tanpa perlu takut cidera. 2.1.3 Sejarah Perkembangan Game Asal usul permainan video/video game terletak pada awal ta- bung sinar katoda berbasis pertahanan peluru kendali sistem pa- da akhir 1940-an. Program-program ini kemudian diadaptasi ke dalam permainan sederhana lainnya di era tahun 1950-an. Pada akhir 1950-an dan melalui tahun 1960-an, lebih banyak perma- inan komputer yang dikembangkan (kebanyakan di komputer mainframe), secara bertahap tingkat kecanggihan dan komplek-
  • 18. BAB 2. LANDASAN TEORI 18 sitasnya pu turut bertambah. Setelah periode ini, video game menyimpang ke berbagai platform: arcade, mainframe, konsol, pribadi komputer dan kemudian permainan genggam. Perusahaan komersial pertama konsol permainan video ada- lah Computer Space pada 1971, yang meletakkan dasar bagi industri hiburan baru di akhir 1970-an di Amerika Serikat, Je- pang, dan Eropa. tapi ini perusahaan tidak bertahan lama ini sebagian besar disebabkan oleh banjir dari video game yang da- tang ke pasar mengakibatkan keruntuhan total industri game konsol di seluruh dunia, akhirnya menggeser dominasi pasar dari Amerika Utara ke Jepang. Tapi inihanya mempengaruhi pasar game konsol, pasar game komputer sebagian besar tidak terpengaruh. Generasi selanjutnya dari konsol video game akan terus didominasi oleh perusahaan-perusahaan Jepang. Walau- pun beberapa upaya akan dilakukan oleh Amerika Utara dan perusahaan-perusahaan Eropa, generasi keempat konsol, usaha mereka pada akhirnya akan gagal. . Tidak sampai generasi keenam konsol permainan video akan non-perusahaan Jepang merilis sebuah sistem konsol sukses secara komersial. Pasar te- lah mengikuti jalan yang sama dengan beberapa kali gagal di- lakukan oleh perusahaan-perusahaan Amerika yang semuanya gagal di luar beberapa keberhasilan terbatas dalam permain- an elektronik genggam sejak dini. Saat ini hanya perusahaan- perusahaan Jepang memiliki sukses besar konsol game handhe- ld, walaupun dalam beberapa tahun terakhir permainan geng- gam telah datang ke perangkat seperti ponsel dan PDA . Generasi Pertama Generasi pertama konsol permainan video berlangsung dari tahun 1972, dengan rilis dari Magnavox Odyssey, hingga 1977,
  • 19. BAB 2. LANDASAN TEORI 19 ketika pong-style produsen konsol meninggalkan pasar secara massal karena pengenalan dan keberhasilan mikroprosesor ber- basis konsol. Generasi Kedua Dalam sejarah komputer dan video game, generasi kedua (biasa disebut sebagai awal era 8 bit atau kurang lebih 4 bit era) dimulai pada tahun 1976 dengan merilis Fairchild Chan- nel F dan Radon 1292 Advanced Programmable Video sistem. Di era generasi kedua ini yang menjadi primadona konsol game adalah konsol game ATARI. Beberapa contoh konsol game pada generasi kedua dapat dilihat disamping. Dari ki-ka adalah Fair- child Channel F,Atari 2600, Magnavox Odyssey ver. 2 , Atari 5200. Generasi Ketiga Generasi ketiga dimulai pada tahun 1983 dengan dipasarkan- nya Jepang Family Computer tau lebih dikenal dengan nama FAMICOM(kemudian dikenal sebagai Nintendo Entertainment System di seluruh dunia). Walaupun konsol generasi sebelum- nya juga menggunakan 8-bit processor, pada akhir generasi ini- lah konsol rumah yang pertama kali diberi label oleh mereka bit. Ini juga masuk ke mode sebagai sistem 16-bit seperti Mega Drive / Genesis dipasarkan untuk membedakan antara generasi konsol. Di Amerika Serikat, generasi ini di game ini terutama didominasi oleh NES / Famicom. Di era ini pulalah terjadi perang konsol game yang pertama antara perusahaan konsol Nintendo dengan SEGA. Generasi Keempat Generasi keempat atau biasa disebut dengan era 16 bit,pada generasi ini NES mendapat sambutan hangat di seluruh dunia,
  • 20. BAB 2. LANDASAN TEORI 20 dan sebuah perusahaan bernama Sega mencoba menyaingi Nin- tendo. Pada tahun 1988, Sega merilis konsol next-generation mereka, Sega Mega Drive (yang juga dikenal dengan Sega Ge- nesis). Konsol ini menyajikan gambar yang lebih tajam dan ani- masi yang lebih halus dibanding NES. Konsol ini cukup berhasil memberi tekanan, tetapi NES tetap bertahan dengan angka pen- jualan tinggi. Dua tahun berselang, pada 1990, Nintendo kem- bali menggebrak dengan konsol next-gen mereka, SNES (Super Nintendo Entertainment System). Selama 4 tahun, Nintendo dan Sega menjadi bebuyutan, meskipun ada beberapa produsen seperti SNK dengan NeoGeo-nya, NEC dengan TurboGrafx-16 dan Phillips CD-i, tapi kedua konsol mereka begitu handal dan populer. Generasi Kelima Generasi kelima atau disebut juga dengan era konsol 32 bit. dimana konsol game yang paling populer pada generasi ini ada- lah Sony Playstation. Generasi Keenam Generasi keenam ini ditandai dengan munculnya konsol-konsol game next generation dari masing-masing perusahaan seperti SONY, SEGA,Nintendo serta munculnya satu lagi konsol game baru yang diluncurkan oleh Microsoft yang diberi nama Xbox. Perang konsol game ini akhirnya mengakibatkan jatuhnya per- usahaan konsol SEGA yang tidak dapat lagi meneruskan konsol next generation(Dreamcast) mereka dan lebih memilih untuk berkonsentrasi dibidang pembuatan game konsol. Generasi Ketujuh Dikarenakan semakin canggihnya teknologi di bidang tekno- logi maka kemudian 3 perusahaan konsol terbesar(Sony, Ninten-
  • 21. BAB 2. LANDASAN TEORI 21 do, dan Microsoft) mengeluarkan kembali konsol next-generation mereka keluaran terbaru. Sony mengeluarkan konsol next-gen yang diberi nama PS3(Playstation 3), lalu Nintendo dengan Nintendo Wii kemudian Microsoft dengan Xbox 360. Pada ge- nerasi ini semakin dikembangkan sistem permainan online atau permainan yang melibatkan banyak pemain yang terhubung de- ngan konsol mereka dan semakin ditinggalkannya permainan si- ngle player. 2.1.4 Desain Game Desain Game adalah gambaran bagaimana sebuah game kom- puter itu akan dibuat. Untuk membuat sebuah game terlebih dahulu pembuat game harus membuat deskripsi yang menceri- takan game yang akan dibuat (Hahguoh dan Overmars, 2006). Dari design yang telah dibuat kemudian dapat diketahui se- mua elemen-elemen berbeda yang dibutuhkan dalam pembu- atan game, misalnya karakter user, karakter musuh, animasi serangan dan sebagainya. Membuat game akan membutuhkan gambar dari tiap elemen-elemen yang ada. Hal tersebut dika- takan sebagairesources game. Game Design Dokumen (GDG) Para pembuat game komersial biasanya mempersiapkan do- kumendokumen yang berisi design game yang sangat panjang sebelum memulai pembuatan game. Game Design Dokumen (GDD) adalah setiap hal-hal yang detail di dalam game harus disebutkan di dalamnya.
  • 22. BAB 2. LANDASAN TEORI 22 2.1.5 Hal-hal yang Penting Dalam Game Sprites Sprites adalah kumpulan gambar-gambar yang digunakan untuk icon, karakter ataupun gambar bergerak dalam game. Sprites dapat dibuat dari gambar-gambar yang sudah dibuat dalam sebuah art packages, download dari internet maupun di- buat secara manual dengan menggunakan software seperti Ado- be Photoshop. Objects Sprites tidak dapat melakukan sesuatu dengan sendirinya. Sprites hanya menyimpan gambar-gambar dari elemen-elemen yang berbeda dalam sebuah fame. Objects adalah bagian dari game yang mengontrol bagaimana elemen-elemen tersebut ber- gerak dan berinteraksi satu sama lain. Contohnya adalah ka- rakter dalam game. Events dan Actions Events adalah hal-hal penting yang terjadi didalam sebuah game, seperti ketika objects saling bertumbukan maupun ketika user menekan tombol pada keyboard. Actions adalah hal-hal yang terjadi sebagai respon dari sebuah event, seperti perubah- an arah pergerakan objects, perubahan score, atau memainkan sebuah lagu. Backgrounds Backgrounds adalah gambar gambar yang digunakan seba- gai gambar latar belakang game dan merupakan jenis lain dari resource, seperti sprites dan objects. Pada umumnya ukuran backgrounds sama dengan resolusi game. Sounds
  • 23. BAB 2. LANDASAN TEORI 23 Sounds juga termasuk resource game, jenis sounds dalam game ada dua, yaitu musics dan sound eect. Sounds dangat mempengaruhi atmosfer dalam game. Masters berupa lagu yang terus mengalun selama game dimainkan, namun lagu yang di- mainkan pada umumnya bergantung pada tempat atau kondisi game. Sounds eect adalah suara yang hanya terdengar keti- ka terjadi suatu hal tertentu, misal penekanan tombol, karakter terkena pukulan dan sebagainya. Kegunaan dari sound eects adalah untuk membantu user mengetahui action yang dilakukan maupun hal yang sedang terjadi. Status Status adalah sekumpulan informasi yang berguna untuk orang yang memainkan sebuah game untuk mengetahui kondisi permainan saat itu. Bergantung dari jenis game-nya informasi yang disampaikan melalui status dapat bermacam-macam. Berikut beberapa macam status pada game beserta penjela- sannya : 1. Score adalah nilai yang diperoleh oleh orang yang mema- inkan sebuah game. Status ini sangat sering digunakan pada sebuah game untuk mengetahui kemampuan yang memainkan- nya. 2. High Score adalah nilai tertinggi yang pernah dicapai orang yang memainkan sebuah game. Status ini biasanya ter- dapat pada game yang dapat diselesaikan dalam waktu yang cukup singkat, sehingga membuat orang yang memainkannya tertarik untuk mengulangi permainan dari awal, dengan harap- an mendapat high score yang lebih tinggi. 3. HP (Hit Point) adalah status yang menunjukkan jum- lah maksimal damage yang dapat diterima oleh karakter dalam
  • 24. BAB 2. LANDASAN TEORI 24 game. Apabila bernilai 0 maka karakter tersebut dinyatakan mati/kalah. Status ini biasanya terdapat pada game ber-genre ghting, action atau RPG (Role Playing Game). 4. SP (Skill Point) adalah sejumlah poin yang dapat digu- nakan untuk menggunakan skill. Jumlah yang dibutuhkan ber- gantung dari skill yang digunakan. Status ini biasanya terdapat pada game ber-genre RPG. 5. Strength adalah jumlah kekuatan karakter dalam game. Nilai status biasanya menentukan kekuatan serangan karakter. Status ini biasanya terdapat pada game ber-genre ghting action atau RPG. 6. Vitality adalah jumlah pertahanan karakter dalam game. Nilai status ini biasanya akan mempengaruhi jumlah HP dan pertahanan yang dimiliki karakter. Status ini biasanya terdapat pada game ber-genre ghting action atau RPG. 7. Speed adalah kecepatan karakter dalam game. Nilai sta- tus ini biasanya akan mempengaruhi seberapa cepat karakter akan bergerak atau mendapatkan giliran serta menentukan mu- dah atau tidaknya terkena serangan musuh. Status ini biasanya terdapat pada game ber-genre ghting, action atau RPG. 8. Intelligence adalah jumlah kekuatan sihir dari karakter dalam game. Nilai status ini biasanya akan berpengaruh pada jumlah SP, serangan sihir dan ketahanan terhadap serangan si- hir. Status ini biasanya terdapat pada game ber-genre action atau RPG. 9. Luck adalah keberuntungan karakter dalam game. Nilai status ini biasanya akan mempengaruhi karakter dalam menda- patkan hal-hal yang sulit didapatkan dalam game, seperti ter- jadinya critical hit.
  • 25. BAB 2. LANDASAN TEORI 25 10. Status point adalah sejumlah poin yang biasanya digu- nakan untuk menambah status karakter seperti Strength, Vita- lity, Intelligence, Speed dan Luck. Status ini biasanya terdapat pada game ber-genre action atau RPG. 11. Time adalah status yang digunakan untuk berbagai ma- cam fungsi dalam game, misal untuk menentukan waktu yang tersisa untuk mencapai tujuan tertentu, jumlah waktu yang te- lah dihabiskan seseorang untuk memainkan game tersebut, dan lain sebagainya. Status ini biasanya terdapat pada game ber- genre ghting, action atau RPG. 12. Experience dalam dunia game adalah sejumlah poin yang biasanya digunakan untuk menentukan level karakter da- lam game. Status ini biasanya terdapat pada game ber-genre action atau RPG. Turn Based Turn Based adalah sebuah sistem dalam game untuk me- nentukan giliran dimana hanya satu user yang dapat bergerak dalam suatu waktu tertentu. Contoh game antara lain Tic Tac Toe, Scrabble, Catur, Permainan Kartu dan lain-lain 2.1.6 Sudut Pandang User Sudut pandang user dalam game ada 2, yaitu : 1. First Person View adalah sudut pandang orang per- tama, dimana user dijadikan seperti karakter yang dimainkan, sehingga user melihat dari sudut pandang karakter yang dima- inkan. Contoh game : Counter Strike, HALO. 2. Third Person View adalah sudut pandang orang ketiga, dimana user dapat melihat keseluruhan tubuh karakter dalam
  • 26. BAB 2. LANDASAN TEORI 26 game. Contoh game : Ragnarok Online, FATE. 2.1.7 Bagian - bagian Pada Game Desainer Lead designer adalah orang yang bertanggung jawab atas semua kinerja teamnya. Dia akan memimpin dan juga memastikan komunikasi team berjalan dengan baik serta memiliki wewenang dalam pengambilan keputusan. Game mechanic designer adalah orang yang mendesain dan menyeimbangkan mekanika alur cerita pada sebuah game. Level designer or environment designer adalah orang yang bertanggung jawab dalam pembuatan misi game, level game, tur game dan lingkungan sekitar pada game. Writer adalah orang yang menulis dan memahami cerita dari game, dialog, komentar, dan cerita cuplikan game. 2.1.8 Beberapa Hal yang Perlu Diperahatikan Dalam Mendesain Sebuah Game 1. Level Design : mendesain setiap level game termasuk tur, tingkat kesulitan, dan tema dari setiap level. 2. World Design : merancang dunia dalam game. Mulai dari latar tempat, waktu dan tema keseluruhan dari game. 3. Game Writing : merancang setiap dialog, komentar dan jalan cerita dari game. 4. User Interface Design : mendesain interaksi user dan se- gala feedbacknya, misalnya saat kita mengetuk pintu, apa yang akan terjadi selanjutnya.
  • 27. BAB 2. LANDASAN TEORI 27 5. Content Design : mendesain karakter, barang, perleng- kapan, misi, dan lainlain. 6. System Design : merancang game rules dan rumus-rumus yang digunakan secara garis besar. Misalnya pada game Angry Bird, bagaimana game akan terjadi, apakah menggunakan ru- mus parabola, atau lebih mengutamakan tur physics, atau bahkan kedua-duanya. 2.2 Tetris Tetris (bahasa Rusia: Òåòðèñ) adalah teka-teki yang didesain dan diprogram oleh Alexey Pajitnov pada bulan Juni 1985, pada saat ia bekerja di Pusat Komputer Dorodnicyn di Akademi Sains Uni Soviet di Moskow. Namanya berasal dari awalan numerik Yunani tetra yang bermakna bangun dengan empat bagian. Permainan ini (atau variasi lainnya) terdapat pada hampir setiap konsol permainan video dan komputer pribadi, begitu juga pada peralatan lainnya seperti kalkulator, ponsel, pemutar media portabel, PDA dan bahkan sebagai rahasia pada produk non-media seperti osiloskop. Pada dasarnya, ada 7 jenis formasi balok yang ada di dalam game tetris, yaitu balok I, J, L, O, S, I, dan Z. balok-balok tersebut diberi nama demikian karena memang bentuknya mirip dengan hurup tersebut, untuk lebih jelasnya, silahkan lihat gambar di bawah ini. Permainan tetris ini sukses setelah dirilis oleh gameboy pada tahun 1989, setelah itu, permainan ini mulai dirilis ulang oleh berbagai perusahaan game dunia seperti nintendo, playstation, oce game, dan perusahaan-perusahaan game ternama lainya.
  • 28. BAB 2. LANDASAN TEORI 28 Gambar 2.1: Blok dalam Permainan Tetris walaupun sudah berusia sangat lama, tapi permainan ini tetap menjadi primadona di mata gammer-gammer dunia, menurut mereka, game ini adalah game yang banyak menguras otak dan mengasah cara pandang ruang otak seseorang. Makin lama, pola permainan game ini makin beragam, jika pada versi awalnya, game ini hanya menggunakan sistem peni- laian berdasarkan bangun ruang yang disusu, tapi lama kelama- an, mulai banyak versi tetris yang juga menggunakan penilaian berdasarkan keserasian warna. Walaupun Tetris muncul kebanyakan pada komputer rumah- an, permainan ini lebih sukses pada versi Gameboy yang dirilis pada 1989 yang membuatnya sebagai permainan paling popu- ler sepanjang masa. Pada berita Electronic Gaming Monthly ke-100, Tetris berada pada urutan pertama pada Permainan
  • 29. BAB 2. LANDASAN TEORI 29 Gambar 2.2: Pengelompokan Warna dalam Blok Tetris
  • 30. BAB 2. LANDASAN TEORI 30 Terbaik Sepanjang Masa. Pada tahun 2007, Tetris berada di urutan kedua pada 100 Permainan Terbaik Sepanjang Masa menurut IGN. 2.3 Gamication 2.3.1 Pengertian Gamication Gamication atau dalam bahasa Indonesia gamikasi adalah penggunaan dari teknik desain permainan, permainan berpikir dan permainan mekanik untuk meningkatkan non-game konteks. Biasanya gamikasi berlaku untuk non-game aplikasi dan proses, untuk mendorong orang untuk mengadopsi mereka, atau untuk mempengaruhi bagaimana mereka digunakan. Gamica- tion menggunakan mekanisme berbasos game, estetika dan pe- mikiran game untuk mengaktifkan orang, memotivasi tindakan, mendorong pembelajran, dan memecahkan masalah. Gamikasi bekerja dengan membuat teknologi yang lebih menarik, dengan mendorong pengguna untuk terlibat dalam perilaku yang diinginkan, dengan menunjukkan jalan untuk pe- nguasaan dan otonomi, dengan membantu untuk memecahkan masalah dan tidak menjadi gangguan, dan dengan mengam- bil keuntungan dari kecenderungan psikologis manusia 'untuk terlibat dalam game'. Teknik ini dapat mendorong orang un- tuk melakukan pekerjaan mereka yang biasanya membosankan, seperti menyelesaikan survei, belanja, mengisi formulir pajak, atau membaca situs web.Data yang tersedia dari situs-situs ga-
  • 31. BAB 2. LANDASAN TEORI 31 mied, aplikasi, dan proses perbaikan menunjukkan potensi di daerah seperti keterlibatan pengguna, ROI, kualitas data, kete- patan waktu, atau belajar. 2.3.2 Elemen Gamication Ada beberapa elemen dari pengertian gamication yang perlu diperhatikan : 1. Berbasis game = bertujuan menciptakan suatusistem di- mana pembelajar, pemain, konsumen,dan karyawan aktif meng- hadapi tantanganyang didenisikan melalui aturan-aturan,interaktitas, dan feedback yang menghasilkansuatu penilaian yang terukur dan mendorongreaksi emosional. 2. Mekanisme = mekanisme memainkan gameyang dimak- sud di sini adalah munculnya level,mendapatkan lencana, sistem poin, danbatasan waktu. Inilah elemen-elemen yangdigunakan dalam game. 3. Estetika = Tanpa gras yang interaktif danpengalaman permainan yang dirancangsecara baik, maka gamication tidak akan sukses. 4. Pemikiran game = Ini elemen terpentingdari gamica- tion. Ini merupakan gagasanmerubah pengalaman sehari-hari seperti jogging atau berlari menjadi suatu kegiatanyang memi- liki elemen-elemen kompetisi,kerja sama, eksplorasi, dan berce- rita (story-telling). 5. Aktif = Tujuan eksplisit gamication adalahmenarik per- hatian pembelajar danmelibatkannya. Keterlibatan dan keakti- fanseorang individu menjadi fokus utamagamication.
  • 32. BAB 2. LANDASAN TEORI 32 6. Orang = dapat berupa pembelajar,konsumen, atau pe- main. 7. Memotivasi tindakan = membangkitkanenergi dan mem- berikan arah, tujuan, ataumakna bagi perilaku dan tindakan. 8. Mendorong pembelajaran = hal ini berjalankarena ba- nyak elemen gamicationberdasarkan psikologi pendidikan. 9. Memecahkan masalah = gamication dapatberpotensi tinggi menolong memecahkanmasalah. 2.3.3 Perbedaan Antara Gamication dan Ga- me 1. Game merupakan suatu unit yang utuh. 2. Game memiliki kegiatan awal, pertengahan,dan akhir yang jelas sebagai satu keutuhan. 3. Game memiliki suatu kondisi dimana harusada kemenang- an yang jelas. 4. Pemain tahu ketika orang lain dan dirinyatelah menyele- saikan Game. 5. Game memiliki elemen game yang banyak. 6. Game memuat mekanisme untuk berapa kaliusaha yang dimainkan; tantangan; reward system. 7. Gamication bukanlah satu unit game yang utuh.
  • 33. BAB 2. LANDASAN TEORI 33 8. Gamication bertujuan menggunakanelemen game untuk mendorongpembelajar sibuk dengan isi materinyadan me- nunjukkan kemajuannya untukmencapai tujuan pembela- jaran. 2.3.4 Jenis - jenis gamication Structural Gamication Menerapkan elemen game untuk mendorong pembelajar me- nyimak konten materi dengan tanpamerubah konten materi men- jadi terlihat seperti gamenamun struktur di sekeliling konten itulah yang tampakseperti game.Tujuan utama tipe ini adalah ntuk memotivasipembelajar menyimak isi materi dan menyi- bukkan diridengan materinya dalam proses pembelajaran yang terlihat tidak seperti game namun sambil meraih berbagai re- ward. Content Gamication Menerapkan elemen game dan pemikirangame dalam isi ma- teri sehingga isi materiberubah terlihat seperti game. Con- toh:menambah elemen cerita dalam pengajaransuatu materi atau memulai suatu pengajarandengan suatu tantangan alih-alihmenyampaikan sederet tujuan mata kuliah. Elemen dalam Content Gamication : 1. Cerita 2. Tantangan 3. Keingintahuan 4. Karakter
  • 34. BAB 2. LANDASAN TEORI 34 5. Interaktitas 6. Feedback 7. Bebas Untuk Gagal 2.3.5 Kapan Menggunakan Gamication? Gamication digunakan untuk memenuhi sejumlah tujuan pem- belajaran.Gamication efektif ketika digunakan untuk : 1. Mendorong semangat pembelajar 2. Memotivasi tindakan 3. Mempengaruhi perilaku 4. Mengarahkan terciptanya inovasi 5. Membangun skill 6. Memperoleh pengetahuan 2.3.6 Kelebihan Menggunakan Gamication Gamikasi bekerja dengan membuat teknologi yang lebih mena- rik, dengan mendorong pengguna untuk terlibat dalam perilaku yang diinginkan, dengan menunjukkan jalan untuk penguasaan dan otonomi, dengan membantuk untuk memecahkan masalah dan tidak jadi gangguan, dan dengan mengambil keuntuknagn dari kecenderungan psikkologis manusoa `untuk terlibat dalam game'.
  • 35. BAB 2. LANDASAN TEORI 35 2.3.7 Kekurangan Menggunakan Gamication 1. Motivasi yang didapatkan hanya bersifat supersial. Moti- vasi yang didapatkan hanya dari permainan bukan dari produk yang seharusnya dihasilkan. Ada program yang menyediakan beberapa manfaat nyata bagi aktivitas dan perkembangan. Na- mun grakasi akan mennurunkan nilai insentif yang didapat ka- rena hal ini hanya dijadikan perayaan digital atau cara untuk menyombongkan diri. 2. Terkadang metode untuk mencapai tingkatan tertinggi menjadi satu-satunya aspek yang dianggap penting. Hal ini menjadi masalh akibat kesalahan arah motivasional. Pengguna menetapkan motivasi mereka hanya untuk menjadi yang terbaik namun melupakan apa yang sebenarnya menjadi penawaran da- ri situs yang dimaksud. Hal ini mungkin terlihat tidak relevan bagi perusahaan karena pengguna terus menghabiskan waktu mereka namun tidak terbentuk loyalitas dan ikatan terhadap brand seperti yang diharapkan perusahaan. 3. Gamikasi menghilangkan banyak esensi dari permain- an itu sendiri. Ini menjadi seperti teknoogi cut and paste dan kurangnya orisinilitas. Permainan adalah tentang menemukan sesuatu dan melewati rintagan. Memang pada situs yang meng- gunakan gamikasi terdapat beberapa tingkatan namun bukan layaknya permainan tradisional. Dimana pengembang situs jus- tru menampilkan tur mudah, biasa, dan membosankan sehing- ga diharapkan pengguna akan lebih mudah untu k menang.
  • 36. BAB 2. LANDASAN TEORI 36 2.3.8 Gamication Dalam Game Tetris Pada permainan tetris, pemain dituntut untuk mendapatkan skor sebanyak banyaknya dengan cara membuat satu baris dari blok blok yang akan terus muncul. Blok blok tersebut ak- an terus muncul dan akan semakin cepat sesuai dengan waktu yang terus berjalan. Apabila blok blok tersebut sudah penuh atau mencapai batas yang telah di tentukan game maka pema- in dinyatakan kalah. Disini lah pemain akan dituntut untuk mendapatkan skor sebanyak banyaknya dengan waktu terbatas. Apabil waktu sudah habis dan blok blok tetris belum mencapai batasnya maka permainan dinyatakan selesai dan skor pemain akan dibandingkan dengan skor pemain lain. Apabila pemain memiliki skor tertinggi, maka skor pemain tersebut akan dica- tat ke dalam High Score, maka pemain akan semakin terpacu untuk mendapatkan skor sebanyak banyaknya walaupun harus bermain sampai beberapa kali sesi permainan. 2.4 Arduino Arduino adalah pengendali mikro single-board yang bersifat open-source, diturunkan dari Wiring platfor, dirancang untuk memudahkan penggunaan elektronik dalam berbagai bidang.
  • 37. BAB 2. LANDASAN TEORI 37 Hardwarenya memiliki prosesor Atmel AVR dan softwarenya memiliki bahasa pemrograman sendiri. Arduino juga merupakan platform hardware terbuka yang ditujukan kepada siapa saja yang ingin membuat purwarupa peralatan elektronik interaktif berdasarkan hardware dan sof- tware yang eksibel dan mudah digunakan. Mikrokontroler dip- rogram menggunakan bahasa pemrograman arduino yang me- miliki kemiripan syntax dengan bahasa pemrograman C. Karena sifatnya yang terbuka maka siapa saja dapat mengunduh skema hardware arduino dan membangunnya. Arduino menggunakan keluarga mikrokontroler ATMega yang dirilis oleh Atmel sebagai basis, namun ada individu/perusahaan yang membuat clone arduino dengan menggunakan mikrokon- troler lain dan tetap kompatibel dengan arduino pada level ha- rdware. Untuk eksibilitas, program dimasukkan melalui bo- otloader meskipun ada opsi untuk membypass bootloader dan menggunakan downloader untuk memprogram mikrokontroler secara langsung melalui port ISP. 2.4.1 Sejarah Arduino Semuanya berawal dari sebuah thesis yang dibuat oleh Hernan- do Barragan, di institute Ivrea, Italia pada tahun 2005, dikem- bangkan oleh Massimo Banzi dan David Cuartielles dan diberi nama Arduin of Ivrea. Lalu diganti nama menjadi Arduino yang dalam bahasa Italia berarti teman yang berani. Tujuan awal dibuat Arduino adalah untuk membuat perang- kat mudah dan murah, dari perangkat yang ada saat itu. Dan
  • 38. BAB 2. LANDASAN TEORI 38 perangkat tersebut ditujukan untuk para siswa yang akan mem- buat perangkat desain dan interaksi. Visi awalnya aja udah mulia kan. Saat ini tim pengembangnya adalah Massimo Banzi, David Cuartielles, Tom Igoe, Gianluca Martino, David Mellis, dan Ni- cholas Zambetti. Mereka mengupayakan 4 hal dalam Arduino ini, yaitu: ˆ Harga terjangkau ˆ Dapat dijalankan diberbagai sistem operasi, Windows, Li- nux, Max, dan sebagainya. ˆ Sederhana, dengan bahasa pemograman yang mudah bisa dipelajari orang awam, bukan untuk orang teknik saja. ˆ Open Source, hardware maupun software. Sifat Arduino yang Open Source, membuat Arduino ber- kembang sangat cepat. Dan banyak lahir perangkat-perangkat sejenis Arduino. Seperti DFRDuino atau Freeduino, dan kalau yang lokal ada namanya CipaDuino yang dibuat oleh SKIR70, terus ada MurmerDuino yang dibuat oleh Robot Unyil, ada lagi AViShaDuino yang salah satu pembuatnya adalah Admin Kelas Robot. Sampai saat ini pihak resmi, sudah membuat berbagai jenis- jenis Arduino. Mulai dari yang paling mudah dicari dan pa- ling banyak digunakan, yaitu Arduino Uno. Hingga Arduino yang sudah menggunakan ARM Cortex, beebentuk Mini PC. Dan sudah ada ratusan ribu Arduino yang digunakan di gu- nakan di dunia pada tahun 2011. Dan untuk hari ini, yang bisa kamu hitung sendiri ya. Dan Arduino juga sudah banyak dipaka oleh perusahaan besar. Contohnya Google menggunak- an Arduino untuk Accessory Development Kit, NASA memakai
  • 39. BAB 2. LANDASAN TEORI 39 Arduino untuk prototypin, ada lagi Large Hadron Colider me- makai Arduino dalam beberapa hal untuk pengumpulan data. Dan banyak yang bertanya juga Arduino ini menggunakan baha- sa pemograman apa? Arduino sebenarnya menggunakan bahas C, yang sudah disederhanakan. Sehingga orang awam pun bi- sa menjadi seniman digital, bisa mempelajari Arduino dengan mudahnya. 2.4.2 Jenis - jenis Arduino Yaitu mikrokontroler Arduino dengan menggunakan USB seba- gai antar muka pemrograman atau komunikasi komputer. Con- toh: 1. Arduino Uno 2.Arduino Duemilanove 3. Arduno Leonardo 4. Arduino Mega2560 5. Arduino Intel Galile 6. Arduino Pro Micro AT 7. Arduino Nano R3 8. Arduino mini Atmega 9. Arduino Mega ADK 10. Arduino Esplora Arduino UNO Arduino Uno adalah papan mikrokontroler berdasarkan ATme- ga328(datasheet). Ini memiliki 14 digital pin input / output (dimana 6 dapat digunakan sebagai output PWM), 6 input ana- log, resonator keramik 16 MHz,koneksi USB, jack listrik, header ICSP, dan tombol reset. Ini berisi semua yang diperlukan untuk
  • 40. BAB 2. LANDASAN TEORI 40 mendukung mikrokontroler; hanya menghubungkannyake kom- puter dengan kabel USB atau power itu dengan adaptor AC-DC atau baterai untuk memulai menggunakannya. Uno berbeda dari semua papan sebelumnya di bahwa itu ti- dakmenggunakan chip driver FTDI USB-to-serial. Sebaliknya, tur Atmega16U2(Atmega8U2 sampai versi R2) diprogram se- bagai konverter USB-to-serial. Revisi ke 2 Uno memiliki resistor menarik garis 8U2 HWB line to ground, sehingga lebih mudah untuk dimasukkan ke dalam mode DFU. Revisi ke 3 memiliki tur-tur baru berikut: - 1,0 pinout: menambahkan SDA dan pin SCL yang dekat dengan pin AREFdan dua pin baru lainnya ditempatkan dekat dengan pin RESET, yang IOREFyang me- mungkinkan perisai untuk beradaptasi dengan tegangan yang tersedia dari papan. Di masa depan, perisai akan kompatibel dengan keduapapan yang menggunakan AVR yang beropera- si dengan 5V dan denganArduino Due yang beroperasi dengan 3.3V. Yang kedua adalah pin tidak terhubung, yang disediakan untuk tujuan masa depan. -Stronger RESET sirkuit. -Atmega 16U2 menggantikan 8U2. Uno berarti satu di Italia dan dibe- ri nama untuk menandai peluncuranArduino 1.0. The Uno dan versi 1.0 akan menjadi versi referensi Arduino,bergerak maju. The Uno adalah yang terbaru dalam serangkaian USB Ardui- nopapan, dan model referensi untuk platform Arduino; untuk perbandingan dengan versi sebelumnya, lihat indeks Arduino papan. Arduino DUE The Arduino Due adalah papan mikrokontroler berdasarkan AtmelSAM3X8E ARM Cortex-M3 CPU (datasheet). Ini adalah pertama papanArduino didasarkan pada 32-bit mikrokontroler
  • 41. BAB 2. LANDASAN TEORI 41 Gambar 2.3: Arduino Uno
  • 42. BAB 2. LANDASAN TEORI 42 ARM inti. Ini memiliki 54 digitalpin input / output (yang 12 da- pat digunakan sebagai output PWM), 12 analog input, 4 UART (hardware port serial), jam 84 MHz, USB OTG koneksi yang mampu, 2 DAC (digital ke analog) , 2 TWI, jack listrik, header SPI, headerJTAG, tombol reset dan tombol hapus. Peringatan: Tidak seperti papan Arduino lainnya, Arduino Due berjalan pa- da3.3V. Tegangan maksimum yang I / O pin dapat mentolerir adalah 3.3V.Memberikan tegangan yang lebih tinggi, seperti 5V ke I / O pin dapat merusak papan. Arduino Due berisi semua yang diperlukan untuk mendu- kung mikrokontroler;hanya menghubungkannya ke komputer de- ngan kabel micro-USB atau power dengan adaptor AC-DC atau baterai untuk memulainya. Arduino Duekompatibel dengan se- mua perisai Arduino yang bekerja di 3.3V dan telah sesuai de- ngan 1,0 Arduino pinout. The Due mengikuti 1.0 pinout: -TWI: SDA dan SCL pin yang dekat dengan pin AREF. -The IOREF pin yang memungkinkan perisai terpasang dengan kongurasi- yang tepat untuk beradaptasi dengan tegangan yang diberikan oleh Arduino.Hal ini memungkinkan kompatibilitas perisai de- ngan papan 3.3V sepertipapan Karena dan AVR berbasis yang beroperasi pada 5V. Pin tidak berhubungan -Sebuah, disediak- an untuk penggunaan masa depan. The Due memiliki forum khusus untuk membahas papan. ARM Inti manfaat The Due memiliki inti ARM 32-bit yang dapat mengalahkan papanmik- rokontroler 8-bit yang khas. Perbedaan yang paling signikan adalah: A 32-bit inti, yang memungkinkan operasi pada 4 byte data luas dalam jamCPU tunggal. (untuk informasi lebih lan- jut lihat int jenis halaman). Jam -CPU di 84Mhz. -96 KByte SRAM. -512 KByte memori Flash untuk kode. a DMA con-
  • 43. BAB 2. LANDASAN TEORI 43 Gambar 2.4: Arduino DUE troller, yang dapat meringankan CPU dari melakukan tugas- tugasintensif memori. Arduino Leonardo Arduino Leonardo adalah papan mikrokontroler berdasark- an ATmega32u4(lihat datasheet). memiliki 20 digital pin input / output (yang 7 dapat digunakan sebagai output PWM dan 12 input analog sebagai), osilator kristal16 MHz, koneksi micro USB, jack listrik, header ICSP, dan tombol reset.Berisi semua yang diperlukan untuk mendukung mikrokontroler; hanyameng-
  • 44. BAB 2. LANDASAN TEORI 44 Gambar 2.5: Arduino Leonardo hubungkannya ke komputer dengan kabel USB atau power de- ngan adaptor AC-DC atau baterai untuk memulai menggunak- kannya. Leonardo berbeda dari semua papan sebelumnya di bahwa ATmega32u4telah built-in USB komunikasi, menghilangkan ke- butuhan untuk prosesorsekunder. Hal ini memungkinkan Leo- nardo tampil sebagai komputer yang terhubung sebagai mouse dan keyboard, selain virtual (CDC) serial / COM port. Ini juga memiliki implikasi lain untuk perilaku modul
  • 45. BAB 2. LANDASAN TEORI 45 Arduino Mega 2560 Arduino mega 2560 adalah papan mikrokontroler ATme- ga2560 berdasarkan (datasheet) memiliki 54 digital pin input / output (dimana 15 dapat digunakan sebagai output PWM), 16 analog input, 4 UART (hardware port serial), osilator kristal 16 MHz, koneksi USB, jack listrik, header ICSP, dan tombol re- set. Ini berisi semua yang diperlukan untuk mendukung mikro- kontroler,hanya menghubungkannya ke komputer dengan kabel USB atau power dengan adaptor AC-DC atau baterai. Arduino Mega kompatibel dengan sebagian besarshield,dirancang untuk Arduino Duemilanove atau Diecimila. Mega 2560 adalah update dari Arduino Mega Arduino Mega2560 berbeda dari semua board sebelumnya ,tidak menggunakan chip driver FTDI USB-to-serial. Sebalik- nya, tur ATmega16U2 (ATmega8U2 dalam revisi 1 dan revisi 2 papan) diprogram sebagai konverter USB-to-serial. Revisi 2 dewan Mega2560 memiliki resistor menarik garis 8U2 HWB ke tanah, sehingga lebih mudah untuk dimasukkan ke dalam mode DFU. Revisi 3 dari dewan memiliki tur-tur baru berikut: - 1,0 pinout: menambahkan SDA dan pin SCL yang dekat dengan pin AREF dan dua pin baru lainnya ditempatkan dekat dengan pin RESET, yang IOREF yang memungkinkan perisai untuk ber- adaptasi dengan tegangan yang tersedia dari papan. Di masa depan, perisai akan kompatibel baik dengan dewan yang meng- gunakan AVR yang beroperasi dengan 5V dan dengan Arduino Due yang beroperasi dengan 3.3V. Yang kedua adalah pin tidak terhubung, yang disediakan untuk tujuan masa depan. -Stronger RESET sirkuit. -Atmega 16U2 menggantikan 8U2.
  • 46. BAB 2. LANDASAN TEORI 46 Gambar 2.6: Arduino Leonardo
  • 47. BAB 2. LANDASAN TEORI 47 Arduino Galileo Galileo adalah papan mikrokontroler berdasarkan Intel ® Quark SoC X1000Application Processor, 32-bit sistem Pentium- kelas Intel pada sebuah chip(datasheet). Ini adalah board per- tama berdasarkan arsitektur Intel ® dirancang untuk menjadi hardware dan software pin-kompatibel dengan perisai Arduino dirancanguntuk Uno R3. Digital pin 0-13 (dan AREF berde- katan dan pin GND), Analog input 0 sampai 5, header listrik, ICSP header, dan pin port UART (0 dan 1), semua di lokasi- yang sama seperti pada Arduino Uno R3. Hal ini juga dikenal sebagai Arduino 1.0pinout. Galileo dirancang untuk mendukung shield yang beroperasi di kedua tegangan 3.3Vatau 5V. Tegangan operasi inti Galileo adalah 3.3V. Namun, jumper di boardmemungkinkan terjemah- an tegangan 5V di pin I / O. Hal ini memberikan dukungan un- tuk 5V shield Uno dan perilaku default. Dengan beralih posisi jumper, terjemahantegangan dapat dinonaktifkan untuk menye- diakan operasi 3.3V di pin I / O. Tentu saja, board Galileo juga perangkat lunak yang co- cok dengan ArduinoSoftware Development Environment (IDE), yang membuat kegunaan dan pengenalan snap. Selain hardware Arduino dan kompatibilitas software, arduino Galileo memiliki beberapa industri PC standar I / O port dan tur untuk memperluaspenggunaan asli dan kemampuan luar ekosistem perisai Arduino. Sebuah ukuranpenuh Slot mini- PCI Express, pelabuhan 100Mb Ethernet, slot Micro-SD, RS- 232 port serial, port host USB, port USB Client, dan 8MByte NOR Flash . Arduino Pro Micro AT
  • 48. BAB 2. LANDASAN TEORI 48
  • 49. BAB 2. LANDASAN TEORI 49 Gambar 2.8: Arduino Galileo
  • 50. BAB 2. LANDASAN TEORI 50 Gambar 2.9: Arduino Pro Micro AT Arduino Mikro adalah board mikrokontroler berdasarkan ATme- ga32u4 (lihat datasheet), yangdikembangkan bersama dengan Adafruit. Ini memiliki 20 digital pin input / output (yang 7 da- pat digunakan sebagai output PWM dan 12 input analog seba- gai), osilator 16 MHz kristal, koneksi USB mikro, header ICSP, dan tombol reset. Ini berisi semua yang diperlukan untukmen- dukung mikrokontroler; hanya menghubungkannya ke komputer dengan kabel USB mikro untuk memulainya. Dengan memili- ki faktor bentuk yang memungkinkannya untuk dapat dengan mudah ditempatkan pada papan tempat memotong roti . Arduino Micro mirip dengan Arduino Leonardo in bahwa ATmega32u4 telah built-in USBkomunikasi,Dengan menghilangk- an kebutuhan untuk prosesor sekunder. Hal ini memungkinkan Micro muncul ke komputer yang terhubung sebagai mouse dan keyboard,selain virtual (CDC) serial / COM port. Ini juga me- miliki implikasi lain untuk pemanfaatan board.
  • 51. BAB 2. LANDASAN TEORI 51 Gambar 2.10: Arduino Nano R3 Arduino Nano R3 The ArduinoNano adalah sebuah papan kecil, lengkap, dan ramah-papan tempat memotong rotiberdasarkan ATmega328 (Arduino Nano 3.x) atau ATmega168 (Arduino Nano 2.x). Ini memiliki lebih atau kurang fungsi yang sama dari Arduino Du- emilanove, tetapi dalam paket yang berbeda. Ini tidak memiliki hanya colokan listrik DC, dan bekerja dengan kabel USB Mini- B bukan satu standar.The Nano dirancang dan diproduksi oleh Gravitech. Arduino Mini Atmega Arduino ProMini ditujukan untuk pengguna tingkat lanjut yang membutuhkan eksibilitas, biaya rendah, dan ukuran ke- cil. Muncul dengan minimum komponen (tidak ada on-board USB atau pinheader) untuk menjaga biaya turun. Ini adalah pilihan yang baik untuk papan Anda inginmeninggalkan board
  • 52. BAB 2. LANDASAN TEORI 52 Gambar 2.11: Arduino Mini Atmega tertanam dalam proyek. Harap dicatat bahwa ada dua versi dari board: satu yang beroperasi pada 5V (seperti kebanyak- an papan Arduino), dan salah satu yang beroperasi pada 3.3V. Pastikan untuk memberikan yang benar daya dan penggunaan komponen yang operasitegangan cocok dengan board. Arduino Mega ADK Arduino MEGA ADK adalah board mikrokontroler ATme- ga2560 berdasarkan (datasheet).Memiliki antarmuka USB un- tuk terhubung dengan ponsel berbasis Android, berdasarkanMAX3421e IC. Ini memiliki 54 digital pin input / output (dimana 15 dapat digunakan sebagaioutput PWM), 16 analog input, 4 UART (ha- rdware port serial), osilator kristal 16 MHz, koneksiUSB, jack listrik, header ICSP, dan tombol reset. Arduino MEGA ADK
  • 53. BAB 2. LANDASAN TEORI 53 berdasarkan Mega 2560.Mirip dengan Mega 2560 dan Uno, ho- tel ini memiliki sebuah ATmega8U2 diprogram sebagai konver- ter USB-to-serial. Revisi ke 2 dariboard ADK memiliki resistor menarik garis 8U2 HWB ke tanah, sehingga lebih mudah untu- kdimasukkan ke dalam mode DFU. Revisi 3 dari dewan memiliki tur-tur baru berikut: - 1,0 pinout: menambahkan SDA dan pin SCL yang dekat dengan pin AREF dan dua pin baru lain- nya ditempatkan dekat dengan pin RESET, yang IOREF yang memungkinkan perisaiuntuk beradaptasi dengan tegangan yang tersedia dari papan. Di masa depan, shield akan kompatibel baik dengan arduino yang menggunakan AVR yang beropera- si dengan 5V dandengan Arduino Due yang beroperasi dengan 3.3V. Yang kedua adalah pin tidak terhubung,yang disediakan untuk tujuan pengembangan. Arduino Esplora Arduino Esplora adalah papan mikrokontroler berasal dari Arduino Leonardo. Esplora berbeda dari semua papan Arduino sebelumnya dalam hal ini menyediakan sejumlah built-in, sia- pdigunakan set sensor onboard untuk interaksi. Ini dirancang untuk orang yang ingin bangun dan berjalan dengan Arduino tanpa harus belajar tentang elektronik dari pertama. Untuklangkah- demi-langkah pengantar Esplora, memeriksa Memulai dengan Esplora panduan. Esplora onboard suara dan cahaya output, dan beberapa sensor input, termasuk joystick,slider, sensor su- hu, accelerometer, mikrofon, dan sensor cahaya. Hal ini juga memiliki potensi untuk memperluas kemampuan dengan dua in- put dan output konektor Tinkerkit, dan soketuntuk layar LCD warna TFT. Seperti papan Leonardo, yang Esplora menggu- nakan mikrokontroler AVR Atmega32U4dengan 16 MHz osila-
  • 54. BAB 2. LANDASAN TEORI 54 Gambar 2.12: Arduino Mega ADK
  • 55. BAB 2. LANDASAN TEORI 55 tor kristal dan koneksi USB mikro mampu bertindak sebagai perangkatUSB klien, seperti mouse atau keyboard. Di sudut kiri atas papan ada tombol tekan reset, yang dapat Anda gu- nakan untuk me-restartboard arduino. Ada empat LED Sta- tus: -Pada [Hijau] menunjukkan apakah board menerima catu daya L [yellow] terhubung langsung ke mikrokontroler, dapat diakses melalui pin 13 -RX Dan TX [kuning] menunjukkan da- ta yang dikirim atau diterima melalui komunikasi USB Dewan berisi semua yang diperlukan untuk mendukung mikrokontro- ler; hanyamenghubungkannya ke komputer dengan kabel USB untuk memulainya. Arduino Tipe Serial Arduino Serial, yaitu jenis mikrokontroler arduino yang meng- gunakan RS232 sebagai antar muka pemrograman atau komu- nikasi computer. Arduino Mega Arduino MEGA, yaitu mikrokontroler Arduino dengan spe- sikasi yang lebih tinggi, dilengkapi tambahan pin digital, pin analog, port serial dan sebagainya. Arduino Mega berbasis ATmega1280 dengan 54 digital input/output. Contoh: Arduino Mega, Arduino Mega 2560 Arduino Fio Arduino FIO, yaitu mikrokontroler Arduino yang ditujuk- an untuk penggunaan nirkabel. Arduino Fio ini menggunakan ATmega328P sebagai basis kontrolernya. Arduino Lylypad Arduino LILYPAD, yaitu mikrokontroler dengan bentuk yang melingkar. Contoh: LilyPad Arduino 00, LilyPad Arduino 01, LilyPad Arduino 02, LilyPad Arduino 03, LilyPad Arduino 04
  • 56. BAB 2. LANDASAN TEORI 56 Gambar 2.13: Arduino Esplora
  • 57. BAB 2. LANDASAN TEORI 57
  • 58. BAB 2. LANDASAN TEORI 58 Gambar 2.15: Arduino Mega Gambar 2.16: Arduino Fio
  • 59. BAB 2. LANDASAN TEORI 59 Gambar 2.17: Arduino Lylypad
  • 60. BAB 2. LANDASAN TEORI 60 Gambar 2.18: Gambar Arduino BT Arduino BT Arduino BT, mikrokontroler Arduino yang mengandung mo- dul Bluetooth untuk komunikasi nirkabel. Arduino Nano dan Mini Arduino Nano dan Arduino Mini, merupakan jenis arduino berbentuk kompak dan digunakan bersama breadboard. Con- toh: Arduino Nano 3.0, Arduino Nano 2.x, Arduino Mini 04, Arduino Mini 03, Arduino Stamp 02.
  • 61. BAB 2. LANDASAN TEORI 61 Gambar 2.19: Gambar Nano dan Mini
  • 62. BAB 2. LANDASAN TEORI 62 2.5 C (Bahasa Pemrograman) Bahasa pemrograman C merupakan salah satu bahasa pemro- graman komputer. Dibuat pada tahun 1972 oleh Dennis Ritchie untuk Sistem Operasi Unix di Bell Telephone Laboratories. Meskipun C dibuat untuk memprogram sistem dan jaring- an komputer namun bahasa ini juga sering digunakan dalam mengembangkan software aplikasi. C juga banyak dipakai oleh berbagai jenis platform sistem operasi dan arsitektur komputer, bahkan terdapat beberepa compiler yang sangat populer telah tersedia. C secara luar biasa memengaruhi bahasa populer la- innya, terutama C++ yang merupakan extensi dari C. 2.5.1 Versi Bahasa C C KR Pada tahun 1978, Dennis Ritchie dan Brian Kernighan me- nerbitkan edisi pertama dari buku yang berjudul The C Pro- gramming Language. Buku ini hingga sekarang diakui sebagai kitab suci bahasa C dan merupakan referensi utama seorang pemrogram yang ingin mengetahui tentang bahasa C, terutama karena begitu lengkapnya cakupan buku ini tentang bahasa C dan mudahnya program yang dicontohkan dalam buku ini. Versi bahasa C yang ditampilkan dalam buku ini kemudian dikenal dalam kalangan pemrogram sebagai C KR. Pada buku The C Programming Language edisi kedua kemudian melingku- pi ANSI C yang diperkenalkan belakangan. ANSI C ISO C Pada perkembangannya, muncul versi-versi C lain yang pada
  • 63. BAB 2. LANDASAN TEORI 63 akhirnya membuat kebingungan di kalangan pemrogram. Kare- na itu, pada tahun 1983, American National Standards Institute (ANSI) membuat sebuah komite untuk membuat sebuah versi standar dari bahasa C. Setelah melalui proses yang panjang dan sengit, pada tahun 1989, telah berhasil disahkan standar yang dinamakan ANSI X3.159-1989, versi ini seringkali dinamakan ANSI C, atau kadang-kadang C89. Pada 1990, versi ANSI C diadopsi oleh Organization for Standardization (ISO) dengan sedikit perubahan dengan nama ISO/IEC 9899:1990. Versi ini seringkali dinamakan ISO C atau C90. Karena versi ANSI C dan ISO C hanya memiliki sedikit perbedaan, pemanggilan C90 dan C89 merujuk pada bahasa yang sama. C99 Versi C99 dibuat oleh ISO C pada tahun 1999. Versi ini dimaksudkan terutama untuk memperbanyak dukungan kepada pemrograman berorientasi objek, terutama setelahC++, yang dibuat berdasarkan bahasa ini mendapat tempat yang istimewa di kalangan pemrogram
  • 64. Bab 3 PEBUATAN PAPAN PERMAINAN TETRIS MENGGUNAKAN ARDUINO Bab ini berisi tentang tahapan pemubuatan papan perma- inan tertris dan implementasi arduino didalamnya. 64
  • 65. BAB 3. PEBUATAN PAPAN PERMAINAN TETRIS MENGGUNAKAN ARDU 3.1 LANGKAH - LANGKAH PEMBU- ATAN PAPAN PERMAINAN TE- TRIS Dalam membuat papan permainan di bagi dalam beberapa tahapan, tahapannya sebagai berikut : Tahap 1 : Memotong Papan Kayu File SVG dapat aktif untuk 3 dan 5 atau 6mm papan MDF. Yang anda perlukan hanya satu buah papan dengan ketebalan antara 5 atau 6 milimeter , tergantung dari seberapa mudah bahan yang anda temukan di rumah anda. Kemudian mendo- wnload le SVG dan menggunakan mesin laser pemotong kayu untuk mendapatkan suku cadang kayu anda. Anda mungkin dapat mewarnai salah satu sisi dari papan 5mm/6mm menggu- nakan cat semprot/kuas, dimana bagian tersebut akan menjadi sisi luar dan kemudian mewarnai sisi dalam dengan putih untuk reeksi cahaya yang lebih baik. Tahap 2 : Persiapan Kaki dan Perakitan Sesuai dengan diameter dari baut anda, untuk menembus kayu dengan memilih bor sedikit lebih kecil dari diameter baut; misalnya 7mm untuk baut 8mm. kemudian pasang 4 baut untuk ke 4 kaki. Anda dapat menggunakan baut untuk memaksanya. Akhirnya, merakit 4 bagian untuk kaki utama dari papan. Tahap 3 : Pemotongan LED Strip, Perekatan dan So- lder Menggunakan gunting untuk memotong strip setiap 500mm = 15 LEDs. Pastikan memotong di tengah koneksi coppered.
  • 66. BAB 3. PEBUATAN PAPAN PERMAINAN TETRIS MENGGUNAKAN ARDU
  • 67. BAB 3. PEBUATAN PAPAN PERMAINAN TETRIS MENGGUNAKAN ARDU
  • 68. BAB 3. PEBUATAN PAPAN PERMAINAN TETRIS MENGGUNAKAN ARDU
  • 69. BAB 3. PEBUATAN PAPAN PERMAINAN TETRIS MENGGUNAKAN ARDU Anda harus mendapatkan 10 potong dari 15 LEDs, yang memi- liki konektor positive. Menggunakan pensil, buatlah garis-garis dimana anda akan meng-lem potongan strip. Dengan 10 garis tengah horizontal. Kolom pertama harus ditelusuri 83.3mm da- ri tepi, maka setiap baris memiliki jarak 33.3mm dari sebelum- nya. Jarak antara baris awal dan akhir(ke-10) adalah 333.3mm. Kemudian tahap menempatkan potongan-potongan 10 strip se- telah diagram berikutnya. Cara kuno yang anda bisa ditemukan alternative untuk setiap strip. Untuk ini anda dapat menggu- nakan panah dengan direksi yang anda harus ubah setiap kolom: dan seterusnya. Lem potongan strip pada garis pen- sil dan pastikan baris data membentuk kumparan. Kemudian memotong strip 9 x 3 = 27 potongan kabel untuk menyambung kembali jalur data dan garis power antara setiap bagian strip. Sambungkan 5V(merah) bersama, GND (Hitam) bersama, dan DATA (hijau atau kuning) bersama, seperti yang di tunjukan pada diagram listrik langkah berikutnya. Juga menghubungkan catu daya dari dua buah ekstrimitas (GND untuk GND dan 5V untuk 5V) melalui 2 kabel langsung. Hal ini memungkinkan un- tuk pengiriman daya lebih baik untuk menghindari perbedaan warna dari ekstrmitas. Tahap 4 : Solder Papan Sirkuit Elektronik Arbalet's, yang digambarkan pada diagram ter- susun oleh: Papan Arduino , terhubung ke komputer melalui USB. PCB Kustom, terhubung ke catu daya 5V. Sensor sentuh opsional MPR121 terhubung ke 6 permukaan aktif. Papan kustom akan dipasang tepat di atas papan arduino, dengan kepala pin Positive yang terpasang langsung di kepala pin negative, pastikan sambungannya dengan baik. Solder kom-
  • 70. BAB 3. PEBUATAN PAPAN PERMAINAN TETRIS MENGGUNAKAN ARDU Gambar 3.4: Rancangan Papan Sirkut
  • 71. BAB 3. PEBUATAN PAPAN PERMAINAN TETRIS MENGGUNAKAN ARDU ponen dan koneksi pada papan kustom seperti yang di tunjukan pada diagram. Kabel putih pada diagram bukan kabel sebenar- nya tapi sambungan langsung positive negative dari header PIN. Kemudian ikuti pendahuluan perangkat keras dan lunak sam- pai rmware arbalet diunggah sebelum melanjutkan. Jika ada yang salah saat penyolderan anda dapat menemukannya selama tes ini sebelum itu menjadi sulit untuk memperbaiki masalah hardware. Tempatkan elektronik anda di sebelah dan lompat ke langkah selanjutnya. Hanya setelah berhasil menjalankan se- tidaknya demonstran warna pada perangkat keras baru anda gunakan untuk mengaktifkan hardware. Pastikan bahwa semua piksel dapat didorong dan dapat nyala. Jika anda mendapatkan masalah, cari di troubleshooting section. Tahap 5 : Merakit Grid bagian Dalam Papan ukuran 3mm yang telah dipotong dan mempunyai 11 strip horizontal dan 14 strip vertikal. Pada sisi horizontal mempunyai dua sisi rongga yang akan menjadi tempat untuk menaruh elektronik dan penyanggah papan bagian atas. Perha- tikan bahwa 9 strip pada sisi vertikal mempunyai passings kawat, yang telah dibuat untuk jalur data anda memiliki prosesornya tersolder pada langkah 6. Pastikan anda membuat alternative jalur rakitan. Pasang seluruh grid yang terbuat dari strip ver- tikal dan horizontal dengan menggeser strip ke satu sama lain seperti yang ditunjukkan pada gambar. Kemudian putar balik konstruksi akhir agar jalan berada pada bagian atas. Dan me- mindahkan pembangkit energi pada papan tabel sehingga setiap piksel struktur yang telah dibuat sesuai dengan LED. Tahap 6 : Menutup Grid Tabel Posisikan dan rekatkan menggunakan lem pada 4 potong la-
  • 72. BAB 3. PEBUATAN PAPAN PERMAINAN TETRIS MENGGUNAKAN ARDU
  • 73. BAB 3. PEBUATAN PAPAN PERMAINAN TETRIS MENGGUNAKAN ARDU
  • 74. BAB 3. PEBUATAN PAPAN PERMAINAN TETRIS MENGGUNAKAN ARDU ser pada sisi papan. Potong menjadi potongan potongan kertas yang meliputi area pixcel yang akan membantu menyebar caha- ya, serta kedua sisi yang meliputi dan menyembunyikan rongga sisi yang menjadi host elektronik. Pada tahap akhir, potong sepotong kaca atau plexiglass 498 x 498 mm, dan jaga tingkat kebebasan 2mm pada setiap sisi untuk memudahkan peletakan dan pelepasan kaca. Tahap 7 : Tambahan Tombol Sentuh (Optional) Langkah ini merupakan pilihan untuk pembuat, jika anda ingin table anda dapat menyentuh sensitive. Walaupun mereka berbeda dan dapat kembali menjadi berbagai jenis output, tur sentuh disediakan oleh berbagai jenis sensor, termasuk infra- merah, barycentre berat, getara sensing.Metode yang diusulkan disini melibatkan capacitive sensor yang terhubung ke potongan- potongan plastic ITO. Perangkat Keras Plastik ini ditutupi de- ngan lapisan konduktif tipis yang membuat diskrit dibawah kaca anda serta perubahan yang sensitive terhadap kapasitif. Hanya satu sisi jika umumnya konduktif, mengidentikasi satu dengan ohmmeter. Memotong bagian bagian 6 dari ITO plastik sedi- kit lebih kecil dari pada ukuran piksel dua yaitu 30 x 63 mm dan tempat mereka dengan sisi konduktif turun seperti yang ditun- jukkan. Bagian atas tabel : Menghubungkan setiap sisi konduk- tif dari plastik untuk sebuah MPR121 masukan yang terletak di bawah meja. koneksi ini tidak menggunakan pematrian, po- tongan plastik berhenti pada menanggalkan kabel memastikan sebuah kontak listrik. Lipat menanggalkan kabel terhadap strip vertikal untuk membuat mereka stabil. Bagian bawah meja : Ekstremitas ini menyentuh kabel terhubung ke MPR121. So- lder input kapasitif 0-5 kabel akan melalui Arbalet's piksel dari
  • 75. BAB 3. PEBUATAN PAPAN PERMAINAN TETRIS MENGGUNAKAN ARDU Gambar 3.7: Rancangan Tombol Sentuh (optional)
  • 76. BAB 3. PEBUATAN PAPAN PERMAINAN TETRIS MENGGUNAKAN ARDU bawah meja. Perangkat lunak Pastikan Anda mengerti cara menjalankan aplikasi dasar se- belum mengaktifkan antarmuka sentuh. Secara default, SDK online memiliki tur sentuh yang dinonaktifkan. Anda dapat mengaktifkannya dengan menambahkan parameter-c cong150touch.json saat menjalankan aplikasi. Parameter ini memuat le kongu- rasi yang memungkinkan 6 tombol sentuh. Pada sebagian besar aplikasi yang kompatibel dengan sentuhan, tombol sentuh yang tersedia akan menjadi lampu latar berwarna putih terang sa- at dapat disentuh, beralih ke putih kuat saat berada. Buatlah perubahan terus-menerus dengan mengubah kongurasi default menjadi le default.cfg dan instal ulang SDK. Tahap 8 : Menjalankan Permainan dan Aplikasi Arbalet dilengkapi dengan seperangkat permainan yang ada (Tetris, Snake, Piano Tiles - pada gambar -, ... dan yang akan datang) dan lampu ambisi, Anda dapat menggunakannya atau membuat bahasa Python Anda sendiri atau bahkan menggu- nakan bahasa pemrograman visual Jepret. 3.2 Listing Program Tetris Table / SimpleTimer.cpp /* * SimpleTimer.cpp * SimpleTimer - A timer library for Arduino. * Author: mromani@ottotecnica.com * Copyright (c) 2010 OTTOTECNICA Italy
  • 77. BAB 3. PEBUATAN PAPAN PERMAINAN TETRIS MENGGUNAKAN ARDU
  • 78. BAB 3. PEBUATAN PAPAN PERMAINAN TETRIS MENGGUNAKAN ARDU ** This library is free software; you can redistribute it * and/or modify it under the terms of the GNU Lesser * General Public License as published by the Free Software * Foundation; either version 2.1 of the License, or (at * your option) any later version. * This library is distributed in the hope that it will * be useful, but WITHOUT ANY WARRANTY; without even the * implied warranty of MERCHANTABILITY or FITNESS FOR A * PARTICULAR PURPOSE. See the GNU Lesser General Public * License for more details. * You should have received a copy of the GNU Lesser * General Public License along with this library; if not, * write to the Free Software Foundation, Inc., * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ #include SimpleTimer.h // Select time function: //static inline unsigned long elapsed() { return micros(); } static inline unsigned long elapsed() { return millis(); } SimpleTimer::SimpleTimer() { unsigned long current_millis = elapsed(); for (int i = 0; i MAX_TIMERS; i++) { enabled[i] = false; callbacks[i] = 0; // if the callback pointer is zero, the slot is free, i.e. doesn't contain any timer prev_millis[i] = current_millis;
  • 79. BAB 3. PEBUATAN PAPAN PERMAINAN TETRIS MENGGUNAKAN ARDU numRuns[i] = 0; } numTimers = 0; } void SimpleTimer::run() { int i; unsigned long current_millis; // get current time current_millis = elapsed(); for (i = 0; i MAX_TIMERS; i++) { toBeCalled[i] = DEFCALL_DONTRUN; // no callback == no timer, i.e. jump over empty slots if (callbacks[i]) { // is it time to process this timer ? // see http://arduino.cc/forum/index.php/topic, 124048.msg932592.html#msg932592 if (current_millis - prev_millis[i] = delays[i]) { // update time //prev_millis[i] = current_millis; prev_millis[i] += delays[i]; // check if the timer callback has to be executed if (enabled[i]) { // run forever timers must always be executed if (maxNumRuns[i] == RUN_FOREVER) { toBeCalled[i] = DEFCALL_RUNONLY; } // other timers get executed the specied number of times else if (numRuns[i] maxNumRuns[i]) { toBeCalled[i] = DEFCALL_RUNONLY; numRuns[i]++; // after the last run, delete the timer if (numRuns[i] = maxNumRuns[i]) {
  • 80. BAB 3. PEBUATAN PAPAN PERMAINAN TETRIS MENGGUNAKAN ARDU toBeCalled[i] = DEFCALL_RUNANDDEL; } } } } } } for (i = 0; i MAX_TIMERS; i++) { switch(toBeCalled[i]) { case DEFCALL_DONTRUN: break; case DEFCALL_RUNONLY: (*callbacks[i])(); break; case DEFCALL_RUNANDDEL: (*callbacks[i])(); deleteTimer(i); break; } } } // nd the rst available slot // return -1 if none found int SimpleTimer::ndFirstFreeSlot() { int i; // all slots are used if (numTimers = MAX_TIMERS) { return -1; }
  • 81. BAB 3. PEBUATAN PAPAN PERMAINAN TETRIS MENGGUNAKAN ARDU // return the rst slot with no callback (i.e. free) for (i = 0; i MAX_TIMERS; i++) { if (callbacks[i] == 0) { return i; } } // no free slots found return -1; } int SimpleTimer::setTimer(long d, timer_callback f, int n) { int freeTimer; freeTimer = ndFirstFreeSlot(); if (freeTimer 0) { return -1; } if (f == NULL) { return -1; } delays[freeTimer] = d; callbacks[freeTimer] = f; maxNumRuns[freeTimer] = n; enabled[freeTimer] = true; prev_millis[freeTimer] = elapsed(); numTimers++; return freeTimer; } int SimpleTimer::setInterval(long d, timer_callback f) { return setTimer(d, f, RUN_FOREVER);
  • 82. BAB 3. PEBUATAN PAPAN PERMAINAN TETRIS MENGGUNAKAN ARDU } int SimpleTimer::setTimeout(long d, timer_callback f) { return setTimer(d, f, RUN_ONCE); } void SimpleTimer::deleteTimer(int timerId) { if (timerId = MAX_TIMERS) { return; } // nothing to delete if no timers are in use if (numTimers == 0) { return; } // don't decrease the number of timers if the // specied slot is already empty if (callbacks[timerId] != NULL) { callbacks[timerId] = 0; enabled[timerId] = false; toBeCalled[timerId] = DEFCALL_DONTRUN; delays[timerId] = 0; numRuns[timerId] = 0; // update number of timers numTimers--; } } //function contributed by code@rowansimms.com void SimpleTimer::restartTimer(int numTimer) { if (numTimer = MAX_TIMERS) { return; } prev_millis[numTimer] = elapsed();
  • 83. BAB 3. PEBUATAN PAPAN PERMAINAN TETRIS MENGGUNAKAN ARDU } boolean SimpleTimer::isEnabled(int numTimer) { if (numTimer = MAX_TIMERS) { return false; } return enabled[numTimer]; } void SimpleTimer::enable(int numTimer) { if (numTimer = MAX_TIMERS) { return; } enabled[numTimer] = true; } void SimpleTimer::disable(int numTimer) { if (numTimer = MAX_TIMERS) { return; } enabled[numTimer] = false; } void SimpleTimer::toggle(int numTimer) { if (numTimer = MAX_TIMERS) { return; } enabled[numTimer] = !enabled[numTimer]; } int SimpleTimer::getNumTimers() { return numTimers; } Tetris Table / SimpleTimer.h
  • 84. BAB 3. PEBUATAN PAPAN PERMAINAN TETRIS MENGGUNAKAN ARDU /* * SimpleTimer.h * SimpleTimer - A timer library for Arduino. * Author: mromani@ottotecnica.com * Copyright (c) 2010 OTTOTECNICA Italy * This library is free software; you can redistribute it * and/or modify it under the terms of the GNU Lesser * General Public License as published by the Free Software * Foundation; either version 2.1 of the License, or (at * your option) any later version. * This library is distributed in the hope that it will * be useful, but WITHOUT ANY WARRANTY; without even the * implied warranty of MERCHANTABILITY or FITNESS FOR A * PARTICULAR PURPOSE. See the GNU Lesser General Public * License for more details. * You should have received a copy of the GNU Lesser * General Public License along with this library; if not, * write to the Free Software Foundation, Inc., * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ #ifndef SIMPLETIMER_H #dene SIMPLETIMER_H #if dened(ARDUINO) ARDUINO = 100 #include Arduino.h #else #include WProgram.h
  • 85. BAB 3. PEBUATAN PAPAN PERMAINAN TETRIS MENGGUNAKAN ARDU #endif typedef void (*timer_callback)(void); class SimpleTimer { public: // maximum number of timers const static int MAX_TIMERS = 10; // setTimer() constants const static int RUN_FOREVER = 0; const static int RUN_ONCE = 1; // constructor SimpleTimer(); // this function must be called inside loop() void run(); // call function f every d milliseconds int setInterval(long d, timer_callback f); // call function f once after d milliseconds int setTimeout(long d, timer_callback f); // call function f every d milliseconds for n times int setTimer(long d, timer_callback f, int n); // destroy the specied timer void deleteTimer(int numTimer); // restart the specied timer void restartTimer(int numTimer); // returns true if the specied timer is enabled boolean isEnabled(int numTimer); // enables the specied timer void enable(int numTimer); // disables the specied timer void disable(int numTimer);
  • 86. BAB 3. PEBUATAN PAPAN PERMAINAN TETRIS MENGGUNAKAN ARDU // enables the specied timer if it's currently disabled, // and vice-versa void toggle(int numTimer); // returns the number of used timers int getNumTimers(); // returns the number of available timers int getNumAvailableTimers() { return MAX_TIMERS - numTimers; }; private: // deferred call constants const static int DEFCALL_DONTRUN = 0; // don't call the callback function const static int DEFCALL_RUNONLY = 1; // call the ca- llback function but don't delete the timer const static int DEFCALL_RUNANDDEL = 2; // call the callback function and delete the timer // nd the rst available slot int ndFirstFreeSlot(); // value returned by the millis() function //in the previous run() call unsigned long prev_millis[MAX_TIMERS]; // pointers to the callback functions timer_callback callbacks[MAX_TIMERS]; // delay values long delays[MAX_TIMERS]; // number of runs to be executed for each timer int maxNumRuns[MAX_TIMERS];
  • 87. BAB 3. PEBUATAN PAPAN PERMAINAN TETRIS MENGGUNAKAN ARDU //number of executed runs for each timer int numRuns[MAX_TIMERS]; // which timers are enabled boolean enabled[MAX_TIMERS]; // deferred function call (sort of) - N.B.: this array is only used in run() int toBeCalled[MAX_TIMERS]; // actual number of timers in use int numTimers; }; #endif TetrisTable / TetrisTable.ino #include ESP8266WiFi.h #include DNSServer.h #includeESP8266WebServer.h #include WiFiManager.h #includeNeoPixelBus.h #include SimpleTimer.h #includefonts/6x8_vertikal_MSB_1.h #include WebSocketsServer.h #include index_html.h bool debug = true; #dene SerialDebug(text) Serial.print(text); #dene SerialDebugln(text) Serial.println(text); char MyIp[16]; char MyHostname[16]; ESP8266WebServer server = ESP8266WebServer(80);
  • 88. BAB 3. PEBUATAN PAPAN PERMAINAN TETRIS MENGGUNAKAN ARDU WebSocketsServer webSocket = WebSocketsServer(81); #dene Width 13 #dene pixelCount (Width*Width) #dene pixelPin 2 // should be ignored because of NeoEsp8266Dma800KbpsMethod NeoPixelBusNeoGrbFeature, NeoEsp8266Uart800KbpsMethod strip(pixelCount, pixelPin); NeoTopology ColumnMajorAlternatingLayout topo(Width, Width); RgbColor black = RgbColor(0); #dene FontWidth 6 #dene MaxTextLen 255 byte Text[MaxTextLen]; int TextPos=0; int TextLen=0; SimpleTimer TextTimer; RgbColor TextCol=RgbColor(128,128,128); byte Mode=1; byte RenderLetter(byte * pos, const char x) { byte l=0; for (int i=0 ; iFontWidth ; i++) { if (font[x][i] != 0) { pos[l] = font[x][i]; l++; } } return l; } void RenderText(const uint8_t * text, size_t len) { const uint8_t * p = text; TextPos=TextLen=0;
  • 89. BAB 3. PEBUATAN PAPAN PERMAINAN TETRIS MENGGUNAKAN ARDU for (size_t i=0 ; ilen iMaxTextLen-8 ; i++) { TextLen += RenderLetter(Text[TextLen], *p); Text[TextLen]=0; TextLen++; // one row free space p++; } } void RenderText(const char * text) { RenderText((const uint8_t *) text, strlen(text)); } void RenderText(String s){ RenderText((const uint8_t *)s.c_str(), s.length()); } void ShowText() { TextPos++; if (TextPos TextLen) TextPos=0; strip.ClearTo(black); for (uint8_t i=0 ; iWidth ; i++) { if (TextPos+i = TextLen) break; for (int x=0 ; x8 ; x++) { if ((Text[TextPos+i] (1x)) != 0) { strip.SetPixelColor(topo.Map(2+x,Width-i-1), TextCol); } } } strip.Show(); } #dene MaxStones 7 const uint8_t Stones[MaxStones] = {0x0F, 0x2E, 0x4E, 0x8E, 0x6C, 0xCC, 0xC6}; struct sStone { int8_t x,y; uint8_t id;
  • 90. BAB 3. PEBUATAN PAPAN PERMAINAN TETRIS MENGGUNAKAN ARDU int8_t dir; RgbColor col; } Stone, NewStone; SimpleTimer TetrisTimer; int TetrisTimerId; int Lines=0; int Level=1; void UpdateClient() { String s; s += Lines: ; s += Lines; s += br /Level: ; s += Level; webSocket.broadcastTXT(s); } void MoveStoneDown(); void UpdateLevel() { int interval = 1000 - (50*Level); TetrisTimer.deleteTimer(TetrisTimerId); TetrisTimerId = TetrisTimer.setInterval(interval, MoveSto- neDown); } void DrawStone(bool draw) { for (int8_t y=0 ; y4 ; y++) { for (int8_t x=0 ; x2 ; x++) { if ((Stones[Stone.id] (1(y+x*4))) != 0) { int8_t x1=Stone.x, y1=Stone.y; switch (Stone.dir) { case 0: x1+=x-1; y1+=y-2; break; case 1: x1+=y-2; y1-=x-1; break; case 2: x1-=x-1; y1-=y-2; break;
  • 91. BAB 3. PEBUATAN PAPAN PERMAINAN TETRIS MENGGUNAKAN ARDU case 3: x1-=y-2; y1+=x-1; break; } if (x1Width) strip.SetPixelColor(topo.Map(x1,y1), draw? Stone.col:black); } } } strip.Show(); } void CalcNewStone(uint8_t dir) { NewStone=Stone; switch (dir) { case 1: NewStone.x--; break; // Down case 2: NewStone.y++; break; // Left case 3: NewStone.y--; break; // Right case 4: NewStone.dir--; // Rotate left if (NewStone.dir0) NewStone.dir=3; break; case 5: NewStone.dir++; // Rotate right if (NewStone.dir3) NewStone.dir=0; break; } } void NextStone() { Stone.x=Width; Stone.y=Width/2-2; Stone.id=random(0,MaxStones); Stone.dir=0; Stone.col=RgbColor(random(5,255),random(5,255), random(5,255)); }
  • 92. BAB 3. PEBUATAN PAPAN PERMAINAN TETRIS MENGGUNAKAN ARDU uint8_t CheckSpace() { for (int8_t y=0 ; y4 ; y++) { for (int8_t x=0 ; x2 ; x++) { if ((Stones[NewStone.id] (1(y+x*4))) != 0) { int8_t x1=NewStone.x, y1=NewStone.y; switch (NewStone.dir) { case 0: x1+=x-1; y1+=y-2; break; case 1: x1+=y-2; y1-=x-1; break; case 2: x1-=x-1; y1-=y-2; break; case 3: x1-=y-2; y1+=x-1; break; } if (y10 || y1=Width) return 1; if (x10) return 2; if (strip.GetPixelColor(topo.Map(x1,y1)).CalculateBrightness() != 0) return 3; } } } return 0; } void CheckRows() { for (int x=0 ; xWidth ; ) { uint8_t cnt=0; for (int y=0 ; yWidth ; y++) { if (strip.GetPixelColor(topo.Map(x,y)).CalculateBrightness() != 0) cnt++; }
  • 93. BAB 3. PEBUATAN PAPAN PERMAINAN TETRIS MENGGUNAKAN ARDU if (cnt == Width) { for (int x1=x ; x1Width-1 ; x1++) { for (int y=0 ; yWidth ; y++) { strip.SetPixelColor(topo.Map(x1,y), strip.GetPixelColor(topo.Map(x1+1,y))); } } for (int y=0 ; yWidth ; y++) { strip.SetPixelColor(topo.Map(Width,y), black); } strip.Show(); Lines++; if ((Lines%10) == 0) { Level++; UpdateLevel(); } UpdateClient(); continue; } x++; } } void MoveStoneDown() { CalcNewStone(1); DrawStone(false); switch (CheckSpace()) { case 0: // OK! case 1: // Move to far left/right Stone=NewStone; break; case 2: // reached bottom case 3: // stone blocked
  • 94. BAB 3. PEBUATAN PAPAN PERMAINAN TETRIS MENGGUNAKAN ARDU DrawStone(true); CheckRows(); NextStone(); break; } DrawStone(true); } void NewGame() { strip.ClearTo(black); strip.Show(); NextStone(); Lines=0; Level=1; UpdateLevel(); UpdateClient(); } void webSocketEvent(uint8_t num, WStype_t type, uint8_t * payload, size_t len) { switch(type) { case WStype_DISCONNECTED: break; case WStype_CONNECTED: { IPAddress ip = webSocket.remoteIP(num); webSocket.sendTXT(num, Connected); if (Mode!=2) { Mode=2; NewGame(); }
  • 95. BAB 3. PEBUATAN PAPAN PERMAINAN TETRIS MENGGUNAKAN ARDU } break; case WStype_TEXT: { // RenderText(payload, len); switch (*payload) { case 'd': CalcNewStone(1); break; case 'l': CalcNewStone(2); break; case 'r': CalcNewStone(3); break; case 'x': CalcNewStone(4); break; case 'y': CalcNewStone(5); break; case 'n': NewGame(); break; } DrawStone(false); switch (CheckSpace()) { case 0: // OK! Stone=NewStone; break; case 1: // Move to far left/right case 2: // reached bottom case 3: // stone blocked break; } DrawStone(true); } break; } } void setup() { Serial.begin(9600); Serial.setTimeout(200); delay(100); WiFiManager wiManager;
  • 96. BAB 3. PEBUATAN PAPAN PERMAINAN TETRIS MENGGUNAKAN ARDU wiManager.setDebugOutput(debug); wiManager.setTimeout(3*60); if(!wiManager.autoConnect()) { delay(3000); ESP.reset(); delay(5000); } IPAddress MyIP=WiFi.localIP(); snprintf(MyIp, 16, %d.%d.%d.%d, MyIP[0], MyIP[1], MyIP[2], MyIP[3]); snprintf(MyHostname, 15, ESP-%08x, ESP.getChipId()); SerialDebug(ESP-Hostname: ); SerialDebugln(MyHostname); RenderText(WiFi.localIP().toString().c_str()); TextTimer.setInterval(150, ShowText); TetrisTimerId = TetrisTimer.setInterval(1000, MoveStone- Down); server.on(/, []() { server.send(200, text/html, index_html); }); server.begin(); webSocket.begin(); webSocket.onEvent(webSocketEvent); strip.Begin(); strip.ClearTo(black); strip.Show(); } void loop() { server.handleClient();
  • 97. BAB 3. PEBUATAN PAPAN PERMAINAN TETRIS MENGGUNAKAN ARDU webSocket.loop(); switch (Mode) { case 1: TextTimer.run(); TextCol=RgbColor(random(1,255), random(1,255), random(1,255)); break; case 2: TetrisTimer.run(); break; default: Mode=1; } } Tetris Table / html2h.sh #!/bin/bash echo -n 'const char index_html[]=' index_html.h perl -ne 's///g; chomp; print;' index.html index_html.h echo ';' index_html.h Tetris Table / index.html htmlhead titleTetris/title meta http-equiv=Content-Type content=text/html; charset=utf-8 link rel=apple-touch-icon-precomposed href=http:// cdn1.iconnder.com/data/icons/CrystalClear/128x128/apps/ ksirtet.png / meta name=apple-mobile-web-app-capable content=yes / meta name=mobile-web-app-capable content=yes / meta name=viewport content=target-densitydpi=device- dpi;
  • 98. BAB 3. PEBUATAN PAPAN PERMAINAN TETRIS MENGGUNAKAN ARDU width=device-width; initial-scale=1.0; maximum-scale=1.0; user- scalable=0; / script var connection = new WebSocket('ws://'+location.hostname+':81/', ['arduino']); connection.onopen = function () { connection.send('Connect ' + new Date()); }; connection.onerror = function (error) { console.log('WebSocket Error ', error); }; connection.onmessage = function (e) { console.log('Server: ', e.data); document.getElementById(info).innerHTML = e.data; }; /script style button { font-size:400%; width:200px; height:130px; } table, td { padding:10px; text-align:center; } p { font-size:200%; } /style /headbodytabletr tdbutton id=l type=button onclick=connection.send('l');#x2190;/button/td tdp id=infoLines: -br /Level: -/p/td tdbutton id=r type=button onclick=connection.send('r');#x2192;/button/td /trtr
  • 99. BAB 3. PEBUATAN PAPAN PERMAINAN TETRIS MENGGUNAKAN ARDU tdbutton id=x type=button onclick=connection.send('x');#x21BA;/button/td tdbutton id=d type=button onclick=connection.send('d');#x2193;/button/td tdbutton id=y type=button onclick=connection.send('y');#x21BB;/button/td /trtr /trtr tdbutton id=n type=button onclick=connection.send('n');new/button/td /tr/ body/html
  • 100. Bab 4 PENERAPAN PERMAIN TETRIS DALAM KEHIDUPAN 4.1 Contoh Kasus Sebagian besar permainan di bentuk dengan maksud terten- tu yang mana dapat di implementasikan pada kehidupan nyata sehari-hari. sebagai contoh adlaha permainan snake pada ponsel nokia terdahulu, permainan tersebut berguna untuk memperke- nalkan pengguna pada papan angka yang terdapat pada ponsel tersebut. Masih banyak lagi permaian -permainan yang yang 100
  • 101. BAB 4. PENERAPAN PERMAIN TETRIS DALAM KEHIDUPAN101 diimplementasikan dalam kehidupan. Tetris sendiri memiliki banyak hal yang diterapkan dalam kehidupan sehari-hari, mulai dari metode permainan, aturan , serta bentuk-bentuk pada tiap objek. 4.1.1 Penerapan metode Penerapan Metode permainan tettris pada kehidupan sehari- hari bisa terlihat pada penyusunan setiap benda baik dalam konstruksi bangunan maupun penyimpanan suatu benda. pada konstruksi bangunan penyususnan tiap-tiap objek batu disu- sun sedemikian rupa sehingga dapat terbentuk susuanan yang padat. di sisi lain penerapan metode pada permainan tetris ini mengolah logika berkir seseorang agar dapat menyelisaikan suatu pekerjaan dengan cepat dan tepat. contoh: Dari perma- inan tetris ini, seorang seniman dari Swedia bernama Michael Johansson terinspirasi menyusun barang-barang yang ada seba- gaimana sebuah tetris menjadi sebuah seni, yang enak untuku dipandang. Dimulai dari adanya kumpulan barang-barang yang sudah tidak terpakai lagi, Michael Johansson kemudian mempunyai ide untuk menyusunnya, walaupun berlainan ukurannya, war- nanya, dan bentuknya. Dengan kemampuan seninya, kemudian ia memanfaatkan ruang-ruang kosong baik dalam rumah mau- pun luar rumah menjadi objek seninya.
  • 102. BAB 4. PENERAPAN PERMAIN TETRIS DALAM KEHIDUPAN102 Gambar 4.1: contoh implementasi pada barnga bekas
  • 103. BAB 4. PENERAPAN PERMAIN TETRIS DALAM KEHIDUPAN103 Gambar 4.2: sebagai sekat ruangan
  • 104. BAB 4. PENERAPAN PERMAIN TETRIS DALAM KEHIDUPAN104 4.1.2 Penerapan Aturan Penerapan aturan pada permainan tetris banyak diterapkan da- lam berbagai pekerjaan. Yang mana pada penerapan aturan ini membentuk pola kerja seseorang untuk dapat menyelesaikan se- tiap tugas yang dikerjakan. 4.1.3 Penerapan Bentuk penereapan pada bentuk diimplementasikan pada objek objek yang dapat saling dihubung-hubungkan. hal ini membantu da- lam hal konstruksi bangunan yang mana dalam pengerjaan kon- struksi bangunan bangunan harus kokoh berdiri dan kekokohan dari bangunan di tentukan dari kepadatan objek -objek yang salig=ng terhubung pada tiap bagian-bagian dari bangunan ter- sebut. 4.2 Penerapan Arduino penggunaan arduin dalam kehidupan nyata ini banyak sekali kegunaannya mulai dari bahan projek percoabaan hingga per- usahaan besar yang menggunakan robot dalam melakukan pro- duksi produk-produknya beberapa implementasi arduino dalam kehidupan sehari-hari 4.2.1 Pinokio Pinokio bukan hanya lampu, itu adalah animatronik yang indah didukung oleh Arduino, Pengolahan dan OpenCV, yang sadar
  • 105. BAB 4. PENERAPAN PERMAIN TETRIS DALAM KEHIDUPAN105
  • 106. BAB 4. PENERAPAN PERMAIN TETRIS DALAM KEHIDUPAN106 akan lingkungan sekitar dan mengekspresikan perilaku yang ber- beda dalam cara yang sangat alami. 4.2.2 The Inebriator Sebuah mesin cocktail Arduino bertenaga, dengan banyak kok- tail untuk memilih dari 4.2.3 Pumpktris Proyek sempurna untuk Halloween: menggabungkan labu de- ngan video game klasik Tetris! 4.2.4 ExpeditInvaders Sebuah rak buku sederhana dapat sangat ditingkatkan dengan beberapa modul LED dikendalikan oleh sebuah papan Arduino 4.2.5 Tersembunyi kontrol lampu Mengontrol strip LED dengan action gure dari Ezio Auditore (Assasin Creed) 4.2.6 Hacking Hotel kunci kamar Musim panas lalu sebuah topi hitam yang disebut Cody Broci- ous (alias Daeken) berhasil mendapatkan akses ke 4 juta kamar hotel dengan Arduino papan.
  • 107. BAB 4. PENERAPAN PERMAIN TETRIS DALAM KEHIDUPAN107
  • 108. BAB 4. PENERAPAN PERMAIN TETRIS DALAM KEHIDUPAN108
  • 109. BAB 4. PENERAPAN PERMAIN TETRIS DALAM KEHIDUPAN109 Gambar 4.6: ExpeditInvaders
  • 110. BAB 4. PENERAPAN PERMAIN TETRIS DALAM KEHIDUPAN110 Gambar 4.7: Tersembunyi kontrol lampu
  • 111. BAB 4. PENERAPAN PERMAIN TETRIS DALAM KEHIDUPAN111 Gambar 4.8: Hacking Hotel kunci kamar
  • 112. BAB 4. PENERAPAN PERMAIN TETRIS DALAM KEHIDUPAN112 4.2.7 Disco Planet Sebuah bola disko besar yang terbuat dari 800 LED. 4.2.8 WiiChuck mengarahkan Laser pointer Proyek ini menggunakan Wii Nunchuck untuk mengontrol laser pointer digerakkan oleh 2 servos mini. 4.2.9 Indikator pesan Reddit Proyek ini dapat berguna bagi semua pengguna Reddit, itu ada- lah notier meja kecil yang menyala ketika account Reddit Anda menerima pesan. 4.2.10 MP3 Player Campur Arduino Mega decoder MP3, SD card, dan nokia LCD dengan ribuan baris kode dan Anda akan mendapatkan MP3 player bekerja. 4.2.11 Timer Sleepy SleepyTimer adalah monitor tidur Arduino berbasis yang meng- gunakan IMU 3-axis untuk menyimpulkan pola tidur malam. Ini grak hasil pada LCD dan pada thermal transfer printer.
  • 113. BAB 4. PENERAPAN PERMAIN TETRIS DALAM KEHIDUPAN113 Gambar 4.9: Disco Planet
  • 114. BAB 4. PENERAPAN PERMAIN TETRIS DALAM KEHIDUPAN114 Gambar 4.10: WiiChuck mengarahkan Laser pointer
  • 115. BAB 4. PENERAPAN PERMAIN TETRIS DALAM KEHIDUPAN115
  • 116. BAB 4. PENERAPAN PERMAIN TETRIS DALAM KEHIDUPAN116 Gambar 4.12: MP3 Player 4.2.12 Alarm Suara Sebuah ide sederhana, tetapi ia datang dengan cukup bebera- pa tur menarik. Perangkat yang dibangun dalam proyek ini adalah detektor tingkat suara yang set o alarm via IR ketika mendeteksi tingkat suara adalah tinggi terlalu lama. 4.2.13 Arduino-l3dgecomm Proyek ini bertujuan untuk mengintegrasikan dunia 3D dengan sensor nyata dan motor, lebih bukti dari konsep dari sebuah proyek yang tepat, tapi masih ide yang menarik.
  • 117. BAB 4. PENERAPAN PERMAIN TETRIS DALAM KEHIDUPAN117 Gambar 4.13: Timer Sleepy
  • 118. BAB 4. PENERAPAN PERMAIN TETRIS DALAM KEHIDUPAN118
  • 119. BAB 4. PENERAPAN PERMAIN TETRIS DALAM KEHIDUPAN119 Gambar 4.15: Arduino-l3dgecomm
  • 120. Bab 5 PENUTUP 5.1 Kesimpulan Game berarti permainan merujuk pada- kelincahan in- telektual (intellectual playability). kata game bisa diartikan sebagai arena keputusan dan aksi pemainnya. Ada target-target yang ingin dicapai pemainnya. Kelincahan intelektual, pada tingkat tertentu, merupakan ukuran sejauh mana game itu me- narik untuk dimainkan secara maksimal. Segala bentuk kegiatan yang memerlukan pemikiran, kelin- cahan intelektual dan pencapaian terhadap target tertentu da- pat dikatakan sebagai game. Hal inilah yang membuat perkem- bangan games di komputer sangat cepat. Sehingga games buk- an hanya sekedar permainan untuk mengisi waktu luang atau 120
  • 121. BAB 5. PENUTUP 121 sekedar hobi. Melainkan sebuah cara untuk meningkatkan kre- atitas dan tingkat intelektual para penggunanya. Tetris (bahasa Rusia: Òåòðèñ) adalah teka-teki yang didesa- in dan diprogram oleh Alexey Pajitnov pada bulan Juni 1985, pada saat ia bekerja di Pusat Komputer Dorodnicyn di Akade- mi Sains Uni Soviet di Moskow. Namanya berasal dari awalan numerik Yunani tetra yang bermakna bangun dengan empat bagian. Permainan ini (atau variasi lainnya) terdapat pada hampir setiap konsol permainan video dan komputer pribadi, begitu juga pada peralatan lainnya seperti kalkulator, ponsel, pemutar media portabel, PDA dan bahkan sebagai rahasia pada produk non-media seperti osiloskop. Pada dasarnya, ada 7 jenis formasi balok yang ada di dalam game tetris, yaitu balok I, J, L, O, S, I, dan Z. Gamikasi bekerja dengan membuat teknologi yang lebih menarik, dengan mendorong pengguna untuk terlibat dalam perilaku yang diinginkan, dengan menunjukkan jalan untuk pe- nguasaan dan otonomi, dengan membantuk untuk memecahkan masalah dan tidak jadi gangguan, dan dengan mengambil ke- untuknagn dari kecenderungan psikkologis manusoa `untuk ter- libat dalam game' Tujuan awal dibuat Arduino adalah untuk membuat perang- kat mudah dan murah, dari perangkat yang ada saat itu. Dan perangkat tersebut ditujukan untuk para siswa yang akan mem- buat perangkat desain dan interaksi. Visi awalnya aja udah mulia kan. Saat ini tim pengembangnya adalah Massimo Banzi, David Cuartielles, Tom Igoe, Gianluca Martino, David Mellis, dan Ni-