Anda di halaman 1dari 12

Nama : Akma Ghani Aidyn

NIM : L0122011

Analisis Kode

Jadi pada aplikasi ini terdapat 4 file, yaitu MainActivity.kt (Halaman utama),
ProfileActivity(Halaman profile/kedua), beserta layoutnya (activity_main.xml dan
activity_profile.xml)

MainActivity.kt
package com.pab.profileapp

import android.content.Intent
import android.net.Uri
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.view.View

class MainActivity : AppCompatActivity() {


override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
}

fun goToProfile(view: View) {


val intent = Intent(this, ProfileActivity::class.java)
intent.putExtra("NIM", "L0122011")
intent.putExtra("Nama", "Akma Ghani Aidyn")
intent.putExtra("Jurusan", "Informatika")
intent.putExtra("Angkatan", "2022")
intent.putExtra("Deskripsi", "Hanya mas mas biasa yang sedang
belajar koding.")
startActivity(intent)
}

fun goToGitHub(view: View) {


val url = "https://github.com/mystlicious"
val intent = Intent(Intent.ACTION_VIEW)
intent.data = Uri.parse(url)
startActivity(intent)
}
}

MainActivity.kt adalah file Kotlin yang bertanggung jawab untuk mengontrol tampilan
utama aplikasi. Ketika aktivitas dimulai, metode onCreate() dipanggil untuk menetapkan tata
letak dari file XML yang sesuai, yaitu activity_main.xml. Dalam metode goToProfile(),
aplikasi membuat Intent untuk membuka halaman profil, mengirimkan data tambahan seperti
NIM, Nama, Jurusan, Angkatan, dan Deskripsi, lalu memulai aktivitas baru. Metode
goToGitHub() digunakan untuk membuka halaman GitHub pengguna ketika tombol "Go to
My GitHub" ditekan.

1. Package dan Import:


• Mengimpor kelas-kelas yang diperlukan untuk aktivitas dan Intent.

2. Class MainActivity:

• Mendefinisikan kelas MainActivity yang merupakan turunan dari


AppCompatActivity.

3. onCreate() Function:

• Dipanggil ketika aktivitas dibuat.

• Menetapkan tata letak dari activity_main.xml ke aktivitas.

• Menginisialisasi komponen-komponen antarmuka pengguna.

4. goToProfile() Function:

• Dipanggil saat tombol "Go to Profile" ditekan.

• Membuat Intent untuk membuka ProfileActivity.

• Menyertakan data tambahan seperti NIM, Nama, Jurusan, Angkatan, dan


Deskripsi ke Intent.

• Memulai aktivitas baru dengan Intent yang telah dibuat.

5. goToGitHub() Function:

• Dipanggil saat tombol "Go to My GitHub" ditekan.

• Membuat Intent untuk membuka halaman GitHub pengguna.

• Memulai aktivitas baru dengan Intent untuk membuka URL yang telah
ditentukan.

activity_main.xml
<?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"
tools:context=".MainActivity">

<!-- Title TextView -->


<TextView
android:id="@+id/judulAplikasi"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_marginTop="50dp"
android:text="Profile App"
android:textSize="24sp"
android:textStyle="bold" />

<!-- ImageView -->


<ImageView
android:id="@+id/image1"
android:layout_width="297dp"
android:layout_height="186dp"
android:layout_below="@id/judulAplikasi"
android:layout_centerHorizontal="true"
android:layout_marginTop="20dp"
android:src="@drawable/jameshunt" />

<!-- Description TextView -->


<TextView
android:id="@+id/sambutan"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/image1"
android:layout_centerHorizontal="true"
android:layout_marginTop="20dp"
android:layout_marginLeft="60dp"
android:layout_marginRight="60dp"
android:textAlignment="center"
android:text="About this app"
android:textStyle="bold"
android:textSize="20sp" />

<!-- Description TextView -->


<TextView
android:id="@+id/isiSambutan"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/sambutan"
android:layout_centerHorizontal="true"
android:layout_marginTop="10dp"
android:layout_marginLeft="60dp"
android:layout_marginRight="60dp"
android:textAlignment="center"
android:text="Selamat datang di Profile App! \nDi aplikasi ini,
Anda dapat dengan
mudah mengakses dan berbagi informasi tentang profil user,
seperti NIM, nama lengkap, jurusan, angkatan,
maupun deskripsi diri user. Anda juga dapat menuju ke akun GitHub
user yang
terdapat pada tombol dibawah."
android:textSize="16sp" />

<!-- Buttons -->


<Button
android:id="@+id/profileButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/isiSambutan"
android:layout_centerHorizontal="true"
android:layout_marginTop="20dp"
android:minWidth="280dp"
android:onClick="goToProfile"
android:text="Go to Profile" />

<Button
android:id="@+id/githubButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/profileButton"
android:layout_centerHorizontal="true"
android:layout_marginTop="10dp"
android:minWidth="280dp"
android:onClick="goToGitHub"
android:text="Go to My GitHub" />

</RelativeLayout>

activity_main.xml adalah file XML yang mendefinisikan tampilan utama aplikasi.


Dalam layout ini, terdapat judul aplikasi, gambar, deskripsi singkat tentang aplikasi, dan dua
tombol navigasi, yaitu "Go to Profile" dan "Go to My GitHub". Ketika tombol "Go to Profile"
ditekan, metode goToProfile() dipanggil dalam MainActivity.kt untuk membuka halaman profil.
Ketika tombol "Go to My GitHub" ditekan, metode goToGitHub() dipanggil untuk membuka
halaman GitHub pengguna.

1. RelativeLayout:

• Merupakan tata letak utama yang digunakan untuk menempatkan elemen-


elemen tampilan.

2. Title TextView (judulAplikasi):

• Menampilkan judul aplikasi di tengah layar.

3. ImageView (image1):

• Menampilkan gambar di bawah judul aplikasi.

4. Description TextView (sambutan dan isiSambutan):

• Menampilkan deskripsi singkat tentang aplikasi.

5. Buttons (profileButton dan githubButton):

• Tombol untuk navigasi ke profil dan halaman GitHub pengguna.

ProfileActivity.kt
package com.pab.profileapp

import android.content.Intent
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.view.View
import android.widget.TextView

class ProfileActivity : AppCompatActivity() {


override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_profile)

val extras = intent.extras


if (extras != null) {
val nim = extras.getString("NIM")
val nama = extras.getString("Nama")
val jurusan = extras.getString("Jurusan")
val angkatan = extras.getString("Angkatan")
val deskripsi = extras.getString("Deskripsi")

val nimTextView: TextView = findViewById(R.id.nimTextView)


nimTextView.text = nim

val namaTextView: TextView = findViewById(R.id.namaTextView)


namaTextView.text = nama

val jurusanTextView: TextView =


findViewById(R.id.jurusanTextView)
jurusanTextView.text = "$jurusan, $angkatan"

val deskripsiTextView: TextView =


findViewById(R.id.isiDeskripsiDiri)
deskripsiTextView.text = deskripsi
}
}

fun shareProfile(view: View) {


val shareIntent = Intent(Intent.ACTION_SEND)
shareIntent.type = "text/plain"
val message = """
NIM: ${intent.getStringExtra("NIM")}
Nama: ${intent.getStringExtra("Nama")}
Jurusan: ${intent.getStringExtra("Jurusan")}
Angkatan: ${intent.getStringExtra("Angkatan")}
Deskripsi: ${intent.getStringExtra("Deskripsi")}
""".trimIndent()
shareIntent.putExtra(Intent.EXTRA_TEXT, message)
startActivity(Intent.createChooser(shareIntent, "Bagikan via"))
}
}

ProfileActivity.kt adalah file Kotlin yang mengontrol tampilan profil pengguna. Ketika
aktivitas dimulai, metode onCreate() dipanggil untuk menetapkan tata letak dari file XML yang
sesuai, yaitu activity_profile.xml, dan menampilkan informasi profil pengguna yang diterima
dari MainActivity. Tombol "Share" memanggil metode shareProfile() untuk berbagi profil
melalui aplikasi lain.

1. Package dan Import:

• Mengimpor kelas-kelas yang diperlukan untuk aktivitas, Intent, dan TextView.

2. Class ProfileActivity:

• Mendefinisikan kelas ProfileActivity yang merupakan turunan dari


AppCompatActivity.

3. onCreate() Function:

• Dipanggil ketika aktivitas dibuat.

• Menetapkan tata letak dari activity_profile.xml ke aktivitas.

• Mengambil data tambahan yang disertakan dalam Intent.

4. shareProfile() Function:

• Dipanggil saat tombol "Share" ditekan.


• Membuat Intent untuk berbagi profil melalui aplikasi lain.

• Memulai aktivitas baru dengan Intent yang telah dibuat.

activity_profile.xml
<?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"
xmlns:app="http://schemas.android.com/apk/res-auto"
tools:context=".ProfileActivity">

<androidx.cardview.widget.CardView
android:id="@+id/profileImage"
android:layout_width="150dp"
android:layout_height="150dp"
app:cardCornerRadius="75dp"
android:layout_centerHorizontal="true"
android:layout_marginTop="50dp">

<ImageView
android:scaleType="centerCrop"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:src="@drawable/jameshunt" />
</androidx.cardview.widget.CardView>

<TextView
android:id="@+id/nimTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/profileImage"
android:layout_centerHorizontal="true"
android:layout_marginTop="30dp"
android:textStyle="bold"
android:textSize="16sp"
android:text="NIM" />

<TextView
android:id="@+id/namaTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/nimTextView"
android:layout_centerHorizontal="true"
android:layout_marginTop="10dp"
android:textStyle="bold"
android:textSize="16sp"
android:text="Nama" />

<TextView
android:id="@+id/jurusanTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/namaTextView"
android:layout_centerHorizontal="true"
android:layout_marginTop="10dp"
android:textStyle="bold"
android:textSize="16sp"
android:text="Jurusan, Angkatan" />

<TextView
android:id="@+id/deskripsiDiri"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/jurusanTextView"
android:layout_centerHorizontal="true"
android:layout_marginTop="20dp"
android:textStyle="bold"
android:textSize="16sp"
android:text="Deskripsi Diri" />

<TextView
android:id="@+id/isiDeskripsiDiri"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/deskripsiDiri"
android:layout_centerHorizontal="true"
android:layout_marginTop="10dp"
android:layout_marginLeft="60dp"
android:layout_marginRight="60dp"
android:textAlignment="center"
android:textSize="16sp" />

<Button
android:id="@+id/shareButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/isiDeskripsiDiri"
android:layout_centerHorizontal="true"
android:layout_marginTop="20dp"
android:minWidth="280dp"
android:onClick="shareProfile"
android:text="Share" />

</RelativeLayout>

activity_profile.xml adalah file XML yang mendefinisikan tampilan profil pengguna.


Dalam layout ini, terdapat gambar profil dalam CardView, diikuti oleh informasi NIM, Nama,
Jurusan, Angkatan, dan Deskripsi Diri pengguna. Terdapat juga tombol "Share" untuk berbagi
profil. Saat tombol "Share" ditekan, aplikasi akan memanggil metode shareProfile() dalam
ProfileActivity.kt.

1. RelativeLayout:

• Merupakan tata letak utama yang digunakan untuk menempatkan elemen-


elemen tampilan.

2. CardView (profileImage):

• Menampilkan gambar profil dalam lingkaran.

3. TextView (nimTextView, namaTextView, jurusanTextView, deskripsiDiri,


isiDeskripsiDiri):
• Menampilkan informasi profil pengguna.

4. Button (shareButton):

• Tombol untuk berbagi profil melalui aplikasi lain.

Alur Jalannya Aplikasi

1. Saat aplikasi dimulai, MainActivity dipanggil dan menetapkan tata letak utama dari
activity_main.xml.

2. Pengguna dapat memilih untuk menuju halaman profil dengan menekan tombol "Go
to Profile" atau menuju halaman GitHub dengan menekan tombol "Go to My GitHub".

3. Jika tombol "Go to Profile" ditekan, metode goToProfile() dipanggil untuk membuka
ProfileActivity.
4. ProfileActivity menampilkan profil pengguna dengan informasi yang diterima dari
MainActivity.

5. Pengguna dapat memilih untuk berbagi profil dengan menekan tombol "Share", yang
memanggil metode shareProfile() untuk memulai aktivitas berbagi profil.
6. Pengguna dapat kembali ke MainActivity dengan menekan tombol kembali di
perangkat mereka.
7. Jika tombol “Go to My GitHub” ditekan, maka pengguna akan di arahkan ke laman
GitHub user.
Kesimpulan:

• MainActivity bertanggung jawab untuk mengelola navigasi dan memulai aktivitas


ProfileActivity atau membuka halaman GitHub pengguna.

• ProfileActivity bertanggung jawab untuk menampilkan informasi profil pengguna dan


memberikan opsi untuk berbagi profil.

• Setiap file layout XML (activity_main.xml dan activity_profile.xml) mendefinisikan tata


letak antarmuka pengguna untuk MainActivity dan ProfileActivity secara berturut-turut.

Anda mungkin juga menyukai