Professional Documents
Culture Documents
4_215150209111002
4_215150209111002
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.*
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
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.