Download as pdf or txt
Download as pdf or txt
You are on page 1of 12

LABORATORIUM PEMBELAJARAN ILMU KOMPUTER

FAKULTAS ILMU KOMPUTER


UNIVERSITAS BRAWIJAYA
BAB : Event
NAMA : MUHAMMAD SALAHUDDIN FERDIAN
NIM : 215150209111002
TANGGAL : 20/10/2021
ASISTEN : - FAVIAN PRATISTA WIDAJAT
- IVAN LIANTO

TUGAS 1
A. Soal
Buatlah sebuah aplikasi yang berisi minimal 2 activity yang saling tersambung
menggunakan explicit intent bertemakan cara menghitung luas/volume dari
sebuah bangun datar/bangun ruang. Aplikasi tersebut juga harus sudah
menerapkan shared preference ketika devicenya di rotate.

B. Source Code

1 Main Activity
package com.example.teskalkulator

import android.content.Context
import android.content.Intent
import android.content.SharedPreferences
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.Button
import android.widget.EditText
import android.widget.TextView
import
kotlinx.android.synthetic.main.activity_main.*

class MainActivity : AppCompatActivity() {


private lateinit var etNumberOne: EditText
private lateinit var etNumberTwo: EditText
private lateinit var tvResult: TextView
private lateinit var container:
SharedPreferences
private var nilai = 0.0f
private val SHARED = "KeyShared"
private val RESULT = "ResultCac"
private val ETONE = "EtOne"
private val ETTWO = "EtTwo"
override fun onCreate(savedInstanceState:
Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
etNumberOne =
findViewById(R.id.et_number_one)
etNumberTwo =
findViewById(R.id.et_number_two)
tvResult = findViewById(R.id.tv_result)
container = getSharedPreferences(SHARED,
Context.MODE_PRIVATE)
val btnPlus =
findViewById<Button>(R.id.btn_plus)
val btnMin =
findViewById<Button>(R.id.btn_min)
val btnMul =
findViewById<Button>(R.id.btn_mul)
val btnDiv =
findViewById<Button>(R.id.btn_div)
btnPlus.setOnClickListener {
nilai =

etNumberOne.text.toString().toFloat() +

etNumberTwo.text.toString().toFloat()
tvResult.text = nilai.toString()
val editor = container.edit()
editor.putFloat(RESULT, nilai)
editor.putString(ETONE,
etNumberOne.text.toString())
editor.putString(ETTWO,
etNumberTwo.text.toString())
editor.apply()
}
btnMin.setOnClickListener {
nilai =

etNumberOne.text.toString().toFloat() -

etNumberTwo.text.toString().toFloat()
tvResult.text = nilai.toString()
val editor = container.edit()
editor.putFloat(RESULT, nilai)
editor.putString(ETONE,
etNumberOne.text.toString())
editor.putString(ETTWO,
etNumberTwo.text.toString())
editor.apply()
}
btnMul.setOnClickListener {
nilai =

etNumberOne.text.toString().toFloat() *

etNumberTwo.text.toString().toFloat()
tvResult.text = nilai.toString()
val editor = container.edit()
editor.putFloat(RESULT, nilai)
editor.putString(ETONE,
etNumberOne.text.toString())
editor.putString(ETTWO,
etNumberTwo.text.toString())
editor.apply()
}
btnDiv.setOnClickListener {
nilai =

etNumberOne.text.toString().toFloat() /

etNumberTwo.text.toString().toFloat()
tvResult.text = nilai.toString()
val editor = container.edit()
editor.putFloat(RESULT, nilai)
editor.putString(ETONE,
etNumberOne.text.toString())
editor.putString(ETTWO,
etNumberTwo.text.toString())
editor.apply()
}
val getResultCalc =
container.getFloat(RESULT, 0.0f)
val getResultEtONE =
container.getString(ETONE, "")
val getResultEtTwo =
container.getString(ETTWO, "")
tvResult.text = getResultCalc.toString()
etNumberOne.setText(getResultEtONE)
etNumberTwo.setText(getResultEtTwo)

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

2 MainActivity2
package com.example.teskalkulator

import android.content.Context
import android.content.SharedPreferences
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.Button
import android.widget.EditText
import android.widget.TextView

class MainActivity2 : AppCompatActivity() {


private lateinit var etNumberthree: EditText
//private lateinit var etNumberfour: EditText
private lateinit var tvResult: TextView
private lateinit var container2:
SharedPreferences
private var nilai = 0.0f
private val SHARED = "KeyShared"
private val HASIL = "HasilPer"
private val ETTHREE = "EtThree"
//private val ETFOUR = "EtFour"
override fun onCreate(savedInstanceState:
Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main2)
etNumberthree =
findViewById(R.id.et_number_three)
//etNumberfour =
findViewById(R.id.et_number_four)
tvResult = findViewById(R.id.tv_hasil)
container2 = getSharedPreferences(SHARED,
Context.MODE_PRIVATE)
val btnMul =
findViewById<Button>(R.id.btn_persegi)
btnMul.setOnClickListener {
nilai =

etNumberthree.text.toString().toFloat() *
etNumberthree.text.toString().toFloat()
tvResult.text = nilai.toString()
val editor = container2.edit()
editor.putFloat(HASIL, nilai)
editor.putString(ETTHREE,
etNumberthree.text.toString())
//editor.putString(ETFOUR,
// etNumberfour.text.toString())
editor.apply()
}
val getResultCalc =
container2.getFloat(HASIL, 0.0f)
val getResultEtONE =
container2.getString(ETTHREE, "")
// val getResultEtTwo =
container2.getString(ETFOUR, "")
tvResult.text = getResultCalc.toString()
etNumberthree.setText(getResultEtONE)
//etNumberfour.setText(getResultEtTwo)

}
}

3 ActivityMain.xml
<?xml version="1.0" encoding="utf-8"?>
<ScrollView

xmlns:android="http://schemas.android.com/apk/res/a
ndroid"
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:padding="16dp"
tools:context=".MainActivity">

<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<EditText
android:id="@+id/et_number_one"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:inputType="number"
android:textSize="50sp"

app:layout_constraintEnd_toStartOf="@+id/et_number_
two"
app:layout_constraintHorizontal_bias="0.5"

app:layout_constraintStart_toStartOf="parent"

app:layout_constraintTop_toTopOf="parent" />
<EditText
android:id="@+id/et_number_two"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:inputType="number"
android:textSize="50sp"

app:layout_constraintEnd_toEndOf="parent"

app:layout_constraintHorizontal_bias="0.5"

app:layout_constraintStart_toEndOf="@+id/et_number_
one"

app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/tv_result"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Result"
android:textSize="50sp"

app:layout_constraintEnd_toEndOf="parent"

app:layout_constraintHorizontal_bias="0.5"

app:layout_constraintStart_toStartOf="parent"

app:layout_constraintTop_toBottomOf="@+id/et_number
_one" />
<Button
android:id="@+id/btn_plus"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="8dp"
android:text="+"
android:textSize="50sp"

app:layout_constraintEnd_toStartOf="@+id/btn_min"

app:layout_constraintHorizontal_bias="0.5"

app:layout_constraintStart_toStartOf="parent"

app:layout_constraintTop_toBottomOf="@+id/tv_result
" />
<Button
android:id="@+id/btn_min"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:text="-"
android:textSize="50sp"

app:layout_constraintEnd_toEndOf="parent"

app:layout_constraintHorizontal_bias="0.5"

app:layout_constraintStart_toEndOf="@+id/btn_plus"

app:layout_constraintTop_toBottomOf="@+id/tv_result
" />
<Button
android:id="@+id/btn_mul"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="8dp"
android:text="*"
android:textSize="50sp"

app:layout_constraintEnd_toStartOf="@+id/btn_div"

app:layout_constraintHorizontal_bias="0.5"

app:layout_constraintStart_toStartOf="parent"

app:layout_constraintTop_toBottomOf="@+id/btn_plus"
/>
<Button
android:id="@+id/btn_div"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:text="/"
android:textSize="50sp"

app:layout_constraintEnd_toEndOf="parent"

app:layout_constraintHorizontal_bias="0.5"

app:layout_constraintStart_toEndOf="@+id/btn_mul"

app:layout_constraintTop_toBottomOf="@+id/btn_plus"
/>

<Button
android:id="@+id/luasbtn"
android:layout_width="match_parent"
android:layout_height="0dp"
android:text="Luas"
android:textSize="50sp"

app:layout_constraintEnd_toEndOf="parent"

app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintTop_toBottomOf="@+id/btn_mul"
/>

</androidx.constraintlayout.widget.ConstraintLayout
>
</ScrollView>

4 Activity_Main2.xml
<?xml version="1.0" encoding="utf-8"?>
<ScrollView

xmlns:android="http://schemas.android.com/apk/res/a
ndroid"
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:padding="16dp"
tools:context=".MainActivity">

<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<EditText
android:id="@+id/et_number_three"
android:layout_width="260dp"
android:layout_height="wrap_content"
android:inputType="number"
android:textSize="50sp"

app:layout_constraintEnd_toEndOf="parent"

app:layout_constraintHorizontal_bias="0.5"

app:layout_constraintStart_toStartOf="parent"

app:layout_constraintTop_toTopOf="parent" />

<TextView
android:id="@+id/tv_hasil"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Result"
android:textSize="50sp"

app:layout_constraintEnd_toEndOf="parent"

app:layout_constraintHorizontal_bias="0.5"

app:layout_constraintStart_toStartOf="parent"

app:layout_constraintTop_toBottomOf="@+id/et_number
_three" />
<Button
android:id="@+id/btn_persegi"
android:layout_width="match_parent"
android:layout_height="0dp"
android:text="Hitung"
android:textSize="50sp"

app:layout_constraintEnd_toEndOf="parent"

app:layout_constraintHorizontal_bias="0.5"

app:layout_constraintTop_toBottomOf="@+id/tv_hasil"
/>

</androidx.constraintlayout.widget.ConstraintLayout
>
</ScrollView>

5 AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest
xmlns:android="http://schemas.android.com/apk/res/a
ndroid"
package="com.example.teskalkulator">

<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"

android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme.Teskalkulator">
<activity
android:name=".MainActivity2"
android:exported="true" />
<activity
android:name=".MainActivity"
android:exported="true">
<intent-filter>
<action
android:name="android.intent.action.MAIN" />

<category
android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>

</manifest>

C. Screenshot
1. Tampilan pada sistem android
D. Penjelasan
Terdapat dua Activity yang saling terhubung, pada activity pertama bisa
melakukan perhitungan penjumlahann pengurangan, perkalian dan pembagian,
activity kedua untuk perhitungan luas sisi persegi.

You might also like