LESSON 4
Dialog dan Menu
Tujuan:
1. Mahasiswa dapat memahami konsep dialog dan menu pada kotlin.
2. Mahasiswa dapat memahami penerapan dialog dan menu untuk pembuatan
aplikasi mobile.
Tugas Pendahuluan:
1. Apa yang anda ketahui tentang dialog dan menu ?
2. Ada berapa jenis dialog pada Android ?
DASAR TEORI
4.1. Dialog
Dialog adalah komponen android yang berguna untuk memberikan informasi
kepada pengguna serta dapat digunakan untuk memberikan pilihan kepada
pengguna untuk melakukan suatu perintah di android.
Dialog dalam android dibagi menjadi empat jenis, yaitu:
• Alert Dialog
Dialog yang digunakan untuk peringatan atau informasi untuk pengguna.
• Confirmation Dialog
Dialog yang mengharuskan pengguna untuk secara eksplisit
mengkonfirmasi pilihan mereka sebelum opsi dilakukan.
o Multi Choice Dialog
Dialog yang digunakan pengguna untuk memilih lebih dari satu item
dalam sebuah dialog
4.2. Menu
Option menu Android adalah kumpulan item menu untuk suatu aktivitas.
Option menu memungkinkan penempatan tindakan yang berdampak secara global
pada aplikasi. Option menu biasanya sering ditampilkan pada bagian sisi kanan atas
dengan icon tiga titik. Ketika icon tersebut di klik maka akan muncul beberapa
menu.
Gambar 6. Menu
KEGIATAN PRAKTIKUM
Praktek 4.1
• Buatlah project dengan nama “Lesson4_dialog_nim_kelas”
• Pada activity_main.xml , buatlah layout / ketikkan kode berikut:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
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:gravity="center"
android:orientation="vertical"
tools:context=".MainActivity">
<Button
android:id="@+id/btnAlert"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="klikAlert"
android:text="Klik" />
</LinearLayout>
import android.app.AlertDialog
import android.content.DialogInterface
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.view.View
import android.widget.Toast
• Tekan Shift+F10 untuk menjalankan, jika tidak ada masalah berikut hasilnya:
Praktek 3.2
• Masih di project “Lesson4_dialog_nim_kelas”
• Tambahkan Empty Activity dengan nama activity “pilihanganda” dan layout
“activity_pilihanganda.xml”
• Pada activity_ pilihanganda.xml , buatlah layout / ketikkan kode berikut:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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:gravity="center"
android:orientation="vertical"
tools:context=".pilihanganda">
<Button
android:id="@+id/btnGanda"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="klikGanda"
android:text="Klik" />
</LinearLayout>
import android.app.AlertDialog
import android.content.DialogInterface
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.util.Log
import android.view.View
import android.widget.Toast
import java.util.*
AlertDialog.Builder(this)
.setTitle("Mau pesan apa ?")
.setMultiChoiceItems(
daftarPilihanGanda, statuspilihan
){dialog, i, isChecked ->
Log.d("MainActivity", "cek pilihan " + i);
}
.setPositiveButton("OK", DialogInterface.OnClickListener
{dialog, i ->
// Do something when click positive button
for (i in statuspilihan.indices) {
val checked = statuspilihan[i]
if (checked) {
Toast.makeText(this, "anda memesan " +
yangDipilih[i], Toast.LENGTH_SHORT).show()
}
}
})
.setNegativeButton("Batal", null)
.show()
}
}
• Tekan Shift+F10 untuk menjalankan, jika tidak ada masalah berikut hasilnya:
Praktek 3.3
• Masih di project “Lesson4_dialog_nim_kelas”
• Tambahkan Empty Activity dengan nama activity “pilihantunggal” dan
layout “activity_ pilihantunggal.xml”
• Pada activity_ pilihantunggal.xml , buatlah layout / ketikkan kode berikut:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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:gravity="center"
android:orientation="vertical"
tools:context=".pilihantunggal">
<Button
android:id="@+id/btnTunggal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="klikTunggal"
android:text="Klik" />
</LinearLayout>
import android.app.AlertDialog
import android.content.DialogInterface
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.util.Log
import android.view.View
import android.widget.Toast
import java.util.*
AlertDialog.Builder(this)
.setTitle("Mau pesan apa ?")
.setSingleChoiceItems(
daftarPilihanTunggal, statuspilihan
) { dialog, i ->
}
.setPositiveButton("OK", DialogInterface.OnClickListener {
dialog, i ->
val posisi = (dialog as
AlertDialog).listView.checkedItemPosition
// if selected, then get item text
if (posisi !=-1){
val yangDipilih = daftarPilihanTunggal[posisi]
Toast.makeText(this, "anda memesan " + yangDipilih,
Toast.LENGTH_SHORT).show()
}
})
.setNegativeButton("Batal", null)
.show()
}
}
• Tekan Shift+F10 untuk menjalankan, jika tidak ada masalah berikut hasilnya:
Praktek 3.4
• Masih di project “Lesson4_dialog_nim_kelas”
• Tambahkan Empty Activity dengan nama activity “pilihantanggal” dan layout
“activity_ pilihantanggal.xml”
• Pada activity_ pilihantanggal.xml , buatlah layout / ketikkan kode berikut:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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:gravity="center"
android:orientation="vertical"
tools:context=".pilihantanggal">
<Button
android:id="@+id/btnTanggal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="klikTanggal"
android:text="Klik" />
</LinearLayout>
import android.app.DatePickerDialog
import android.os.Bundle
import android.util.Log
import android.view.View
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
import java.text.DateFormat
import java.util.*
DateFormat.getDateInstance(DateFormat.MEDIUM).format(mCalendar.getTime()
)
Toast.makeText(this, "tanggal yang dipilih " + date,
Toast.LENGTH_LONG).show()
},
mCalendar.get(Calendar.YEAR),
mCalendar.get(Calendar.MONTH),
mCalendar.get(Calendar.DAY_OF_MONTH)
)
datePickerDialog.show()
}
}
• Tekan Shift+F10 untuk menjalankan, jika tidak ada masalah berikut hasilnya:
Praktek 3.5
• Masih di project “Lesson4_dialog_nim_kelas”
• Tambahkan Empty Activity dengan nama activity “pilihanjam” dan layout
“activity_ pilihanjam.xml”
• Pada activity_ pilihanjam.xml , buatlah layout / ketikkan kode berikut:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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:gravity="center"
android:orientation="vertical"
tools:context=".pilihanjam">
<Button
android:id="@+id/btnJam"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="klikJam"
android:text="Klik" />
</LinearLayout>
import android.app.TimePickerDialog
import android.os.Bundle
import android.view.View
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
import java.text.DateFormat
import java.util.*
• Tekan Shift+F10 untuk menjalankan, jika tidak ada masalah berikut hasilnya:
Praktek 3.5
• Buatlah project dengan nama “Lesson4_menu_nim_kelas”
• Pada activity_ main.xml , buatlah layout / ketikkan kode berikut:
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
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"
tools:context=".MainActivity">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
import android.content.Intent
import android.os.Bundle
import android.view.Menu
import android.view.MenuItem
import androidx.appcompat.app.AppCompatActivity
</androidx.constraintlayout.widget.ConstraintLayout>
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
</androidx.constraintlayout.widget.ConstraintLayout>
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
</androidx.constraintlayout.widget.ConstraintLayout>
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
<item
android:id="@+id/setting"
android:title="Setting"
app:showAsAction="never" />
<item
android:id="@+id/help"
android:title="Help"
app:showAsAction="never"/>
</menu>
• Tekan Shift+F10 untuk menjalankan, jika tidak ada masalah berikut hasilnya: