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
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
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.
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
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-
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
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.
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.
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-
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
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;
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
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.
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
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
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-