AIZZZ
AIZZZ
NIM : 22225201053
Mata Kuliah : Pemprograman Aplikasi Mobile
Nomor tugas : :3,6,13,16,5
Tugas UAS Dan MID
TUTORIAL MEMBUAT 5 APLIKASI DI ANDROID STUDIO
3.Aplikasi Konversi Mata Uang :Mengonversi nilai mata uang dari satu jenis ke jenis lainnya
menggunakan nilai tukar yang diberikan. Minimal 5 Jenis Mata Uang
<TextView
android:layout_width="match_parent"
android:layout_height="30dp"
android:text="Aplikasi Konversi Mata Uang"
android:textSize="20dp"
android:layout_marginBottom="20dp"
android:textAlignment="center"/>
<EditText
android:id="@+id/amountEditText"
android:layout_width="match_parent"
android:layout_height="50dp"
android:background="@drawable/bro"
android:textColor="@color/black"
android:hint="Enter amount"
android:inputType="numberDecimal" />
<Spinner
android:id="@+id/fromCurrencySpinner"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="18dp" />
<Spinner
android:id="@+id/toCurrencySpinner"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="18dp" />
<Button
android:id="@+id/convertButton"
android:layout_width="match_parent"
android:backgroundTint="@color/black"
android:layout_gravity="center"
android:layout_height="wrap_content"
android:layout_marginTop="26dp"
android:text="Convert" />
<TextView
android:textColor="@color/black"
android:id="@+id/resultTextView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:text="Result"
android:textSize="18sp" />
</LinearLayout>
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.ArrayAdapter
import android.widget.Button
import android.widget.EditText
import android.widget.Spinner
import android.widget.TextView
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_it
em)
fromCurrencySpinner.adapter = adapter
toCurrencySpinner.adapter = adapter
convertButton.setOnClickListener {
val amount = amountEditText.text.toString().toDoubleOrNull()
val fromCurrency = fromCurrencySpinner.selectedItem.toString()
val toCurrency = toCurrencySpinner.selectedItem.toString()
if (amount != null) {
val fromRate = exchangeRates[fromCurrency] ?: 1.0
val toRate = exchangeRates[toCurrency] ?: 1.0
val result = amount * (toRate / fromRate)
resultTextView.text = String.format("%.2f %s", result,
toCurrency)
} else {
resultTextView.text = "Please enter a valid amount"
}
}
}
}
6.Aplikasi Penghitung Kebutuhan Kalori Harian :Menghitung kebutuhan kalori harian
berdasarkan usia, jenis kelamin, berat badan, tinggi badan, dan tingkat aktivitas.
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<ImageView
android:layout_width="match_parent"
android:layout_height="100dp"
android:src="@drawable/kalori"/>
<TextView
android:layout_width="match_parent"
android:layout_height="40dp"
android:text="Aplikasi Penghitung Kalori"
android:textColor="@color/black"
android:textSize="20sp"
android:layout_marginBottom="30dp"
android:textAlignment="center"/>
<EditText
android:id="@+id/usiaEditText"
android:layout_width="match_parent"
android:layout_height="50dp"
android:background="@drawable/bro"
android:textColor="@color/black"
android:hint="Masukkan usia"
android:inputType="number" />
<EditText
android:id="@+id/beratBadanEditText"
android:layout_width="match_parent"
android:layout_height="50dp"
android:textColor="@color/black"
android:background="@drawable/bro"
android:hint="Masukkan berat badan (kg)"
android:inputType="numberDecimal"
android:layout_marginTop="8dp" />
<EditText
android:id="@+id/tinggiBadanEditText"
android:layout_width="match_parent"
android:layout_height="50dp"
android:background="@drawable/bro"
android:textColor="@color/black"
android:hint="Masukkan tinggi badan (cm)"
android:inputType="numberDecimal"
android:layout_marginTop="8dp" />
<Spinner
android:id="@+id/jenisKelaminSpinner"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="18dp" />
<Spinner
android:id="@+id/tingkatAktivitasSpinner"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="20dp" />
<Button
android:backgroundTint="@color/black"
android:id="@+id/hitungButton"
android:layout_width="200dp"
android:layout_gravity="center"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:text="Hitung" />
<TextView
android:textColor="@color/black"
android:textColorHint="@color/black"
android:id="@+id/hasilTextView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:text="Kebutuhan kalori harian Anda: "
android:textSize="18sp" />
</LinearLayout>
</ScrollView>
Berikut Kodingan Untuk logic Kotlin
package com.example.farizsholihin
import android.annotation.SuppressLint
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.*
@SuppressLint("MissingInflatedId")
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_kalori)
jenisKelaminAdapter.setDropDownViewResource(android.R.layout.simple_spinner
_dropdown_item)
jenisKelaminSpinner.adapter = jenisKelaminAdapter
tingkatAktivitasAdapter.setDropDownViewResource(android.R.layout.simple_spi
nner_dropdown_item)
tingkatAktivitasSpinner.adapter = tingkatAktivitasAdapter
hitungButton.setOnClickListener {
val usia = usiaEditText.text.toString().toIntOrNull()
val beratBadan =
beratBadanEditText.text.toString().toDoubleOrNull()
val tinggiBadan =
tinggiBadanEditText.text.toString().toDoubleOrNull()
val jenisKelamin = jenisKelaminSpinner.selectedItem.toString()
val tingkatAktivitas =
tingkatAktivitasSpinner.selectedItemPosition
<EditText
android:id="@+id/input1EditText"
android:layout_width="match_parent"
android:layout_height="50dp"
android:textColor="@color/black"
android:background="@drawable/bro"
android:hint="Masukkan sisi / panjang / radius / alas"
android:inputType="numberDecimal"
android:layout_marginTop="8dp" />
<EditText
android:id="@+id/input2EditText"
android:layout_width="match_parent"
android:layout_height="50dp"
android:background="@drawable/bro"
android:hint="Masukkan lebar / tinggi (jika diperlukan)"
android:inputType="numberDecimal"
android:layout_marginTop="8dp" />
<Button
android:id="@+id/hitungButton"
android:layout_width="200dp"
android:layout_gravity="center"
android:backgroundTint="@color/black"
android:layout_height="wrap_content"
android:text="Hitung"
android:layout_marginTop="26dp" />
<TextView
android:textColor="@color/black"
android:textColorHint="@color/black"
android:id="@+id/hasilTextView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Luas dan Keliling"
android:textSize="18sp"
android:layout_marginTop="16dp" />
</LinearLayout>
import android.annotation.SuppressLint
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.ArrayAdapter
import android.widget.Button
import android.widget.EditText
import android.widget.Spinner
import android.widget.TextView
@SuppressLint("MissingInflatedId")
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_luas)
hitungButton.setOnClickListener {
val bentuk = bentukSpinner.selectedItem.toString()
val input1 = input1EditText.text.toString().toDoubleOrNull()
val input2 = input2EditText.text.toString().toDoubleOrNull()
<EditText
android:id="@+id/nilaiEditText"
android:layout_width="match_parent"
android:layout_height="50dp"
android:background="@drawable/bro"
android:textColor="@color/black"
android:hint="Masukkan nilai"
android:inputType="numberDecimal"
android:layout_marginTop="18dp"
/>
<Button
android:backgroundTint="@color/black"
android:id="@+id/tambahButton"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Tambah Nilai"
android:layout_marginTop="18dp" />
<Button
android:id="@+id/hitungButton"
android:backgroundTint="@color/black"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Hitung Rata-rata"
android:layout_marginTop="8dp" />
<TextView
android:textColor="@color/black"
android:textColorHint="@color/black"
android:id="@+id/hasilTextView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Hasil rata-rata akan ditampilkan di sini"
android:textSize="18sp"
android:layout_marginTop="16dp" />
</LinearLayout>
import android.annotation.SuppressLint
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.Button
import android.widget.EditText
import android.widget.TextView
@SuppressLint("MissingInflatedId")
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_rata_rata)
tambahButton.setOnClickListener {
val nilai = nilaiEditText.text.toString().toDoubleOrNull()
if (nilai != null) {
nilaiList.add(nilai)
nilaiEditText.text.clear()
hasilTextView.text = "Nilai ditambahkan: $nilai\nTotal
nilai saat ini: ${nilaiList.size}"
} else {
hasilTextView.text = "Harap masukkan nilai yang valid"
}
}
hitungButton.setOnClickListener {
if (nilaiList.isNotEmpty()) {
val rataRata = nilaiList.sum() / nilaiList.size
hasilTextView.text = "Rata-rata nilai:
%.2f".format(rataRata)
} else {
hasilTextView.text = "Tidak ada nilai yang dimasukkan"
}
}
}
}
5.Aplikasi Penghitung BMI (Body Mass Index) :Menghitung BMI berdasarkan tinggi dan
berat badan pengguna.
<EditText
android:textColor="@color/black"
android:id="@+id/tinggiBadanEditText"
android:layout_width="match_parent"
android:layout_height="50dp"
android:background="@drawable/bro"
android:hint="Masukkan tinggi badan (cm)"
android:inputType="numberDecimal"
android:layout_marginTop="20dp" />
<Button
android:id="@+id/hitungButton"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:text="Hitung BMI"
android:backgroundTint="@color/black"
android:layout_gravity="center"
android:layout_marginTop="46dp" />
<TextView
android:textColor="@color/black"
android:id="@+id/hasilTextView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Hasil BMI akan ditampilkan di sini"
android:textSize="18sp"
android:layout_marginTop="16dp" />
</LinearLayout>
import android.annotation.SuppressLint
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.Button
import android.widget.EditText
import android.widget.TextView
import kotlin.math.pow
@SuppressLint("MissingInflatedId")
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_bmi)
hitungButton.setOnClickListener {
val beratBadan =
beratBadanEditText.text.toString().toDoubleOrNull()
val tinggiBadan =
tinggiBadanEditText.text.toString().toDoubleOrNull()
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:orientation="vertical"
android:layout_marginTop="100dp"
tools:ignore="UselessParent">
<ImageView
android:layout_width="160dp"
android:layout_height="160dp"
android:src="@drawable/yaya"
tools:ignore="ContentDescription" />
<EditText
android:id="@+id/editTextUsername"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Username"
android:background="@drawable/bro"
android:textColor="@color/black"
android:layout_marginStart="10dp"
android:layout_marginEnd="10dp"
android:layout_marginTop="32dp"
android:textColorHint="@color/black"
android:textSize="20sp"
android:padding="18dp"
android:drawableStart="@drawable/user"
android:drawablePadding="15dp"
android:inputType="text" />
<EditText
android:id="@+id/editTextPassword"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Password"
android:layout_marginStart="10dp"
android:layout_marginEnd="10dp"
android:textColor="@color/black"
android:layout_marginTop="16dp"
android:textColorHint="@color/black"
android:textSize="20sp"
android:padding="18dp"
android:drawableStart="@drawable/baseline_lock_24"
android:drawablePadding="15dp"
android:inputType="textPassword" />
<Button
android:id="@+id/buttonLogin"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Login"
android:layout_marginStart="30dp"
android:layout_marginEnd="30dp"
android:backgroundTint="@color/black"
android:textColor="#03A9F4"
android:textSize="20sp"
android:padding="15dp"
android:layout_marginTop="32dp" />
</LinearLayout>
</RelativeLayout>
Berikut kotlin login
package com.example.farizsholihin
import android.annotation.SuppressLint
import android.content.Intent
import android.os.Bundle
import android.widget.Button
import android.widget.EditText
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
@SuppressLint("MissingInflatedId")
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_login)
if (validateUserAndPassword(username, password)) {
Toast.makeText(this, "Login berhasil",
Toast.LENGTH_SHORT).show()
val intent = Intent(this, Home::class.java)
startActivity(intent)
finish()
} else {
Toast.makeText(this, "Username atau password salah",
Toast.LENGTH_SHORT).show()
}
}
}
<View
android:background="@drawable/warna"
android:id="@+id/fariz"
android:layout_width="wrap_content"
android:layout_height="200dp"
android:layout_marginBottom="-120dp"/>
<GridLayout
android:background="@drawable/warna"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@id/fariz"
android:layout_marginStart="10dp"
android:layout_marginTop="0dp"
android:layout_marginEnd="10dp"
android:layout_marginBottom="10dp"
android:columnCount="2"
android:rowCount="3">
<LinearLayout
android:id="@+id/haiii"
android:layout_width="120dp"
android:layout_height="130dp"
android:layout_gravity="center"
android:gravity="center"
android:orientation="vertical">
<ImageView
android:src="@drawable/uang"
android:layout_width="100dp"
android:layout_height="100dp" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Uang"
android:textAlignment="center"
android:textStyle="bold"
android:textSize="24sp"/>
</LinearLayout>
</androidx.cardview.widget.CardView>
android:layout_width="170dp"
android:layout_height="190dp"
android:layout_row="0"
android:layout_column="1"
android:layout_margin="10dp"
app:cardCornerRadius="10dp"
app:cardElevation="8dp">
<LinearLayout
android:layout_width="120dp"
android:layout_height="130dp"
android:layout_gravity="center"
android:gravity="center"
android:orientation="vertical">
<ImageView
android:src="@drawable/kalori"
android:layout_width="100dp"
android:layout_height="100dp" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Kalori"
android:textAlignment="center"
android:textStyle="bold"
android:textSize="24sp"/>
</LinearLayout>
</androidx.cardview.widget.CardView>
android:layout_width="170dp"
android:layout_height="190dp"
android:layout_row="1"
android:layout_column="0"
android:layout_margin="10dp"
app:cardCornerRadius="10dp"
app:cardElevation="8dp">
<LinearLayout
android:layout_width="120dp"
android:layout_height="130dp"
android:layout_gravity="center"
android:gravity="center"
android:orientation="vertical">
<ImageView
android:src="@drawable/luas"
android:layout_width="100dp"
android:layout_height="100dp" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Luas"
android:textAlignment="center"
android:textStyle="bold"
android:textSize="24sp"/>
</LinearLayout>
</androidx.cardview.widget.CardView>
android:layout_width="170dp"
android:layout_height="190dp"
android:layout_row="1"
android:layout_column="1"
android:layout_margin="10dp"
app:cardCornerRadius="10dp"
app:cardElevation="8dp">
<LinearLayout
android:layout_width="120dp"
android:layout_height="130dp"
android:layout_gravity="center"
android:gravity="center"
android:orientation="vertical">
<ImageView
android:src="@drawable/ratarata"
android:layout_width="100dp"
android:layout_height="100dp" />
<TextView
android:id="@+id/textView2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="RataRata"
android:textAlignment="center"
android:textSize="20sp"
android:textStyle="bold" />
</LinearLayout>
</androidx.cardview.widget.CardView>
android:layout_width="match_parent"
android:layout_height="190dp"
android:layout_row="2"
android:layout_column="0"
android:layout_columnSpan="2"
android:layout_margin="10dp"
app:cardCornerRadius="10dp"
app:cardElevation="8dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="130dp"
android:layout_gravity="center"
android:gravity="center"
android:orientation="vertical">
<ImageView
android:src="@drawable/bmi"
android:layout_width="100dp"
android:layout_height="100dp" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="BMI"
android:textAlignment="center"
android:textStyle="bold"
android:textSize="24sp"/>
</LinearLayout>
</androidx.cardview.widget.CardView>
</GridLayout>
</RelativeLayout>
Berikut codingan kotlinya:
package com.example.farizsholihin
import android.annotation.SuppressLint
import android.content.Intent
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import androidx.cardview.widget.CardView
cardView3.setOnClickListener {
val intent = Intent(this, Luas::class.java)
startActivity(intent)
cardView4.setOnClickListener {
val intent = Intent(this, RataRata::class.java)
startActivity(intent)
cardView5.setOnClickListener {
val intent = Intent(this, BMI::class.java)
startActivity(intent)
}
}
}