Anda di halaman 1dari 15

MAKALAH PEMBUATAN APLIKASI GAME SEDERHANA

*APLIKASI GAME MENGGUNAKAN BAHASA JAVA*

PEMBIMBING:
Annisah Husni Daulay, M.Komp.

DISUSUN OLEH:
Bayu Anggoro (XI RPL 3)

BERANGGOTAKAN:
Bayu, Hapis, Deis, Nayla (XI RPL 3)

SMK NEGERI 9 MEDAN

2023/2024
KATA PENGANTAR

Dengan kerendahan hati, kami mengungkapkan rasa syukur dan terima kasih
kepada Allah SWT yang telah melimpahkan rahmat dan petunjuk-Nya kepada
kami. Berkat rahmat dan bimbingan-Nya, kami telah berusaha dengan tekun
untuk menyelesaikan makalah ini, yang membahas cara membuat dengan sebaik
mungkin dan dalam waktu yang tepat.

Dalam upaya penyusunan makalah ini, kami merujuk pada kode yang telah
kami susun sendiri. Namun, kami sangat sadar bahwa makalah ini masih
memiliki beberapa kekurangan yang perlu diperbaiki. Oleh karena itu, kami
sangat mengharapkan masukan yang bersifat konstruktif dari semua pihak guna
meningkatkan kualitas dan kesempurnaan makalah ini.

Akhir kata, kami berharap makalah ini dapat memberikan manfaat yang
bermanfaat kepada para pembaca. Semoga isi makalah ini dapat menjadi
sumber pengetahuan yang berguna dan dapat memberikan kontribusi positif
dalam pemahaman tentang topik yang dibahas.
.
DAFTAR ISI
BAB I PENDAHULUAN………………...…...…………………....1
A. Latar Belakang…………………………………………………...1
B. Tujuan Pembuatan Game…………………………….…………..2
C. Deskripsi Singkat Isi Game…………………………………...….3

BAB II PEMBUATAN APLIKASI GAME.…...…………….…....4


A. Pemilihan Bahasa Pemrograman…………………………………4
B. Pembuatan Design dan Kode……………………………………..4
C. Pembuatan Kontrol Java……………………………………….....7
D. Kode Lengkap XML dan Java…………………………………....9
BAB I
PENDAHULUAN
A. Latar Belakang

Permainan telah menjadi bagian integral dari kehidupan manusia sejak zaman
kuno. Dari permainan tradisional hingga permainan modern yang canggih, permainan
telah mengalami evolusi yang signifikan. Salah satu jenis permainan yang populer dan
memiliki daya tarik universal adalah permainan tebak-tebakan.

Permainan tebak-tebakan telah ada sejak zaman kuno dan masih tetap populer hingga
saat ini. Awalnya, permainan tebak-tebakan dimainkan secara verbal di antara teman-
teman atau keluarga sebagai hiburan sederhana. Namun, dengan kemajuan teknologi
dan penyebaran internet, permainan tebak-tebakan telah berkembang menjadi
berbagai format, termasuk permainan papan, aplikasi seluler, dan permainan daring.

Salah satu bentuk permainan tebak-tebakan yang populer adalah game tebak-tebakan
daring. Game ini menantang pemain untuk menebak jawaban dari pertanyaan atau
petunjuk yang diberikan. Biasanya, pertanyaan atau petunjuk tersebut dapat berupa
teka-teki, pertanyaan umum, atau deskripsi singkat tentang sesuatu.

Game tebak-tebakan memiliki berbagai manfaat, baik untuk hiburan maupun untuk
pengembangan kognitif. Pertama, permainan ini dapat meningkatkan keterampilan
berpikir kritis dan analitis pemain, karena sering kali memerlukan pemikiran kreatif
dan logis untuk menemukan jawaban yang tepat. Kedua, game tebak-tebakan juga
dapat meningkatkan keterampilan bahasa, kosakata, dan pengetahuan umum pemain,
karena seringkali pertanyaan dalam permainan mencakup berbagai topik dan konsep.

Selain itu, game tebak-tebakan juga memberikan kesempatan bagi pemain untuk
berinteraksi sosial. Banyak game tebak-tebakan daring yang memungkinkan pemain
untuk bermain dengan teman-teman mereka secara daring, sehingga memperluas
jaringan sosial dan meningkatkan keterlibatan dalam komunitas permainan daring.

Dalam makalah ini, akan dibahas lebih lanjut tentang fenomena game tebak-tebakan,
termasuk sejarahnya, perkembangannya, manfaatnya, dan dampaknya terhadap
pemain. Melalui pemahaman yang lebih dalam tentang permainan ini, diharapkan
dapat memberikan wawasan yang lebih baik tentang peran dan pentingnya game
tebak-tebakan dalam budaya permainan modern.

B. Tujuan Pembuatan Game


Tujuan Pembuatan Game Tebak-Tebakan

1. Hiburan: Salah satu tujuan utama pembuatan game tebak-tebakan adalah


untuk memberikan hiburan kepada pemain. Game ini dirancang untuk
menyediakan pengalaman yang menyenangkan dan menghibur bagi pemain
yang mencari waktu luang yang santai.
2. Peningkatan Keterampilan Kognitif : Game tebak-tebakan juga dibuat
dengan tujuan meningkatkan keterampilan kognitif pemain. Melalui pemikiran
kreatif, analitis, dan logis yang diperlukan untuk menyelesaikan teka-teki,
pemain dapat mengasah kemampuan berpikir kritis dan analitis mereka.
3. Pengembangan Bahasa dan Kosakata: Pembuatan game tebak-tebakan
juga bertujuan untuk membantu pemain meningkatkan keterampilan bahasa
dan kosakata mereka. Dengan berinteraksi dengan teka-teki dan pertanyaan
dalam game, pemain dapat memperluas kosakata mereka dan meningkatkan
pemahaman mereka tentang struktur bahasa.
4. Stimulasi Mental: Game tebak-tebakan sering kali dirancang untuk
memberikan stimulasi mental kepada pemain. Tantangan dalam menyelesaikan
teka-teki atau menjawab pertanyaan dapat merangsang pikiran pemain dan
membantu menjaga kognisi mereka tetap tajam.
5. Pembangunan Komunitas: Beberapa game tebak-tebakan dibuat dengan
tujuan membangun komunitas di antara pemainnya. Dengan memungkinkan
pemain untuk berinteraksi satu sama lain melalui fitur seperti permainan
multipemain atau forum diskusi, game ini dapat menjadi sarana untuk
membangun hubungan sosial dan meningkatkan keterlibatan pemain dalam
komunitas game.
6. Edukasi dan Pembelajaran : Game tebak-tebakan juga dapat digunakan
sebagai alat edukatif untuk membantu pemain mempelajari konsep-konsep baru
atau menguji pengetahuan mereka tentang berbagai topik. Dengan menyisipkan
unsur edukatif ke dalam teka-teki atau pertanyaan dalam game, pembuat game
dapat menciptakan pengalaman pembelajaran yang menyenangkan bagi
pemain.

Melalui pencapaian tujuan-tujuan ini, game tebak-tebakan menjadi sebuah alternatif


hiburan yang bermanfaat dan menarik bagi berbagai kalangan pemain.

C. Deskripsi Singkat Isi Game


Deskripsi Game

Game tebak-tebakan adalah permainan yang menantang pemain untuk menebak


jawaban dari berbagai pertanyaan atau teka-teki yang diberikan. Pemain biasanya
diberikan petunjuk atau informasi terbatas yang harus mereka gunakan untuk mencari
jawaban yang tepat. Game ini dapat dimainkan secara individu atau dengan
melibatkan beberapa pemain, tergantung pada formatnya.

Biasanya, game tebak-tebakan terdiri dari berbagai jenis pertanyaan atau teka-teki,
mulai dari teka-teki logika dan matematika hingga pertanyaan umum tentang berbagai
topik. Pemain diberikan waktu terbatas untuk memikirkan jawaban mereka, dan
kemudian mereka memberikan jawaban mereka, baik secara lisan dalam permainan
langsung atau dengan menulis jawaban mereka dalam game daring.

Tujuan utama dari game tebak-tebakan adalah untuk menciptakan pengalaman yang
menyenangkan dan menantang bagi pemain. Melalui pemecahan teka-teki dan
menjawab pertanyaan, pemain dapat mengasah keterampilan kognitif mereka,
meningkatkan pengetahuan mereka tentang berbagai topik, dan merangsang pikiran
mereka.

Game tebak-tebakan tersedia dalam berbagai format, termasuk permainan papan,


aplikasi seluler, dan game daring. Beberapa game tebak-tebakan juga menawarkan
fitur-fitur tambahan, seperti mode multipemain, peringkat, dan pencapaian, untuk
meningkatkan pengalaman bermain pemain dan mendorong interaksi sosial.

Dengan daya tariknya yang universal dan manfaatnya yang beragam, game tebak-
tebakan terus menjadi salah satu jenis permainan yang populer di kalangan berbagai
kelompok usia dan masyarakat.

BAB II
PEMBUATAN APLIKASI GAME
A. Pemilihan Bahasa Pemrograman

Disini saya menggunakan Bahasa Java untuk membuat game batu, gunting,
kertas ini, dikarenakan, memakai bahas Saya lebih terbiasa memakai Bahasa Java
dibanding dengan Kotlin.

B. Pembuatan Design dan Kode

proses pembuatan antarmuka untuk sebuah game sederhana berbasis Android


Studio yang mengimplementasikan permainan "Batu, Gunting, Kertas". Kode XML
yang disediakan akan diuraikan dengan detail, termasuk fungsi-fungsinya terkait
ukuran, peletakan, dan atribut-atribut yang relevan.

Deskripsi Fungsi-fungsi dalam Kode XML

1. RelativeLayout:
 Fungsi: RelativeLayout digunakan sebagai tata letak utama untuk
menempatkan elemen-elemen antarmuka dengan relasi-posisi relatif. Ini
memungkinkan penempatan elemen secara fleksibel berdasarkan
hubungan relatif antara satu elemen dengan elemen lainnya.
 Atribut Penting:
 android:layout_width="match_parent": Mengatur lebar
RelativeLayout agar sesuai dengan lebar layar perangkat.
 android:layout_height="match_parent": Mengatur tinggi
RelativeLayout agar sesuai dengan tinggi layar perangkat.
2. TextView:
 Fungsi: TextView digunakan untuk menampilkan teks, seperti judul
permainan atau petunjuk tebakan, di layar perangkat.
 Atribut Penting:
 android:layout_width="match_parent": Mengatur lebar
TextView agar sesuai dengan lebar layar perangkat.
 android:layout_height="wrap_content": Mengatur tinggi
TextView agar disesuaikan dengan tinggi konten teks.
 android:textSize="24sp": Mengatur ukuran teks yang
ditampilkan dalam satuan "sp" (scale-independent pixels).
 android:textColor="#FFFFFF": Mengatur warna teks menjadi
putih agar kontras dengan latar belakang.
 android:textAlignment="center": Mengatur teks agar terpusat
secara horizontal.
 android:layout_centerHorizontal="true": Meletakkan
TextView di tengah secara horizontal.
3. EditText:
 Fungsi: EditText digunakan untuk input jawaban dari pemain.
 Atribut Penting:
 android:layout_width="match_parent": Mengatur lebar
EditText agar sesuai dengan lebar layar perangkat.
 android:layout_height="wrap_content": Mengatur tinggi
EditText agar disesuaikan dengan tinggi konten.
 android:hint="Jawaban": Menampilkan hint atau petunjuk teks
di dalam EditText.

5
 android:textColorHint="#A9A9A9": Mengatur warna teks hint
menjadi abu-abu.
 android:textColor="#FFFFFF": Mengatur warna teks input
menjadi putih agar kontras dengan latar belakang.
 android:inputType="text": Menentukan tipe input menjadi
teks.
4. Button:
 Fungsi: Button digunakan untuk mengirim jawaban yang dimasukkan
oleh pemain.
 Atribut Penting:
 android:layout_width="wrap_content": Mengatur lebar
Button agar disesuaikan dengan lebar konten tombol.
 android:layout_height="wrap_content": Mengatur tinggi
Button agar disesuaikan dengan tinggi konten tombol.
 android:text="Submit": Menampilkan teks "Submit" pada
tombol.
 android:layout_marginTop="32dp": Memberikan jarak atas
sebesar 32dp dari elemen di atasnya.
 android:layout_centerHorizontal="true": Meletakkan Button
di tengah secara horizontal.
5. ImageView:
 Fungsi: ImageView digunakan untuk menampilkan gambar yang
mendukung teka-teki, misalnya gambar hewan yang harus ditebak.
 Atribut Penting:
 android:layout_width="match_parent": Mengatur lebar
ImageView agar sesuai dengan lebar layar perangkat.
 android:layout_height="wrap_content": Mengatur tinggi
ImageView agar disesuaikan dengan tinggi konten gambar.
 android:src="@drawable/nama_gambar": Menentukan
sumber gambar yang akan ditampilkan di ImageView.

Melalui penggunaan elemen-elemen ini dalam kode XML Android Studio, antarmuka
pengguna yang responsif dan menarik dapat dibuat untuk game tebak-tebakan
hewan.

6
Untuk gambar lebih jelasnya sebagai berikut.
C. Pembuatan Kontrol Java

Dalam pembuatan kontrol kode Java ini merupakan kelas yang sangat penting.
Kode dalam kelas ini mengatur tampilan antarmuka pengguna (UI) serta logika
permainan dari aplikasi.

1. Inisialisasi Variabel :
 questionTextView: TextView untuk menampilkan pertanyaan.
 answerEditText: EditText untuk input jawaban dari pengguna.
 submitBtn: Button untuk mengirim jawaban.
 correctCountTextView: TextView untuk menampilkan jumlah
jawaban benar.
 incorrectCountTextView: TextView untuk menampilkan jumlah
jawaban salah.

7
2. Array Pertanyaan dan Jawaban:
 questions: Array yang berisi pertanyaan-pertanyaan mengenai hewan.
 answers: Array yang berisi jawaban-jawaban yang sesuai dengan
pertanyaan.
3. Metode onCreate():
 Metode ini dipanggil saat aktivitas dimulai.
 Melakukan inisialisasi elemen-elemen antarmuka pengguna.
 Memanggil showNextQuestion() untuk menampilkan pertanyaan
pertama.
4. Metode showNextQuestion():
 Metode ini digunakan untuk menampilkan pertanyaan selanjutnya.
 Jika masih ada pertanyaan yang tersedia, maka teks pertanyaan akan
diatur ke dalam questionTextView.
 Jika sudah tidak ada pertanyaan lagi, maka akan muncul pesan Toast
yang memberitahu bahwa semua pertanyaan sudah selesai beserta
jumlah jawaban benar dan salah.
5. Metode checkAnswer():
 Metode ini digunakan untuk memeriksa jawaban yang diberikan oleh
pengguna.
 Jawaban yang diberikan oleh pengguna dibandingkan dengan jawaban
yang benar untuk pertanyaan saat ini.
 Mengupdate skor jawaban benar atau salah sesuai dengan jawaban
pengguna.
 Memanggil showNextQuestion() untuk menampilkan pertanyaan
selanjutnya.

Kode Lengkap XML dan JAVA


Activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/awe"
android:padding="16dp"
tools:context=".MainActivity">

<TextView
android:id="@+id/titleTextView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Ayo Bermain Tebak Tebakan Hewan!"
android:textSize="24sp"
android:textColor="#FFFFFF"
android:textAlignment="center"
android:layout_centerHorizontal="true"
android:layout_marginTop="32dp"/>

<TextView
android:id="@+id/questionTextView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/titleTextView"
android:text="Tebak Tebakan!"
android:textSize="20sp"
android:textColor="#FFFFFF"
android:layout_centerHorizontal="true"
android:layout_marginTop="32dp"/>

<EditText
android:id="@+id/answerEditText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/questionTextView"
android:layout_marginTop="32dp"
android:hint="Jawaban"
android:textColorHint="#A9A9A9"
android:textColor="#FFFFFF"
android:inputType="text"
android:layout_centerHorizontal="true"/>

<Button
android:id="@+id/submitBtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/answerEditText"
android:layout_centerHorizontal="true"
android:layout_marginTop="32dp"
android:text="Submit" />

<TextView
android:id="@+id/correctTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/submitBtn"
android:layout_centerHorizontal="true"
android:layout_marginTop="32dp"
android:text="Jawaban Benar: 0"
android:textColor="#FFFFFF"
android:textSize="18sp"/>

<TextView
android:id="@+id/incorrectTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/correctTextView"
android:layout_centerHorizontal="true"
android:layout_marginTop="8dp"
android:text="Jawaban Salah: 0"
android:textColor="#FFFFFF"
android:textSize="18sp"/>

</RelativeLayout>

MainActivity.java

package com.example.tugasbuatgamesimpel;

import android.os.Bundle;

import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
import java.util.Random;

public class MainActivity extends AppCompatActivity {

private TextView questionTextView;


private EditText answerEditText;
private Button submitBtn;
private TextView correctCountTextView;
private TextView incorrectCountTextView;
private String[] questions = {
"Saya adalah hewan yang bisa melompat tinggi dan
mempunyai kantung diperut. Siapakah saya?",
"Saya adalah hewan yang mempunyai duri banyak
ditubuh. Siapakah saya?",
"Saya adalah hewan yang memiliki belalai panjang.
Siapakah saya?"
};

private String[] answers = {


"kanguru",
"landak",
"gajah"
};

private int currentQuestionIndex = -1;


private int correctCount = 0;
private int incorrectCount = 0;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

questionTextView =
findViewById(R.id.questionTextView);

answerEditText = findViewById(R.id.answerEditText);
submitBtn = findViewById(R.id.submitBtn);
correctCountTextView =
findViewById(R.id.correctTextView);
incorrectCountTextView =
findViewById(R.id.incorrectTextView);

showNextQuestion();

submitBtn.setOnClickListener(new
View.OnClickListener() {
@Override
public void onClick(View v) {
checkAnswer();
}
});
}

private void showNextQuestion() {


currentQuestionIndex++;
if (currentQuestionIndex < questions.length) {

questionTextView.setText(questions[currentQuestionIndex]);
answerEditText.setText("");
} else {
Toast.makeText(MainActivity.this, "Semua
pertanyaan sudah selesai.", Toast.LENGTH_SHORT).show();
Toast.makeText(MainActivity.this, "Jawaban Benar:
" + correctCount + "\nJawaban Salah: " + incorrectCount,
Toast.LENGTH_LONG).show();
}
}

private void checkAnswer() {


String userAnswer =
answerEditText.getText().toString().trim().toLowerCase();
String correctAnswer =
answers[currentQuestionIndex].toLowerCase();
if (userAnswer.equals(correctAnswer)) {
Toast.makeText(MainActivity.this, "Jawaban
benar!", Toast.LENGTH_SHORT).show();
correctCount++;
correctCountTextView.setText("Jawaban Benar: " +
correctCount);
} else {
Toast.makeText(MainActivity.this, "Jawaban salah,
coba lagi.", Toast.LENGTH_SHORT).show();
incorrectCount++;
incorrectCountTextView.setText("Jawaban Salah: " +
incorrectCount);
}
showNextQuestion();
}
}

Anda mungkin juga menyukai