Pages

Membuat TextField di Dalam AlertDialog [Android]

Minggu, 18 Oktober 2015

Assalamualaiku Wr. Wb~

     Akhir-akhir ini aku lagi seneng sama pemrograman android. Nah pas nyoba bikin CRUD (Create Read Update Delete) di Android, aku melihat ada ketidakefektifan ketika membuat form penginputan. Aku berpikir daripada membuat activity baru kenapa ga bikin dialog yang muncul seperti JDialog di Java. Nah akhirnya aku cari cari ternyata bisa membuat TextField/EditText di dalam AlertDialog dan sekarang aku bagikan pada kalian!

Oke! Pertama kalian layoutnya dulu, copy kode ini ke dalam activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <Button
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="TextField-AlertDialog"
        android:id="@+id/button"
        android:layout_gravity="center_horizontal" />
</LinearLayout>

Kemudian buat layout baru dan beri nama textfield.xml lalu copy kode ini ke dalamnya
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent">

    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/editText"
        android:layout_gravity="center_horizontal" />

    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/editText2"
        android:layout_gravity="center_horizontal" />
</LinearLayout>

Terakhir, copy kode ini ke dalam MainActivity.java
package koukousei.textfield_alertdialog;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;


public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Button btnAlert = (Button) findViewById(R.id.button);
        btnAlert.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                LayoutInflater layoutInflater = (LayoutInflater) getBaseContext()
                        .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                final View layoutTextField = layoutInflater.inflate(R.layout.textfield, null, false);
                final EditText text1 = (EditText) layoutTextField.findViewById(R.id.editText);
                final EditText text2 = (EditText) layoutTextField.findViewById(R.id.editText2);
                try{
                    final AlertDialog.Builder builder = new AlertDialog.Builder(v.getContext());
                    builder.setTitle("Masukkan Apa yang Kamu Mau")
                            .setView(layoutTextField)
                            .setPositiveButton("OK", new DialogInterface.OnClickListener() {
                                @Override
                                public void onClick(DialogInterface dialog, int which) {
                                    Toast.makeText(getBaseContext(), text1.getText().toString() + "\n" +
                                            text2.getText().toString(), Toast.LENGTH_SHORT).show();
                                }
                            }).show();
                }catch (Exception e){
                    Toast.makeText(getBaseContext(), "Error! "+e, Toast.LENGTH_SHORT).show();
                }
            }
        });
    }
}


Selesai, silahkan coba di emulator kesayangan kalian atau langsung di run juga gapapa :v
sekian dari aku, semoga bermanfaat!

Wassalamualaikum Wr. Wb~

Form Login Android - PHP - MySQL

Sabtu, 17 Oktober 2015

Assalamualaikum Wr. Wb~

     Oke, sekarang kita bermain pemrograman android.


Kalo di sekolahan aku nama pelajarannya PEMROGRAMAN PERANGKAT BERGERAK, aneh ya? walaupun maksudnya bener, tapi agak lucu wkwk

     Kali ini aku mau kasih tutorial form login yang datanya ada di MySQL. Kenapa aku tulis PHP di judulnya, karna yang aku tau dari Android ga bisa langsung akses ke database MySQL. Jadi harus lewat perantara PHP buat pengambilan datanya.

Langsung aja! Pertama kalian buat databasenya kaya gini, Sekalian insert dulu bebas, user sama password yang kalian isi digunain buat login nantinya.


Kedua, kalian bikin file PHPnya dengan nama androidLogin.php dan copy kode ini
<?php
mysql_connect("localhost","root","") or die ("Koneksi Gagal!!");
mysql_select_db("ujikom");
$sql = "select * from admin where user = '$_POST[user]'";
$query = mysql_query($sql);
$row = mysql_fetch_array($query);
if(mysql_num_rows($query) == 0){
echo "Username Belum Terdaftar";
}elseif($_POST['user'] == "" or $_POST['pass'] == ""){
echo "Form Masih Kosong!";
}elseif($_POST['pass'] <> $row['password']){
echo "Password Salah!";
}elseif($_POST['pass'] == $row['password']){
echo "Berhasil Login!";
}
?>

Lanjut! Kemudian kalian copy kode ini ke activity_main.xml
<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"
    android:paddingLeft="16dp"
    android:paddingRight="16dp"
    android:paddingTop="16dp"
    android:paddingBottom="16dp"
    tools:context=".MainActivity">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/strUser"
        android:id="@+id/textView"
        android:layout_marginTop="10dp"
        android:layout_alignParentTop="true" />

    <EditText
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:id="@+id/editTextUsername"
        android:layout_below="@+id/textView"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/strPass"
        android:id="@+id/textView2"
        android:layout_below="@+id/editTextUsername"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true" />

    <EditText
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:id="@+id/editTextNama"
        android:layout_below="@+id/textView2"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/strLogin"
        android:id="@+id/buttonLogin"
        android:layout_below="@+id/editTextNama"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true" />
</RelativeLayout>

Terus bikin class baru namanya ClientToServer.java dan copy kode ini ke dalamnya
package koukousei.androidtugas_php_1;

import android.util.Log;


import org.apache.http.HttpEntity;

import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.conn.params.ConnManagerParams;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.params.HttpConnectionParams;
import org.apache.http.params.HttpParams;
import org.json.JSONException;
import org.json.JSONObject;

import java.io.BufferedReader;

import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.URI;
import java.util.ArrayList;

/**

 * Created by user on 02-Oct-15.
 */
public class ClientToServer {
    public static final int HTTP_TIMEOUT = 30 * 1000;
    private static HttpClient httpClient;
    private static HttpClient getHttpClient(){
        if(httpClient == null){
            httpClient = new DefaultHttpClient();
            final HttpParams parameterHttp = httpClient.getParams();
            HttpConnectionParams.setConnectionTimeout(parameterHttp, HTTP_TIMEOUT);
            HttpConnectionParams.setSoTimeout(parameterHttp, HTTP_TIMEOUT);
            ConnManagerParams.setTimeout(parameterHttp, HTTP_TIMEOUT);
        }
        return httpClient;
    }

    public static String executeHttpPost(String url, ArrayList<NameValuePair> postParameter) throws Exception{

        BufferedReader bufferedReader = null;
        try{
            HttpClient httpClient = getHttpClient();
            HttpPost httpPost = new HttpPost(url);
            UrlEncodedFormEntity formEntity = new UrlEncodedFormEntity(postParameter);
            httpPost.setEntity(formEntity);
            HttpResponse httpResponse = httpClient.execute(httpPost);
            bufferedReader = new BufferedReader(new InputStreamReader(httpResponse.getEntity().getContent()));
            StringBuffer stringBuffer = new StringBuffer("");
            String line = "";
            String NL = System.getProperty("line.separator");
            while((line = bufferedReader.readLine()) != null){
                stringBuffer.append(line + NL);
            }
            bufferedReader.close();
            String hasil = stringBuffer.toString();
            return hasil;
        }finally {
            if(bufferedReader != null){
                try{
                    bufferedReader.close();
                }catch (Exception e){
                    e.printStackTrace();
                }
            }
        }
    }
}

Nah terakhir kalian buka MainActivity.java dan copy kode berikut
.package koukousei.androidtugas_php_1;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.StrictMode;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

import org.apache.http.NameValuePair;
import org.apache.http.message.BasicNameValuePair;

import java.util.ArrayList;

import koukousei.phplogin.R;


public class MainActivity extends Activity implements View.OnClickListener {
    EditText etUser, etPass;
    Button btnLogin;
    String url = "http://10.0.2.2/PHP_Tugas_1/Android/androidLogin.php";

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.form_login);
        StrictMode.enableDefaults();
        btnLogin = (Button) findViewById(R.id.buttonLogin);
        btnLogin.setOnClickListener(this);
        etUser = (EditText) findViewById(R.id.editTextUsername);
        etPass = (EditText) findViewById(R.id.editTextNama);
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()){
            case R.id.buttonLogin:
                kirimData();
                break;
        }
    }

    private void kirimData(){
        ArrayList<NameValuePair> kirimPhp = new ArrayList<NameValuePair>();
        kirimPhp.add(new BasicNameValuePair("user", etUser.getText().toString()));
        kirimPhp.add(new BasicNameValuePair("pass", etPass.getText().toString()));
        String respon = null;
        try{
            respon = ClientToServer.executeHttpPost(url, kirimPhp);
            String res = respon.toString();
            res = res.trim();
            if(res.equals("Berhasil Login!")){
                Toast.makeText(this, res.toString(), Toast.LENGTH_SHORT).show();
                etUser.setText("");
                etPass.setText("");
                etUser.requestFocus();
            }else{
                Toast.makeText(this, res.toString(), Toast.LENGTH_SHORT).show();
                etUser.setText("");
                etPass.setText("");
                etUser.requestFocus();
            }
        }catch (Exception e){
            e.printStackTrace();
        }
    }
}

Jangan lupa ubah isi variable url, sesuaikan dengan directory file php kalian, ganti juga package packagenya sesuai dengan project kalian. Selesai, silahkan di run pake emulator kesayangan kalian!
Sekian dari aku, semoga bermanfaat! Terima Kasih~

Wassalamualaikum Wr. Wb~

Input Data dari JTable ke Database [Java]

Minggu, 04 Oktober 2015

 Assalamualaikum Wr.Wb.~

     Tiba-tiba keinget sama temen yang pernah nanya, gimana sih cara nyimpen data yang ada di table ke database? terus aku coba bantu dengan pengetahuan seadanya, ternyata bisa! Ini jadi kebanggaan sendiri buat aku yang masih newbie, karna yang nanya itu orang yang terkenal pinter, terlebih aku bantu dia tanpa nyari di google :3

     Oke lanjut ke tutorial, pertama bikin database namanya "db_table" dan table namanya "tb_table" dengan ketentuan seperti ini


Kemudian bikin formnya, sederhana aja ga usah bagus bagus dulu :v


     Aku anggap kaka kaka yang baca udah ngerti masalah Variable Name sama Koneksi ke database ya, jadi ngga aku bahas. Kita langsung menuju tombol proses yang berguna buat input data yang ada di JTextField ke JTable.

private void proses(){
        DefaultTableModel tableModel = (DefaultTableModel)jTable1.getModel();
        String[]data = new String[4];
        data[0] = txtBarang.getText();
        data[1] = txtJumlah.getText();
        data[2] = txtHarga.getText();
        data[3] = txtTanggal.getText();
        tableModel.addRow(data);
}

     Kode ini berfungsi untuk menginput data yang ada di JTextField ke JTable. Sekali lagi aku anggap masalah pemanggilan method kaka kaka di sini udah pada ngerti ya. Selanjutnya kita menuju tombol Simpan yang berguna untuk menginput data yang ada di JTable ke database yang sudah kita buat sebelumnya.

private void simpan(){
        int jumlah_baris = jTable1.getRowCount();
        if(jumlah_baris == 0){
            JOptionPane.showMessageDialog(rootPane, "Table Masih Kosong!");
        }else{
            try{
            int i=0;
            while(i < jumlah_baris){
                stat.executeUpdate("insert into tb_table (nama_barang, jumlah_barang, harga_barang, tanggal) values("
                        + "'"+jTable1.getValueAt(i, 0)+"',"
                        + "'"+jTable1.getValueAt(i, 1)+"',"
                        + "'"+jTable1.getValueAt(i, 2)+"',"
                        + "'"+jTable1.getValueAt(i, 3)+"')");
                i++;
            }
            JOptionPane.showMessageDialog(rootPane, "Berhasil Menyimpan!");
            }catch(Exception e){
            JOptionPane.showMessageDialog(rootPane, "Gagal Menyimpan! Error : "+e);
            }
        }
    }

     Fungsi dari kode ini yaitu mengulang proses penyimpanan dari JTable ke database dari baris awal hingga baris akhir dan baris yang disimpan disesuaikan dengan jumlah pengulangan yang terjadi. Kira-kira seperti itulah penjelasanya.

Sekian dari aku, semoga bermanfaat! Terima kasih~

Wassalamualaikum Wr. Wb.~

Apa Pentingnya Bahasa Inggris?

Rabu, 16 September 2015

     Bahasa Inggris adalah bahasa Internasional yang menjadi bahasa resmi dihampir 60 negara berdaulat. Bahasa Inggris juga menjadi bahasa ketiga yang sering dituturkan di seluruh dunia, lalu APA PENTINGNYA BAHASA INGGRIS? biar keren kaya orang inggris gitu? yang pasti bukan! biar dikira orang inggris gitu? bukanlah! atau biar bisa ngomong sama orang inggris? nah, mungkin ini termasuk.

Terus Apa Pentingnya Bahasa Inggris? (Why English Matters)

     Penting banget dong! Nih aku mau cerita sedikit, jadi aku pernah dateng ke suatu mesjid buat shalat, nah selesai shalat aku duduk-duduk dulu tuh di mesjid tersebut. Kemudian ada bule dateng, dia minta sarung sama seorang kakek buat shalat, tapi karena kakek itu ga ngerti bahasanya, kakek itu pun cuma bisa melongo trus ninggalin bulenya. Aku yang hanya bisa liat pun nyesel karena ga bisa bantu, akhirnya bule itu pun shalat dengan menurunkan sedikit celana pendeknya biar nutupin lutut. Nah dari cerita itu keliatan kan pentingnya bahasa inggris? Karena kebanyakan orang luar negeri menggunakan bahasa Inggris untuk bahasa sehari-hari.

Apa Manfaat Menguasai Bahasa Inggris?

Pertama!
Kamu bisa komunikasi sama orang luar negeri, nggak cuma orang inggris aja! Karena bahasa inggris digunakan untuk bahasa sehari-hari oleh 400 juta orang di seluruh dunia, wah seru kan?

Kedua!
Kamu bisa dapet beasiswa dan bersekolah di luar negeri! Banyak pelajar Indonesia yang pintar dan cerdas nggak bisa menempuh pendidikan di luar negeri karena terhalang oleh kemampuan bahasa Inggris yang lemah. Sayang banget kan?

Ketiga!
Kamu bisa menikmati ratusan film, buku dan sebagainya dalam bahasa inggris tanpa perlu translator atau subtitle indonesia, Asik kan?

Keempat!
Jodoh dari luar negeri? kenapa enggak?
Semakin luas kan kesempatan buat cari jodoh?

Bagaimana Cara Mengetahui Kemampuan Bahasa Inggris yang Dimiliki?

     Ada tes yang bernama TOEIC® (Test of English for International Communication).
TOEIC® adalah tes mengukur kemampuan berbahasa Inggris untuk mereka yang bahasa sehari-harinya bukan bahasa Inggris. Tes TOEIC®  mengukur kemampuan bahasa Inggris untuk individu yang sedang belajar atau bekerja dilingkungan global. Skor TOEIC® menunjukkan seberapa baik seseorang dapat berkomunikasi dalam bahasa Inggris dalam dunia pendidikan, bisnis, perdagangan dan industri. Tes ini tidak memerlukan pengetahuan  atau istilah khusus selain dari bahasa Inggris yang dipergunakan sehari-hari. TOEIC® mengukur secara objektif dan akurat mengenai kemampuan berkomunikasi seseorang dalam bahasa Inggris. Tes ini dirancang berdasarkan kondisi sehari-hari yang dijalani setiap orang sehingga tes ini  sangat mudah dipahami dan dirasakan langsung manfaatnya karena berkaitan langsung dengan kehidupan sehari-hari yang dialami setiap orang di lingkungannya.
  

Ada 3 Jenis tes di TOEIC® yaitu :
  1. TOEIC® Listening Reading
    TOEIC® Listening and Reading mengukur seberapa baik seseorang memahami bahasa Inggris yang didengar atau dibaca dikehidupan sehari-hari.
  2. TOEIC® Speaking Writing
    TOEIC® Speaking and Writing untuk mengukur kemampuan berkomunikasi dengan bahasa Inggris secara lisan dan tertulis dalam konteks kehidupan sehari-hari dan dalam lingkungan pekerjaan secara global.
  3. TOEIC Bridge
    Tes TOEIC Bridge™ adalah titik awal paling tepat untuk menuju kesuksesan dunia kerja bagi yang sedang memulai belajar bahasa Inggris. Didesain untuk tingkat pemula, tes ini mengukur kemampuan mendengarkan dan membaca yang digunakan di lingkungan global. Berbagai sekolah bahasa, pendidikan tinggi, universitas, korporasi dan pemerintahan di berbagai belahan di dunia menggunakan TOEIC Bridge™ untuk mengukur kemampuan bahasa Inggris siswa dan karyawannya.
Untuk informasi lebih lanjut mengenai tes TOEIC® kalian bisa kunjungi websitenya
Bagaimana? Apa kalian jadi tertarik mempelajari bahasa inggris?
Sekian dari aku, semoga bermanfaat! kurang lebihnya mohon maaf, Wassalamualaikum Wr. Wb.

Membuat Undian Tempat Duduk Kelas [Visual Basic 6.0]

Minggu, 11 Januari 2015

          Mari bermain dengan VB 6.0 lagi! Gara-gara ketua kelas suka ngacak tempat duduk setiap minggu, jadi kepikiran buat bikin aplikasinya hohoho :v
mungkin kalian butuh buat ngacak tempat duduk biar ga bosen duduk sama si itu-itu terus, biar ga ribet juga harus bikin undian pake kertas wkwk

Oke pertama buka dulu Visual Basic kalian dan pilih Standard EXE seperti biasa, lalu buat desain form seperti ini :


          Guru sama Papan tulis ngga di bikin juga gapapa ka, Cuma pajangan aja hohoho :v
yang persegi panjang ada 4 itu pake CommandButton ka, anggap aja itu bangku.
trus tambahin lagi kaya gini

        Gapapa di tindih aja dulu bangku-bangkunya, trus ubah properties Visible Frame1 jadi False biar ngga kliatan pas awal aplikasi di jalanin. Kalo yang bentuknya kaya jam itu namanya Timer, kliatan kok di toolbox :v
ubah properties Interval Timer1 menjadi “1” ini adalah kecepatan merandom angkanya nanti. Oiya sama properties Enabled Frame1nya juga di False, biar ngga langsung jalan sebelum di klik mulai :v

          Kemudian singkirin dulu Frame1nya karna kita mau koding bangku-bangkunya dulu, tapi jangan diapus Frame1nya ka! klik 2x di bangku paling pertama, trus masukin koding ini :
Dim bangku As String
Dim nama As String
Private Sub Command1_Click()
Frame1.Visible = True
bangku = "bangku1"
End Sub

Private Sub Command2_Click()
Frame1.Visible = True
bangku = "bangku2"
End Sub

Private Sub Command3_Click()
Frame1.Visible = True
bangku = "bangku3"
End Sub

Private Sub Command4_Click()
Frame1.Visible = True
bangku = "bangku4"
End Sub

          Nih aku jelasin kodingnya biar kalian ngerti dan ngga copas doang wkwkw :v
Dim bangku As String ini berarti mendeklrasikan kalo bangku itu variabel string.
Frame1.Visible = True ketika bangku di klik maka properties Visible Frame1 menjadi True dan Frame1pun muncul
bangku = "bangku1" mengisi variabel bangku dengan bangku1/tergantung bangku mana yang di klik, yang nanti akan berguna untuk menentukan bangku mana yang akan diduduki.

Lanjut! Kita koding tombol clear, yang berguna untuk menghapus isi tempat duduk nantinya

Private Sub Command5_Click()
Command1.Caption = ""
Command2.Caption = ""
Command3.Caption = ""
Command4.Caption = ""
End Sub

          Kalo ini gaperlu di jelasinkan? -,-
udah keliatan itu fungsinya buat mengkosongkan properties Caption.
Oke, sekarang ke tengahin lagi Frame1-nya kita mau ngoding komponen-komponen yang ada disitu!
pertama klik 2x di Timer trus masukin koding ini

Private Sub Timer1_Timer()
Label1.Caption = Int(Rnd * 5)
End Sub

          Jika angkanya 5 berarti akan meRandom hanya sampai angka 4, aku juga kurang tau kenapa. Intinya yang akan di random di kurangi 1 dari angka yang di tulis di kodingnya.
Sekarang koding tombol Mulai-nya, seperti biasa klik 2x aja

Private Sub Command6_Click()
Timer1.Enabled  = True
Command6.Enabled = False
Command8.Enabled = False
Command9.Enabled = False
End Sub

Kemudian tombol Berhenti-nya
Private Sub Command7_Click()
Timer1.Enabled = False
Command7.Enabled = False
Commadn9.Enabled = True
Select Case Label1.Caption
Case “1”
nama = “Angga
Case “2”
nama = “Azis
Case “3”
nama = “Fajar
Case “4”
nama = “Reza
End Select
If nama = Command1.Caption Or nama = Command2.Caption Or nama = Command3.Caption Or nama = Command4.Caption Then
Timer1.Enabled = True
Command7.Value = True
Command9.Enabled = False
Else
Timer1.Enabled = False
Command9.Enabled = True
End If
End Sub

Bagian yang di biru kan ganti dengan nama teman kalian, sesuaikan aja sama nomor absenya
Trus tombol Batal-nya

Private Sub Command8_Click()
Frame1.Visibel = False
End Sub

Terakhir tombol Kembali-nya

Private Sub Command9_Click()
Frame1.Visible = False
Command9.Enabled = True
Command10.Enabled = True
Command11.Enabled = True
Command12.Enabled = True
Select Case bangku
Case “bangku1”
Command1.Caption = nama
Case “bangku2”
Command2.Caption = nama
Case “bangku3”
Command3.Caption = nama
Case “bangku4”
Command4.Caption = nama
End Select
End Sub


Aku bingung jelasinya gimana -,-
Tapi kalo di cermati hampir semuanya cuma ganti-ganti properties komponen ya kan :v
mungkin yang sulit cuma dibagian “If” sama “Case”, Tapi kalau ada yang ingin di tanyakan bisa lewat komentar.
Sekian, semoga bermanfaat~