PENDAHULUAN
2.1 Layout
Dalam pembuatan sebuah interface di android, diperlukan beberapa elemen
penting. Diantaranya terdapat sebuah elemen dasar, yakni layout yang merupakan
arsitektur user interface dalam „activity‟. Layout pada android berbasis XML
(Extensible Markup Language), merupakan sebuah spesifikasi dari hubungan
antar widget, di mana container dijelaskan dalam format XML. Layout digunakan
pada sistem android untuk menampilkan user interface di dalam device yang
berbeda-beda. Setiap activity yang telah dibuat juga termasuk file XML layout
yang menggunakan RelativeLayoutcomponent. File XML layout merupakan
sebuah template yang nantinya akan menjadi gambaran terkait bagaimana bentuk
tampilan layar yang telah dibuat.
2.2 Widget
Widget atau basic widget merupakan elemen antarmuka pada android yang
dapat disematkan di berbagai bagian halaman aplikasi , seperti layar utama. Jenis
widget meliputi tombol, teks, gambar, dan lainnya, dengan kemampuan
penyesuaian ukuran dan tata letak menyesuaikan pada perangkat dan versi
android. Pengaturan widget dapat dilakukan melalui file XML dan
diimplementasikan menggunakan class AppWidgetProvider yang didefinisikan
dalam file “AndroidManifest.XML”.
2.2.1 Label
Widget antara lain adalah label, sebagaimana yang dimaksud dalam
android seperti TextView. Seperti kebanyakan GUI (Graphical User
Interface) toolkit, label merupakan potongan teks yang tidak dapat diedit
langsung oleh user. Biasanya digunakan untuk mengidentifikasi widget yang
berdekatan seperti, “Name:” merupakan label dari sebuah field di mana akan
diisi sebuah nama.
2.2.2 Button
Widget button adalah widget yang dapat memiliki action click pada
tampilannya. Elemen ini merupakan elemen antarmuka pengguna yang
ditempatkan di dalam widget untuk memberikan fungsionalitas tambahan
pada halaman aplikasi. Penggunaan widget button pada android dapat
melibatkan pembuatan widget dengan tombol yang, ketika ditekan akan
membuka halaman selanjutnya pada aplikasi atau dapat memicu tindakan
khusus lainnya sesuai dengan kebutuhan aplikasi.
2.3.2 Spinner
Spinner pada android adalah sebuah tampilan yang mirip sama
dengan menu dropdown yang digunakan untuk memilih satu opsi dari daftar
opsi. Spinner menyediakan cara mudah untuk memilih satu item dari daftar
item dan menampilkan daftar dropdown dari semua nilai ketika di-click.
Spinner dapat disesuaikan dengan berbagai properti dan gaya, memungkinkan
pengembang untuk mengintegrasikannya dengan desain keseluruhan aplikasi
android.
BAB IV
IMPLEMENTASI
Android:textAppearance="?Android:attr/textAppearanceLarge
" />
<EditText
Android:id="@+id/editText"
Android:layout_width="203dp"
Android:layout_height="wrap_content"
Android:layout_alignParentEnd="true"
Android:layout_alignParentRight="true"
Android:layout_toRightOf="@id/button" />
<Button
Android:id="@+id/button"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_below="@id/textView"
Android:text="New Button" />
Pada textbox di atas memaparkan code mengenai tampilan
XML layout yang berupa LinearLayout yang di atur secara
horizontal. Dalam LinearLayout di atas terdapat 3 elemen dari
widget yang properti layout-nya sudah ditentukan.
b) Output
XMLns:Android="http://schemas.Android.com/apk/res/Androi
d"
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=".widget">
<ImageView
Android:layout_width="wrap_content"
Android:src="@drawable/imgview"
tools:ignore="MissingConstraints"
tools:layout_editor_absoluteX="0dp"
tools:layout_editor_absoluteY="0dp"/>
<ImageButton
Android:layout_width="286dp"
Android:layout_height="108dp"
Android:id="@+id/imageButton"
Android:contentDescription="@string/app_name"
Android:src="@drawable/imgbutton"
tools:ignore="MissingConstraints"
tools:layout_editor_absoluteX="76dp"
tools:layout_editor_absoluteY="516dp" />
</Androidx.constraintlayout.widget.ConstraintLayout>
Pada textbox di atas berisikan code mengenai antarmuka
pengguna (UI) menggunakan ConstraintLayout dalam android.
Dua elemen utama dalam layout ini adalah ImageView dan
ImageButton. ImageView menampilkan gambar dari sumber daya
drawable dengan atribut „src’, sedangkan ImageButton berukuran
“286x108dp” dan menampilkan gambar dari sumber daya lainnya.
Dalam ConstraintLayout, pengaturan posisi elemen-elemen ini
menggunakan atribut tools:layout_editor_absoluteX dan
tools:layout_editor_absoluteY, yang diberikan nilai absolute untuk
tujuan tata letak dalam editor design.
b) Output
package com.example.myapplication;
import Androidx.appcompat.app.AppCompatActivity;
import Android.os.Bundle;
import Android.widget.ArrayAdapter;
import Android.widget.ListView;
public class selection_widget extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_selection_widget);
ListView lv = (ListView) findViewById(R.id.listview);
String[] about = {"Teknik Informatika", "Multimedia
Broadcasting", "Animasi", "Otomotif", "Griya Kayu",
"Pengolahan Batu", "Pengolahan Hasil Laut",
"Telekomunikasi", "Elektronika", "Mekatronika", "Kimia",
"Fisika", "Matematika", "Perkapalan"};
ArrayAdapter<String> adapter=new
ArrayAdapter<>(this,
Android.R.layout.simple_list_item_1,about);
lv.setAdapter(adapter);
}
}
2. Wireframe Login
a) Code program
<?XML version="1.0" encoding="utf-8"?>
<RelativeLayout
XMLns:Android="http://schemas.Android.com/apk/res/Androi
d"
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=".login"
Android:background="#aa0101">
<ImageView
Android:id="@+id/logoImageView"
Android:layout_width="100dp"
Android:layout_centerHorizontal="true"
Android:layout_marginTop="50dp"
Android:src="@drawable/sglogo" />
<Androidx.cardview.widget.CardView
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_alignParentBottom="true"
app:cardCornerRadius="35sp"
Android:layout_marginBottom="20dp"
Android:layout_marginLeft="20dp"
Android:layout_marginRight="20dp">
<LinearLayout
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:orientation="vertikal"
Android:background="#FFFFFF"
Android:padding="20dp">
<TextView
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:text="Welcome Studies!"
Android:textColor="#aa1010"
Android:textSize="32sp"
Android:textStyle="bold" />
<TextView
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:text="Please login with your information"
Android:textStyle="bold"
Android:alpha="0.7" />
<View
Android:layout_width="wrap_content"
Android:layout_height="30dp"/>
<TextView
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:textColor="#334423"
Android:text="Email Address"
Android:textSize="18sp"
Android:alpha="0.7"
Android:textStyle="bold" />
<EditText
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:layout_marginBottom="20dp"
Android:layout_marginTop="6dp"
Android:background="#998b47"
Android:inputType="textEmailAddress"
Android:padding="15dp"
Android:hint="type your email here"
Android:alpha="0.7"
Android:textSize="15sp"
Android:textStyle="italic"
Android:drawablePadding="10dp" />
<View
Android:layout_width="wrap_content"
Android:layout_height="30dp"
Android:layout_marginTop="-28dp"/>
<TextView
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:text="Password"
Android:textColor="#334423"
Android:textSize="18sp"
Android:alpha="0.7"
Android:textStyle="bold" />
<EditText
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:layout_marginTop="6dp"
Android:layout_marginBottom="20dp"
Android:alpha="0.7"
Android:background="#998b47"
Android:drawablePadding="10dp"
Android:hint="type your password here"
Android:inputType="textPassword"
Android:padding="15dp"
Android:textSize="15sp"
Android:textStyle="italic" />
<RelativeLayout
Android:layout_width="wrap_content"
Android:layout_height="wrap_content">
<CheckBox
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:text="Remember me"
Android:layout_centerVertikal="true"
Android:alpha="0.7"
Android:layout_marginTop="-10dp" />
<TextView
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:text="I forgot my password"
Android:layout_alignParentEnd="true"
Android:layout_centerVertikal="true"/>
</RelativeLayout>
<View
Android:layout_width="wrap_content"
Android:layout_height="10dp"/>
<com.google.Android.material.button.MaterialButton
Android:layout_width="match_parent"
Android:layout_height="60dp"
Android:text="Login"
Android:textSize="18sp"
Android:textStyle="bold"
Android:backgroundTint="#aa1010"
app:cornerRadius="32dp"/>
<View
Android:layout_width="wrap_content"
Android:layout_height="10dp"/>
<TextView
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:text="Or Login with"
Android:textStyle="bold"
Android:layout_gravity="center"
Android:alpha="0.7"/>
<LinearLayout
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:orientation="horizontal"
Android:gravity="center"
Android:layout_marginTop="10dp"
Android:layout_marginBottom="15dp">
<ImageView
Android:layout_width="30dp"
Android:layout_height="30dp"
Android:layout_margin="12dp"
Android:background="@drawable/insta"/>
<ImageView
Android:layout_width="30dp"
Android:layout_height="30dp"
Android:layout_margin="12dp"
Android:background="@drawable/google"/>
<ImageView
Android:layout_width="30dp"
Android:layout_height="30dp"
Android:layout_margin="12dp"
Android:background="@drawable/facebook"/>
</LinearLayout>
</LinearLayout>
</Androidx.cardview.widget.CardView>
</RelativeLayout>
Textbox di atas berisikan code mengenai tata letak antarmuka
penggguna untuk halaman login dalam aplikasi android dengan
bahasa XML. Layout utama adalah RelativeLayout yang di
dalamnya terdapat elemen UI, seperti ImageView, CardView,
TextView, MaterialButton, dan CheckBox.
b) Output
b) Output
5.1 Analisa
Pada modul ini, dapat dianalisa bahwa pemahaman terhadap konsep User
Interface (UI) dalam pengembangan aplikasi android menjadi lebih mendalam.
XML layout digunakan sebagai alat untuk mendefinisikan tata letak antarmuka
pengguna, dan pemahaman terhadap struktur file XML menjadi kunci dalam
merancang antarmuka yang efektif. Widget, khususnya Selection Widget seperti
ListView, digunakan untuk menampilkan dan mengelola data dalam bentuk daftar,
memberikan pengguna pengalaman yang intuitif dalam memilih opsi. Proses
integrasi antara XML layout dan Java code memainkan peran penting dalam
menghubungkan desain antarmuka dengan logika pemrograman.
5.2 Kesimpulan
Dari modul praktikum ini dapat disimpulkan bahwa pemahaman konsep
User Interface, XML layout, dan Widget adalah hal penting dalam merancang
antarmuka pengguna dalam aplikasi android. XML layout menjadi alat yang kuat
untuk menentukan tata letak dan struktur antarmuka pengguna, sedangkan Widget
menyediakan komponen-komponen yang memungkinkan integrasi elemen-elemen
interaktif ke dalam aplikasi. Selection Widget, yang merupakan bagian dari
Widget, dapat menambah pengetahuan pengguna dengan menyediakan pilihan
yang dapat dipilih dalam bentuk dropdown menu atau daftar.
5.3 Saran
Diharapkan dengan adanya laporan mengenai “User Interface, XML layout,
Widget, Selection Widget” ini, praktikan selanjutnya dapat menguasai materi dan
konsep praktikum. praktikan diharapkan dapat mengaplikasikan pemahaman
mereka untuk merancang aplikasi melalui penguasaan materi “User Interface,
XML layout, Widget, Selection Widget”.