Skip to content

steprtm/Fibonacci

Repository files navigation

TUGAS PEMROGRAMAN MOBILE

STEPHEN PRATAMA KURNIA

TI.22.A5 312210635

DOSEN PENGAMPUH : Donny Maulana, S.Kom., M.M.S.I.

Watch the video

MainActivity.java

  1.  package com.example.fibonacci;
    
  • Mendefinisikan paket atau namespace aplikasi.
  1.  import android.content.res.Resources;
     import android.content.res.TypedArray;
     import android.os.Bundle;
     import android.view.Gravity;
     import android.view.View;
     import android.widget.Button;
     import android.widget TextView;
     import android.widget Toast;
     import androidx.appcompat.app.AppCompatActivity;
    
  • Mengimpor kelas-kelas dan komponen-komponen yang diperlukan dalam pembuatan aplikasi Android.
  1.  public class MainActivity extends AppCompatActivity {
    
  • Mendefinisikan kelas MainActivity sebagai aktivitas utama dalam aplikasi. Aktivitas utama ini akan menangani interaksi pengguna dan tampilan aplikasi.
  1.  private static final int NUM_COLORS = 7; // Update this with the correct number of colors
    
  • Mendeklarasikan konstanta NUM_COLORS yang digunakan untuk menentukan jumlah warna yang tersedia dalam daftar warna.
  1.  private int currentFibonacci = 0;
     private TextView textView;
     private Button showFibonacciButton;
     private Button resetButton;
     private int previousFibonacci = 1;
    
  • Mendeklarasikan berbagai variabel yang akan digunakan dalam aktivitas, seperti nilai currentFibonacci untuk menyimpan nomor Fibonacci saat ini, textView untuk mengakses elemen TextView, showFibonacciButton dan resetButton untuk mengakses tombol, dan previousFibonacci untuk menyimpan nomor Fibonacci sebelumnya.
  1.  private void changeTextColor() {
    
  • Mendefinisikan metode changeTextColor() yang akan digunakan untuk mengubah warna teks pada TextView.
  1.  Resources res = getResources();
    
  • Mengambil sumber daya aplikasi dengan menggunakan objek Resources.
  1.  TypedArray colors = res.obtainTypedArray(R.array.fibonacci_colors);
    
  • Mengambil daftar warna dari sumber daya yang didefinisikan dalam file XML dengan nama fibonacci_colors.
  1.  int randomIndex = new Random().nextInt(NUM_COLORS);
    
  • Menghasilkan indeks acak untuk memilih warna dari daftar warna.
  1. int randomColor = colors.getColor(randomIndex, 0);
    
  • Mengambil warna dari daftar warna menggunakan indeks acak yang telah dihasilkan.
  1. textView.setTextColor(randomColor);
    
  • Mengatur warna teks pada elemen TextView dengan warna yang telah dipilih secara acak.
  1. @Override
    protected void onCreate(Bundle savedInstanceState) {
    
  • Menggantikan metode onCreate() yang akan dipanggil saat aktivitas dibuat atau dimulai.
  1. super.onCreate(savedInstanceState);
  • Memanggil metode onCreate() dari kelas induk AppCompatActivity untuk menjalankan inisialisasi dasar aktivitas.
  1. setContentView(R.layout.activity_main);
    
  • Mengatur tampilan aktivitas dengan menghubungkannya ke layout XML yang didefinisikan dalam file activity_main.xml.
  1. textView = findViewById(R.id.fibonacciNumberTextView);
    showFibonacciButton = findViewById(R.id.showFibonacciButton);
    resetButton = findViewById(R.id.resetButton);
    
  • Menghubungkan elemen-elemen tampilan dalam layout XML ke elemen Java agar dapat diakses dalam kode.
  1. showFibonacciButton.setOnClickListener(new View.OnClickListener() {
    
  • Mendefinisikan tindakan yang akan terjadi saat tombol "Show Fibonacci Number" diklik dengan menggunakan metode setOnClickListener().
  1. int nextFibonacci = currentFibonacci + previousFibonacci;
    
  • Menghitung nomor Fibonacci selanjutnya dengan menambahkan nomor Fibonacci saat ini dengan nomor Fibonacci sebelumnya.
  1. textView.setText(String.valueOf(nextFibonacci));
    
  • Mengatur teks pada elemen TextView untuk menampilkan nilai nomor Fibonacci yang baru dihitung.
  1. String toastMessage = "Fibonacci Number: " + currentFibonacci;
    
  • Membuat pesan yang akan ditampilkan dalam bentuk toast.
  1. Toast toast = Toast.makeText(MainActivity.this, toastMessage, Toast.LENGTH_SHORT);
    
  • Membuat objek Toast untuk menampilkan pesan. Durasi toast diatur sebagai Toast.LENGTH_SHORT.
  1. toast.setGravity(Gravity.TOP, 0, 16);
    
  • Mengatur posisi toast di bagian atas layar dengan offset vertikal sebesar 16 piksel.
  1. toast.show();
    
  • Menampilkan toast dengan pesan yang telah dibuat.
  1. previousFibonacci = currentFibonacci;
    currentFibonacci = nextFibonacci;
    
  • Memperbarui nilai previousFibonacci dan currentFibonacci untuk perhitungan selanjutnya.
  1. resetButton.setOnClickListener(new View.OnClickListener() {
    
  • Mendefinisikan tindakan yang akan terjadi saat tombol "Reset" diklik dengan menggunakan metode setOnClickListener().
  1. currentFibonacci = 0;
    previousFibonacci = 1;
    textView.setText("0");
    
  • Mengatur ulang nilai-nilai Fibonacci dan mengatur teks pada elemen TextView menjadi "0" ketika tombol "Reset" diklik.

activity_main.xml

  1.  <?xml version="1.0" encoding="utf-8"?>
    
  • Baris ini mendefinisikan versi XML dan pengkodean karakter yang digunakan.
  1.  <androidx.constraintlayout.widget.ConstraintLayout
     xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:app="http://schemas.android.com/apk/res-auto"
     xmlns:tools="http://schemas.android.com/tools"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     android:background="@color/yellow"
     tools:context=".MainActivity"
     tools:ignore="ExtraText">
    
  • Elemen root dari layout XML dan menggunakan ConstraintLayout, yaitu tata letak konstrain Android. Dalam elemen ini didefinisikan atribut seperti xmlns untuk namespace Android, lebar dan tinggi layout, latar belakang, konteks (activity yang terkait), dan atribut lainnya.
  1.  <TextView
     android:id="@+id/fibonacciNumberTextView"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:layout_marginTop="316dp"
     android:text="0"
     android:textColor="@color/blue"
     android:textSize="120sp"
     app:layout_constraintEnd_toEndOf="parent"
     app:layout_constraintHorizontal_bias="0.498"
     app:layout_constraintStart_toStartOf="parent"
     app:layout_constraintTop_toTopOf="parent" />
    
  • Elemen TextView yang menampilkan angka Fibonacci. ID, lebar, tinggi, margin atas, teks default, warna teks, ukuran teks, dan batasan tata letak menggunakan ConstraintLayout.
  1.  <Button
     android:id="@+id/showToastButton"
     android:layout_width="411dp"
     android:layout_height="70dp"
     android:background="#2196F3"
     android:text="Toast"
     app:layout_constraintEnd_toEndOf="parent"
     app:layout_constraintStart_toStartOf="parent"
     app:layout_constraintTop_toTopOf="parent" />
    
  • Elemen Button yang digunakan untuk menampilkan pesan toast. ID, lebar, tinggi, latar belakang, teks tombol, dan batasan tata letak menggunakan ConstraintLayout.
  1.  <LinearLayout
     android:id="@+id/buttonContainer"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:gravity="center"
     android:orientation="horizontal"
     app:layout_constraintBottom_toBottomOf="parent"
     app:layout_constraintEnd_toEndOf="parent"
     app:layout_constraintStart_toStartOf="parent">
    
  • Elemen LinearLayout yang berisi dua tombol (Hitung dan Reset). ID, lebar, tinggi, jenis orientasi (horizontal), dan batasan tata letak menggunakan ConstraintLayout.
  1.  <Button
     android:id="@+id/showFibonacciButton"
     android:layout_width="211dp"
     android:layout_height="70dp"
     android:background="#2196F3"
     android:text="Hitung" />
    
  • Button pertama dalam LinearLayout, yaitu tombol "Hitung". ID, lebar, tinggi, latar belakang, dan teks tombol.
  1. <Button
     android:id="@+id/resetButton"
     android:layout_width="211dp"
     android:layout_height="70dp"
     android:background="#2196F3"
     android:text="Reset" />
    
  • Button kedua dalam LinearLayout, yaitu tombol "Reset". ID, lebar, tinggi, latar belakang, dan teks tombol.

Colors.xml

<array name="fibonacci_colors">
    <item>@color/black</item>
    <item>@color/white</item>
    <item>@color/red</item>
    <item>@color/green</item>
    <item>@color/purple</item>
    <item>@color/orange</item>
 <item>@color/blue</item>
</array>
  • Kode XML di atas mendefinisikan sebuah sumber daya array dengan nama "fibonacci_colors." Array ini berisi daftar referensi ke warna-warna yang didefinisikan dalam file colors.xml. Setiap elemen dalam array ini adalah referensi ke warna, seperti @color/black, @color/white, dan sebagainya. Dalam kelas MainActivity, terdapat metode changeTextColor(). Metode ini digunakan untuk mengganti warna teks pada TextView dengan warna acak dari array fibonacci_colors.

Menggunakan kode TypedArray colors = res.obtainTypedArray(R.array.fibonacci_colors), kita mengambil referensi ke sumber daya array yang telah didefinisikan di atas. Kemudian, kita menggunakan Random untuk menghasilkan indeks acak dari array tersebut, dan mengambil warna sesuai dengan indeks acak tersebut dengan int randomColor = colors.getColor(randomIndex, 0).

Dengan cara ini, setiap kali tombol "Hitung" diklik, warna teks pada TextView akan diubah menjadi warna acak yang ada dalam array fibonacci_colors, menambahkan elemen visual yang menarik ke aplikasi .

About

Tugas Pemrograman Mobile menampilkan angka Fibonacci

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages