Senin, 06 Januari 2020

TUGAS UAS MOBILE PROGRAMING, APLIKASI ENSIKLOPEDIA SENJATA DENGAN DATABASE

NAMA : M Sidiq Jaelani Pangestu
NIM : 161021450502
Kelas: 06TPLM003

Assalammu'alaikum, salam sejahtera untuk kita semua. pertemuan kali ini saya telah menyelesaikan sebuah tugas Ujian Akhir Semester(UAS) Mobile Programing. sebuah aplikasi yang terhbung dengan database dan pelu melakukan login sebelum menggunakan aplikasi.

berikut Mock Up Aplikasi yang saya isikan pada Lembar Jawaban UAS :


1. Tampilan Login :
Coding Java :
package com.example.aplikasilogin;

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

import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity {

    EditText username, password;
    Button btnLogin;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        username = (EditText) findViewById(R.id.username);
        password = (EditText) findViewById(R.id.password);
        btnLogin = (Button)findViewById(R.id.btnLogin);

        btnLogin.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                String usernameKey = username.getText().toString();
                String passwordKey = password.getText().toString();

                if (usernameKey.equals("admin") && passwordKey.equals("123")){
                    //jika login berhasil                    Toast.makeText(getApplicationContext(), "LOGIN SUKSES",
                            Toast.LENGTH_SHORT).show();
                    Intent intent = new Intent(MainActivity.this, Welcome.class);
                    MainActivity.this.startActivity(intent);
                    finish();

                }
            }

        });

    }
}

Coding Layout :
<?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:id="@+id/activity_main"    
  android:layout_width="match_parent"    
  android:layout_height="match_parent"    
  android:paddingBottom="@dimen/activity_vertical_margin"    
  android:paddingLeft="@dimen/activity_horizontal_margin"    
  android:paddingRight="@dimen/activity_horizontal_margin"    
  android:paddingTop="@dimen/activity_vertical_margin"    
  tools:context="com.example.aplikasilogin.MainActivity"
>

<TextView        
  android:text="UJIAN AKHIR SEMESTER"        
  android:layout_width="match_parent"        
  android:layout_height="wrap_content"        
  android:layout_alignParentTop="true"        
  android:layout_centerHorizontal="true"        
  android:id="@+id/textView"        
  android:textAlignment="center"        
  android:textSize="25sp"        
  android:textStyle="normal|bold" 
/>

<TextView        
  android:id="@+id/textnim"        
  android:layout_width="match_parent"        
  android:layout_height="wrap_content"        
  android:layout_alignParentTop="true"        
  android:layout_marginTop="79dp"        
  android:text="Muhammad Sidiq Jaelani P | 161021450502"        
  android:textAlignment="center"        
  android:textSize="19sp"        
  android:textStyle="normal|bold" 
/>

<EditText        
  android:id="@+id/username"        
  android:layout_width="match_parent"        
  android:layout_height="wrap_content"        
  android:layout_below="@+id/textView"        
  android:layout_alignParentStart="true"        
  android:layout_alignParentLeft="true"        
  android:layout_marginStart="1dp"        
  android:layout_marginLeft="1dp"        
  android:layout_marginTop="137dp"        
  android:ems="10"        
  android:hint="Username"        
  android:inputType="textPersonName" 
/>
<Button        
  android:id="@+id/btnLogin"        
  android:layout_width="match_parent"        
  android:layout_height="wrap_content"        
  android:layout_below="@+id/password"        
  android:layout_marginTop="0dp"        
  android:text="Log In" 
/>

<EditText        
  android:id="@+id/password"        
  android:layout_width="match_parent"        
  android:layout_height="wrap_content"        
  android:layout_below="@+id/username"        
  android:layout_alignParentLeft="true"        
  android:layout_alignParentEnd="true"        
  android:layout_alignParentRight="true"        
  android:layout_marginLeft="12dp"        
  android:layout_marginTop="0dp"        
  android:layout_marginEnd="4dp"        
  android:layout_marginRight="4dp"        
  android:ems="10"        
  android:hint="Password"        
  android:inputType="textPassword" 
/>

</RelativeLayout>


2. Tampilan List View setelah berhasil Login :
Coding Java :
package com.example.aplikasilogin;

import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;

import androidx.appcompat.app.AppCompatActivity;


public class Welcome extends AppCompatActivity {
    ListView LV;
    String [] aplikasi={"Informasi Senjata","Tentang Aplikasi","Tentang Zayn"};

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_welcome);
        LV = (ListView) findViewById(R.id.listView1);
        ArrayAdapter adapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, aplikasi);
        LV.setAdapter(adapter);
        LV.setOnItemClickListener(new AdapterView.OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
                                    long arg3) {
// TODO Auto-generated method stub                int itemke = arg2;
                String itemText = (String) LV.getItemAtPosition(arg2);
                Toast.makeText(getBaseContext(), "Anda Menyentuh  " + itemText, Toast.LENGTH_LONG).show();
                if (itemText.equals("Informasi Senjata")) {
                    Intent SeninIntent = new Intent(arg0.getContext(), InfoSenjata.class);
                    startActivityForResult(SeninIntent, 0);

                }
                if (itemText.equals("Tentang Aplikasi")) {
                    Intent SeninIntent = new Intent(arg0.getContext(), tentangaplikasi.class);
                    startActivityForResult(SeninIntent, 0);

                }
                if (itemText.equals("Tentang Zayn")) {
                    Intent SeninIntent = new Intent(arg0.getContext(), tentangzayn.class);
                    startActivityForResult(SeninIntent, 0);


                }

            }
        });

    }}

Coding Layout :
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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:orientation="vertical"    
  tools:context=".Welcome" >

<ListView        
  android:id="@+id/listView1"        
  android:layout_width="match_parent"        
  android:layout_height="wrap_content"        
  android:layout_centerHorizontal="true"        
  android:layout_centerVertical="true" 
>
</ListView>

</LinearLayout>

3.Tampilan Aplikasi :
pada tampilan ini, ketika kita menginput sebuah nama senjata dan sudah terdaftar di data base maka ketika kita menekan tombol Deskripsikan, maka aplikasi akan memunculkan informasi atau data dari senjata tersebut, seperti contoh berikut ini :


apabila kita memasukan nama senjata yang tidak dterdaftar dalam database, maka aplikasi akan memberikan keterangan seperti di gambar berikut :

Coding Java Aplikasi :

package com.example.aplikasilogin;

import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;

import android.view.View;
import android.widget.EditText;

import androidx.appcompat.app.AppCompatActivity;

public class InfoSenjata extends AppCompatActivity {
    private SQLiteDatabase db = null;
    private Cursor senjataCursor = null;
    private EditText txtInggris;
    private EditText txtIndonesia;
    private DataSenjata dbsenjata = null;
    public static final String INFORMASISENJATA = "inggris";
    public static final String DESKRIPSI = "indonesia";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        dbsenjata = new DataSenjata(this);
        db = dbsenjata.getWritableDatabase();
        dbsenjata.createTable(db);
        dbsenjata.generateData(db);

        setContentView(R.layout.activity_infosenjata);
        txtInggris = (EditText) findViewById(R.id.txtInggris);
        txtIndonesia = (EditText) findViewById(R.id.txtIndonesia);
    }

    public void getTerjemahan(View view) {
        String result = "";
        String englishword = txtInggris.getText().toString();
        senjataCursor = db.rawQuery("SELECT ID, INFORMASISENJATA, DESKRIPSI "
                + "FROM senjata where INFORMASISENJATA='" + englishword
                + "' ORDER BY INFROMASISENJATA", null);

        if (senjataCursor.moveToFirst()) {
            result = senjataCursor.getString(2);
            for (; !senjataCursor.isAfterLast(); senjataCursor.moveToNext()) {
                result = senjataCursor.getString(2);
            }
        }
        if (result.equals("")) {
            result = "DATA SENJATA TIDAK DITEMUKAN";
        }
        txtIndonesia.setText(result);

    }

    @Override
    public void onDestroy() {
        super.onDestroy();
        senjataCursor.close();
        db.close();
    }

}

Coding Java Database :
package com.example.aplikasilogin;

import android.content.ContentValues;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

public class DataSenjata extends SQLiteOpenHelper {
    private static final String DATABASE_NAME = "dbsenjata";
    public static final String INFORMASISENJATA= "Nama Senjata";
    public static final String DESKRIPSI = "DESKRIPSI SENJATA";

    public DataSenjata(Context context) {
        super(context, DATABASE_NAME, null, 1);
    }

    public void createTable(SQLiteDatabase db){
        db.execSQL("DROP TABLE IF EXISTS senjata");
        db.execSQL("CREATE TABLE if not exists senjata (id INTEGER PRIMARY KEY AUTOINCREMENT, informasisenjata TEXT, deskripsi TEXT);");
    }

    public void generateData(SQLiteDatabase db){
        ContentValues cv=new ContentValues();
        cv.put(INFORMASISENJATA, "glock 19");
        cv.put(DESKRIPSI, ""pistol yang dirancang dan diproduksi oleh Glock. Glock 19 merupakan pistol Glock 17 yang dikecilkan. " +
                "Pistol ini menggunakan magazen standar 15 butir peluru 9 x 19 mm. Glock 19 mulai dikembangkan pada tahun 1988.");
        db.insert("senjata", INFORMASISENJATA, cv);
        cv.put(INFORMASISENJATA, "M82A1");
        cv.put(DESKRIPSI, "Senapan runduk dengan peluru 50 cal");
        db.insert("senjata", INFORMASISENJATA, cv);
        cv.put(INFORMASISENJATA, "AK47");
        cv.put(DESKRIPSI, "senjata buatan rusia");
        db.insert("senjata", INFORMASISENJATA, cv);
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        // TODO Auto-generated method stub
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        // TODO Auto-generated method stub
    }
}

Coding Layout :

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:background="@android:color/white"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">

    <TextView
        android:layout_width="167dp"
        android:layout_height="wrap_content"
        android:text="Kamus Inggris Indonesia"
        android:layout_gravity="center_horizontal" />
    <TextView
        android:text="Inggris :"
        android:id="@+id/TextView01"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>

    <EditText
        android:text=""
        android:id="@+id/txtInggris"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" />

    <Button
        android:text="Terjemahkan"
        android:id="@+id/btnTerjemah"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:onClick="getTerjemahan"
        />

    <TextView
        android:text="Indonesia :"
        android:id="@+id/TextView03"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        />

    <EditText
        android:text=""
        android:id="@+id/txtIndonesia"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:editable="false"
        />

    <TextView
        android:layout_width="399dp"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:text="Muhammad Sidiq Jaelani P | 161021450502"
        android:textAlignment="center" />
</LinearLayout>


Video Demo : 



kurang lebihnya mohon maaf, terima kasih wassalammu'alaikum..

Kamis, 31 Oktober 2019

APLIKASI LIST VIEW ANDROID DENGAN LOGIN




NAMA : Muhammad Sidiq Jaelani Pangestu
NIM       : 161021450502
Kelas     : 06TPLM003
Tugas    : Ujian Tengah Semester(UTS)


                Salam sejahtera untuk kita semua, berikut ini saya akan menampilkan dan memberikan source code Aplikasi list view berbasis android.   Aplikasi  yang saya rancang berikut ini adalah sebuah tugas Ujian Uengah Semester yang di berikan oleh Dosen saya. Aplikasi ini di rancang untuk menampilkan sejarah dan juga spesifikasi senjata tertentu yang kita pilih. Pada aplikasi ini beliau menginginkan saya dan juga teman teman saya untuk menambahkan activity login di dalam aplikasi ini. Tanpa berlama lama berikut ini adalah demo aplikasi dan juga source code yang saya gunakan.

sebelum memulai, saya gambarkan dan juga berikan deskripsi mengenai aplikasi ini. berikut foto dari coret-coret saya di kertas :




A.>
berikut akan saya tampilkan source code XML & JAVA untuk membuat tampilan login pada activity_main.xml :




source code MainActivity.java :



hasil dari source code diatas, atau pada tab design-nya akan tampil seperti pada gambar berikut :
B.>
berikutnya source code XML & JAVA untuk tampilan list view / activity_welcome.xml :
source code Welcome.java :

hasil dari source code diatas, atau pada tab design-nya akan tampil seperti pada gambar berikut :

C.>
berikutnya source code XML & JAVA untuk menampilkan list view / activity_m82a1.xml :






source code M82A1Activity.java :


hasil dari source code diatas, atau pada tab design-nya akan tampil seperti pada gambar berikut :


source code yang saya tampilkan diatas merupakan sepotong kecil dari beberapa list view yang saya aktifkan, berikut ini saya akan tampilkan sebuah video demo aplikasi pada smartphone saya yang sudah saya dokumentasikan, selamat menonton dan terima kasih telah membaca :









Rabu, 10 Juli 2019

FSA&Grammar Automata UAS


                Nama    : Muhammad Sidiq Jaelani Pangestu
                Kelas     : 05TPLM003
NIM       : 161021450502
1.      Pengertian Finite State Automata (FSA)
Finite state automata adalah mesin abstrak berupa sistem model matematika dengan masukan dan keluaran diskrit yang dapat mengenali bahasa paling sederhana (bahasa reguler) dan dapat diimplementasikan secara nyata.
Finite State Automata (FSA) adalah model matematika yang dapat menerima input dan mengeluarkan output yang memiliki state yang berhingga banyaknya dan dapat berpindah dari satu state ke state lainnya berdasarkan input dan fungsi transisi. Finite state automata tidak memiliki tempat penyimpanan/memory, hanya bisa mengingat state terkini.
Finite State Automata dinyatakan oleh pasangan 5 tuple, yaitu:
M=(Q , Σ , δ , S , F )
Q = himpunan state
Σ = himpunan simbol input
δ = fungsi transisi δ : Q × Σ
S = state awal / initial state , S
Q
F = state akhir, F
Q
Karakteristik Finite Automata
a.       Setiap Finite Automata memiliki keadaan dan transisi yang terbatas.
b.      Transisi dari satu keadaan ke keadaan lainnya dapat bersifat deterministik atau non-deterministik.
c.       Setiap Finite Automata selalu memiliki keadaan awal.
d.      Finite Automata dapat memiliki lebih dari satu keadaan akhir.
jika setelah pemrosesan seluruh string, keadaan akhir dicapai, artinya otomata menerima string tersebut.

Setiap FSA memiliki:
a.       Himpunan berhingga (finite) status (state)
- Satu buah status sebagai status awal (initial state), biasa dinyatakan q0.
- Beberapa buah status sebagai status akhir (final state).
b.      Himpunan berhingga simbol masukan.
c.       Fungsi transisi Menentukan status berikutnya dari setiap pasang status dan sebuah simbol masukan.


Mesin Abstrak FSA
Diagram :

Deskripsi format penulisan M({Q,Σ,δ,S,F}):
1.      Q = (q0,q1,q2,q3,q4,q5)                                               
2.      Σ = (0,1)
3.      δ = is described as
δ
0
1
q0
q0
-
q1
q1
q1,q4
q2
-
q3
q3
q3
q5,q4
q4
q1
-
q5
-
-

4.      S = q0 is the start
5.      F = q
Uji input :


2.      Pengertian Grammar
Grammar adalah bentuk mesin abstrak yang dapat diterima (accept) untuk membangkitkan suatu kalimat otomata berdasarkan suatu kalimat berdasarkan suatu aturan tertentu.
Mesin Abstrak Grammar
Tata bahasa Grammar di definisikan dengan 4 Tupel, G = ({V,T,P,S}) dimana :
V =Humpinan symbol variable / non terminal
T =Himpunan symbol terminal
P =kumpulan aturan produksi
S = Simbol awal


Jadi q2 = (S) lewat jalur b menuju q4 = (E) ditulis S => bE
Secara formal dapat ditulis :
V = {S,E,A,B,C}
T = {a,b}
P = { S => bE, E=> A| B, E => aA | b,A=> b| C=>a}
S = S (Start)