0% found this document useful (0 votes)
13 views

AIZZZ

tugas kuliah

Uploaded by

zarfi2018
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
13 views

AIZZZ

tugas kuliah

Uploaded by

zarfi2018
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 26

79Nama : Muhammad Fariz Sholihin

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

LANGKAH PERTAMA ADALAH MEMBUAT FILE TERLEBIH DAHULU


Langkah selanjut nya Membuat 6 Empty Views lagi 5 berfungsi sebagai halaman aplikasi nya
dan 1 activity lagi berfungsi untuk halaman menu cardview
Untuk langkah selanjutnya mengisi halaman activity Xml sebagai desain dan Kotlin Untuk
halaman Fungsi logic yang terhubung dengan masing masing XML nya

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

Berikut Kodingan Xml untuk bagian Aplikasi konversi mata uang


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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:orientation="vertical"
android:padding="16dp"
android:background="@drawable/warna2"
tools:context=".Uang">
<ImageView
android:layout_width="match_parent"
android:layout_height="150dp"
android:src="@drawable/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>

Berikut Kodingan Untuk logic Kotlin


package com.example.farizsholihin

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

class Uang : AppCompatActivity() {

override fun onCreate(savedInstanceState: Bundle?) {


super.onCreate(savedInstanceState)
setContentView(R.layout.activity_uang)

val currencies = arrayOf("USD", "EUR", "GBP", "JPY", "IDR")


val exchangeRates = mapOf(
"USD" to 1.0,
"EUR" to 0.85,
"GBP" to 0.75,
"JPY" to 110.0,
"IDR" to 14000.0
)

val fromCurrencySpinner: Spinner =


findViewById(R.id.fromCurrencySpinner)
val toCurrencySpinner: Spinner =
findViewById(R.id.toCurrencySpinner)
val amountEditText: EditText = findViewById(R.id.amountEditText)
val convertButton: Button = findViewById(R.id.convertButton)
val resultTextView: TextView = findViewById(R.id.resultTextView)

val adapter = ArrayAdapter(this,


android.R.layout.simple_spinner_item, currencies)

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.

Berikut kodingan XML Untuk Aplikasi penghitung kebutuhan kalori harian


<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/warna2"
android:padding="16dp">

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

class Kalori : AppCompatActivity() {

@SuppressLint("MissingInflatedId")
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_kalori)

val usiaEditText: EditText = findViewById(R.id.usiaEditText)


val beratBadanEditText: EditText =
findViewById(R.id.beratBadanEditText)
val tinggiBadanEditText: EditText =
findViewById(R.id.tinggiBadanEditText)
val jenisKelaminSpinner: Spinner =
findViewById(R.id.jenisKelaminSpinner)
val tingkatAktivitasSpinner: Spinner =
findViewById(R.id.tingkatAktivitasSpinner)
val hitungButton: Button = findViewById(R.id.hitungButton)
val hasilTextView: TextView = findViewById(R.id.hasilTextView)

val opsiJenisKelamin = arrayOf("Pria", "Wanita")


val opsiTingkatAktivitas = arrayOf(
"Tidak aktif (sedikit atau tidak berolahraga)",
"Sedikit aktif (olahraga ringan/senam 1-3 hari/minggu)",
"Cukup aktif (olahraga sedang 3-5 hari/minggu)",
"Sangat aktif (olahraga keras 6-7 hari/minggu)",
"Ekstra aktif (olahraga sangat keras & pekerjaan fisik atau
latihan 2x sehari)"
)

val jenisKelaminAdapter = ArrayAdapter(this,


android.R.layout.simple_spinner_item, opsiJenisKelamin)

jenisKelaminAdapter.setDropDownViewResource(android.R.layout.simple_spinner
_dropdown_item)
jenisKelaminSpinner.adapter = jenisKelaminAdapter

val tingkatAktivitasAdapter = ArrayAdapter(this,


android.R.layout.simple_spinner_item, opsiTingkatAktivitas)

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

if (usia != null && beratBadan != null && tinggiBadan != null)


{
val bmr = if (jenisKelamin == "Pria") {
88.362 + (13.397 * beratBadan) + (4.799 * tinggiBadan)
- (5.677 * usia)
} else {
447.593 + (9.247 * beratBadan) + (3.098 * tinggiBadan)
- (4.330 * usia)
}

val faktorAktivitas = when (tingkatAktivitas) {


0 -> 1.2
1 -> 1.375
2 -> 1.55
3 -> 1.725
else -> 1.9
}

val kaloriHarian = bmr * faktorAktivitas


hasilTextView.text = String.format("Kebutuhan kalori harian
Anda: %.2f kalori", kaloriHarian)
} else {
hasilTextView.text = "Harap masukkan data yang valid"
}
}
}
}
13.Aplikasi Kalkulator Luas dan Keliling Bangun Datar :Menghitung luas dan keliling
berbagai bangun datar seperti persegi, persegi panjang, lingkaran, dan segitiga.

Berikut Kodingan XML Aplikasi kalkulator luas dan keliling


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="@drawable/warna2"
android:padding="16dp">
<ImageView
android:layout_width="match_parent"
android:layout_height="150dp"
android:src="@drawable/luas"/>
<TextView
android:layout_width="match_parent"
android:layout_height="40dp"
android:text="Aplikasi Penghitung Luas Bangun Datar"
android:textColor="@color/black"
android:textAlignment="center"
android:textSize="20sp"/>
<Spinner
android:id="@+id/bentukSpinner"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="26dp" />

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

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.ArrayAdapter
import android.widget.Button
import android.widget.EditText
import android.widget.Spinner
import android.widget.TextView

class Luas : AppCompatActivity() {

@SuppressLint("MissingInflatedId")
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_luas)

val bentukSpinner: Spinner = findViewById(R.id.bentukSpinner)


val input1EditText: EditText = findViewById(R.id.input1EditText)
val input2EditText: EditText = findViewById(R.id.input2EditText)
val hitungButton: Button = findViewById(R.id.hitungButton)
val hasilTextView: TextView = findViewById(R.id.hasilTextView)

val bentukOptions = arrayOf("Persegi", "Persegi Panjang",


"Lingkaran", "Segitiga")
val bentukAdapter = ArrayAdapter(this,
android.R.layout.simple_spinner_item, bentukOptions)
bentukAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropd
own_item)
bentukSpinner.adapter = bentukAdapter

hitungButton.setOnClickListener {
val bentuk = bentukSpinner.selectedItem.toString()
val input1 = input1EditText.text.toString().toDoubleOrNull()
val input2 = input2EditText.text.toString().toDoubleOrNull()

if (input1 != null && (bentuk != "Lingkaran" && input2 != null


|| bentuk == "Lingkaran")) {
val (luas, keliling) = when (bentuk) {
"Persegi" -> {
val sisi = input1
val luas = sisi * sisi
val keliling = 4 * sisi
Pair(luas, keliling)
}
"Persegi Panjang" -> {
val panjang = input1
val lebar = input2!!
val luas = panjang * lebar
val keliling = 2 * (panjang + lebar)
Pair(luas, keliling)
}
"Lingkaran" -> {
val radius = input1
val luas = Math.PI * radius * radius
val keliling = 2 * Math.PI * radius
Pair(luas, keliling)
}
"Segitiga" -> {
val alas = input1
val tinggi = input2!!
val luas = 0.5 * alas * tinggi
val keliling = alas + tinggi + Math.sqrt(alas *
alas + tinggi * tinggi) // Siku-siku
Pair(luas, keliling)
}
else -> Pair(0.0, 0.0)
}
hasilTextView.text = "Luas: %.2f\nKeliling:
%.2f".format(luas, keliling)
} else {
hasilTextView.text = "Harap masukkan data yang valid"
}
}
}
}
16.Aplikasi Penghitung Rata-rata Nilai :Menghitung rata-rata nilai dari sejumlah nilai yang
dimasukkan.

Berikut Kodingan XML Untuk Aplikasi Penghitung rata-rata


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="@drawable/warna2"
android:padding="16dp">
<ImageView
android:layout_width="match_parent"
android:layout_height="150dp"
android:src="@drawable/ratarata"/>
<TextView
android:layout_width="match_parent"
android:layout_height="30dp"
android:text="Aplikasi Penghitung Rata Rata"
android:textColor="@color/black"
android:textSize="20sp"
android:textAlignment="center"/>

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

Berikut Kodingan untuk Kotlin nya


package com.example.farizsholihin

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

class RataRata : AppCompatActivity() {

@SuppressLint("MissingInflatedId")
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_rata_rata)

val nilaiEditText: EditText = findViewById(R.id.nilaiEditText)


val tambahButton: Button = findViewById(R.id.tambahButton)
val hitungButton: Button = findViewById(R.id.hitungButton)
val hasilTextView: TextView = findViewById(R.id.hasilTextView)

val nilaiList = mutableListOf<Double>()

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.

Berikut Kodingan xml untuk aplikasi penghitung bmi


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="@drawable/warna2"
android:padding="16dp">
<ImageView
android:layout_width="match_parent"
android:layout_height="150dp"
android:src="@drawable/bmi"/>
<TextView
android:layout_width="match_parent"
android:layout_height="30dp"
android:text="Aplikasi Penghitung Index Berat Badan"
android:textColor="@color/black"
android:textAlignment="center"
android:layout_marginBottom="20dp"
android:textSize="20sp"/>
<EditText
android:textColor="@color/black"
android:background="@drawable/bro"
android:id="@+id/beratBadanEditText"
android:layout_width="match_parent"
android:layout_height="50dp"
android:hint="Masukkan berat badan (kg)"
android:inputType="numberDecimal"
android:layout_marginTop="8dp" />

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

Berikut Logic Kotlin nya


package com.example.farizsholihin

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

class BMI : AppCompatActivity() {

@SuppressLint("MissingInflatedId")
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_bmi)

val beratBadanEditText: EditText =


findViewById(R.id.beratBadanEditText)
val tinggiBadanEditText: EditText =
findViewById(R.id.tinggiBadanEditText)
val hitungButton: Button = findViewById(R.id.hitungButton)
val hasilTextView: TextView = findViewById(R.id.hasilTextView)

hitungButton.setOnClickListener {
val beratBadan =
beratBadanEditText.text.toString().toDoubleOrNull()
val tinggiBadan =
tinggiBadanEditText.text.toString().toDoubleOrNull()

if (beratBadan != null && tinggiBadan != null) {


val tinggiBadanMeter = tinggiBadan / 100 // konversi tinggi
dari cm ke meter
val bmi = beratBadan / tinggiBadanMeter.pow(2)
val kategori = when {
bmi < 18.5 -> "Berat badan kurang"
bmi < 24.9 -> "Berat badan normal"
bmi < 29.9 -> "Berat badan berlebih"
else -> "Obesitas"
}
hasilTextView.text = "BMI: %.2f\nKategori: %s".format(bmi,
kategori)
} else {
hasilTextView.text = "Harap masukkan tinggi dan berat badan
yang valid"
}
}
}
}
Tampilan Login

Kodingan Xml Untuk Login


<?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/warna"
tools:context=".Login">

<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

class Login : AppCompatActivity() {

@SuppressLint("MissingInflatedId")
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_login)

val usernameEditText: EditText =


findViewById(R.id.editTextUsername)
val passwordEditText: EditText =
findViewById(R.id.editTextPassword)

val loginButton: Button = findViewById(R.id.buttonLogin)


loginButton.setOnClickListener {
val username = usernameEditText.text.toString()
val password = passwordEditText.text.toString()

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()
}
}
}

private fun validateUserAndPassword(username: String, password:


String): Boolean {
// Implementasi validasi yang lebih aman, misalnya dengan memeriksa
di server atau database
val validUsername = "fariz"
val validPassword = "fariz"
return username == validUsername && password == validPassword
}
}
Tampilan Menu Cardview

Kodingan Xml untuk cardview nya


<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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:id="@+id/HalamanCard"
tools:context=".Home">

<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">

<!-- CardView pertama -->


<androidx.cardview.widget.CardView
android:id="@+id/cardview1"
android:layout_width="170dp"
android:layout_height="190dp"
android:layout_row="0"
android:layout_column="0"
android:layout_margin="10dp"
app:cardCornerRadius="10dp"
app:cardElevation="8dp">

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

<!-- CardView kedua -->


<androidx.cardview.widget.CardView
android:id="@+id/cardview2"

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>

<!-- CardView ketiga -->


<androidx.cardview.widget.CardView
android:id="@+id/cardview3"

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>

<!-- CardView keempat -->


<androidx.cardview.widget.CardView
android:id="@+id/cardview4"

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>

<!-- CardView kelima (melintasi dua kolom) -->


<androidx.cardview.widget.CardView
android:id="@+id/cardview5"

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

class Home : AppCompatActivity() {


@SuppressLint("MissingInflatedId")
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_home)

// Reference to the CardViews


val cardView1 = findViewById<CardView>(R.id.cardview1)
val cardView2 = findViewById<CardView>(R.id.cardview2)
val cardView3 = findViewById<CardView>(R.id.cardview3)
val cardView4 = findViewById<CardView>(R.id.cardview4)
val cardView5 = findViewById<CardView>(R.id.cardview5)

// Set click listeners for each CardView


cardView1.setOnClickListener {
val intent = Intent(this, Uang::class.java)
startActivity(intent)
}

// Repeat for other CardViews, assuming you have different


activities to navigate to
cardView2.setOnClickListener {
val intent = Intent(this, Kalori::class.java)
startActivity(intent)

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)

}
}
}

You might also like