Sunday, October 6, 2019



Aplikasi hitung luas bidang datar dengan Android Studio
Deskripsi project

dalam project kali ini saya menggunakan Android Studio dimana pada project ini terdapat tampilan splash screen pada awal membuka aplikasi dan selanjutnya kita akan masuk ke form atau halaman login dimana halaman login ini masih menggunakan logika program tanpa menggunakan koneksi database. selanjutnya ketika user memasukan username dan password nya (username”admin”, pass”1234″) kita akan di arahkan ke form atau halaman Home di mana pada halaman ini terdapat 3 menu pilihan. Ketiga menu ini saling terhubung, oke kita langsung saja membuat aplikasinya.

Pertama kita buat splashscreen-nya dahulu, karena kita akan membuat splashscreen dengan gambar berjalan.

copy kodingan ini dan paste-kan pada gradle appimplementation 'pl.droidsonroids.gif:android-gif-drawable:1.2.4'



selanjutnya copy dan paste-kan kodingan dibawah ini ke gradle projectmavenCentral()



dan copy gambar yg ingin kita pakai buat splashscreen seperti gambar dibawah ini.



setelah semua yang diatas sudah kita lakukan, maka kita sudah bisa mengkoding
splashscreennya. buka splashscreen.xml lalu copy paste-kan sources code
di bawah ini.

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
      xmlns:tools="http://schemas.android.com/
      android:layout_width="
      android:layout_height="
      android:gravity="
      tools:context="com.example.uas.
      <pl.droidsonroids.gif.
            android:layout_width="
            android:layout_height="
            android:src="@drawable/
            android:scaleType = "centerCrop"/>
</LinearLayout>

lalu copy source code ini dan paste-kan di splashscreen.java

import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;

public class splashscreen extends AppCompatActivity {

         @Override
         protected void onCreate(Bundle savedInstanceState) {
               super.onCreate(savedInstanceState);
               setContentView(R.layout.splashscreen);

                /* New Handler to start the Menu-Activity
                * and close this Splash-Screen after some seconds.*/
                int SPLASH_DISPLAY_LENGTH = 5000;
                new Handler().postDelayed(new Runnable(){
                      @Override
                      public void run() {
                             /* Create an Intent that will start the Menu-Activity. */
                             Intent mainIntent = new Intent(splashscreen.this,login.class);
                             splashscreen.this.startActivity(mainIntent);
                             splashscreen.this.finish();
                      }
                }, SPLASH_DISPLAY_LENGTH);
         }

         protected void onPaused(){
              super.onPause();
              finish();
         }
}

tahap pembuatan splashscreen sudah selesai sekarang kita buat form loginnya
buka login.xml lalu copy paste-kan codingan di bawah ini

<?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"
       android:layout_margin="16dp">

       <LinearLayout
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
             android:layout_alignParentBottom="true"
             android:background="#0091EA"
             tools:ignore="ExtraText">

             <Button
                   android:text="LOGIN"
                   android:textColor="#FFF"
                   android:layout_width="match_parent"
                   android:layout_height="wrap_content"
                   android:layout_alignParentBottom="true"
                   android:layout_centerHorizontal="true"
                   android:background="?android:attr/selectableItemBackground"
                   android:id="@+id/button2"
                   android:onClick="loginMasuk"
                   android:textStyle="normal|bold"
                   tools:ignore="HardcodedText,ObsoleteLayoutParam" />

       </LinearLayout>

       <EditText
             android:id="@+id/edittext_password"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
             android:hint="Password"
             android:inputType="textCapWords"
             style="@style/AppTheme"
             android:layout_centerVertical="true"
             android:layout_alignParentStart="true"
             android:textSize="30sp"
             android:fontFamily="monospace"
             tools:ignore="Autofill,HardcodedText,TextFields" />

      <TextView
             android:text="User Login"
             android:textColor="#fff"
             android:background="#0091EA"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
             android:id="@+id/textView2"
             android:textStyle="normal|bold"
             android:textSize="36sp"
             android:textAlignment="center"
             android:layout_alignParentTop="true"
             android:layout_alignParentStart="true"
             android:layout_marginTop="42dp"
             tools:ignore="HardcodedText" />

      <EditText
             android:id="@+id/edittext_username"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
             android:layout_above="@+id/edittext_password"
             android:layout_alignParentStart="true"
             android:layout_marginBottom="16dp"
             android:fontFamily="monospace"
             android:hint="Username"
             android:inputType="textCapWords"
             android:textSize="30sp"
             tools:ignore="Autofill,HardcodedText" />

</RelativeLayout>

jika sudah lalu buka login.java dan paste source code dibawah ini

android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;

public class login extends AppCompatActivity {
     EditText editText1 ,editText2; //Deklarasi object dari class EdiText
     String text1 ,text2; //Deklarasi object string

     @Override
     protected void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.login);
     }

     public void loginMasuk(View view) {
          //Method onClick pada Button
          editText1 = (EditText)findViewById(R.id.edittext_username);
          editText2 = (EditText) findViewById(R.id.edittext_password);
          text1 = editText1.getText().toString();
          text2 = editText2.getText().toString();

          //Kondisi jika username dan password benar maka akan menampilkan pesan text toast
          //Login sukses dan masuk ke activity 2
          if ((text1.contains("admin"))&&((text2.contains("1234")))) {
               Toast.makeText(this, "Login Sukses", Toast.LENGTH_SHORT).show();
               Intent intent = new Intent(login.this, menu.class);
               startActivity(intent);
          }

          else if ((text1.matches("")||text2.matches("")))
               /*
               Atau jika input text 1 dan text 2 kosong
               */
          {
               //Maka akan menampilkan pesan text toast
               Toast.makeText(this, "Isikan Username dan Password", Toast.LENGTH_SHORT).show();
          }

          else {
               //jika kedua kondisi diatas tidak memenuhi
               Toast.makeText(this, "Login Gagal /Username Password Toast.LENGTH_SHORT).show();
          }

     }

}
 setelah semua source code sudah dimasukan maka seperti inilah tampilan form loginnya
oke step pembuatan form login sudah di buat maka kita lanjutkan membuat form menu dengan menggunakan listview.
sekarang kita buka menu.xml dam copy paste source code di bawah ini

<?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"
      tools:context=".menu">

      <ListView
            android:id="@+id/listview1"
            android:layout_width="match_parent"
            android:layout_height="match_parent" />
</LinearLayout>

jika sudah lalu kita buka menu.java dan paste kan source code dibawah ini

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 menu extends AppCompatActivity {
     static final String[] list = new String[]{"Eresha", "About"};
     ListView LV;
     String[] menu = {"Persegi Panjang", "Segitiga", "Lingkaran", "Log Out"};

     @Override
     protected void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.menu);

          LV = (ListView) findViewById(R.id.listview1);
          ArrayAdapter i = new ArrayAdapter(this, android.R.layout.simple_list_item_single_choice, menu);
          LV.setAdapter(i);
          LV.setOnItemClickListener(new AdapterView.OnItemClickListener() {
               @Override
               public void onItemClick(AdapterView<?> arg0, View arg1, int itemke,
long arg3) {

                    String item = (String) LV.getItemAtPosition(itemke);
                    Toast.makeText(getBaseContext(), "Anda mengklik " + item, Toast.LENGTH_LONG).show();

                    if (item.equals("Persegi Panjang")) {
                         Intent f = new Intent(arg0.getContext(), persegipanjang.class);
                         startActivity(f);
                    } else if (item.equals("Segitiga")) {
                         Intent f = new Intent(arg0.getContext(), segitiga.class);
                         startActivity(f);
                    } else if (item.equals("Lingkaran")) {
                         Intent f = new Intent(arg0.getContext(), lingkaran.class);
                         startActivity(
                    } else if (item.equals("Log Out")) {
                         Intent f = new Intent(arg0.getContext(), login.class);
                         startActivity(f);
                    }
               }
          });
     }
}
jika sudah semua kita masukan source code di ata maka seperti inilah tampilan menu yang kita buat
sekarang kita sudah selesai ditaham pembuatan menu. sekarang kita lanjut ketahap pembuatan konten yg ada di menu tersebut, okesekarang kita buka persegipanjang.xml dan paste source code dibawah ini.

<?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:orientation="vertical"
     android:layout_width="fill_parent"
     android:layout_height="fill_parent"
     >

     <TextView
          android:layout_width="fill_parent"
          android:layout_height="wrap_content"
          android:text="Menghitung Luas Persegi Panjang"
          tools:ignore="HardcodedText" />

     <TextView
          android:text="Panjang :"
          android:id="@+id/TextView01"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          tools:ignore="HardcodedText" />

     <EditText
          android:text=""
          android:id="@+id/txtPanjang"
          android:layout_width="fill_parent"
          android:layout_height="wrap_content"
          android:inputType="numberSigned|numberDecimal"
          tools:ignore="Autofill,LabelFor" />

     <TextView
          android:text="Lebar :"
          android:id="@+id/TextView02"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          tools:ignore="HardcodedText" />

     <EditText
          android:text=""
          android:id="@+id/txtLebar"
          android:layout_width="fill_parent"
          android:layout_height="wrap_content"
          android:inputType="numberSigned|numberDecimal"
          tools:ignore="Autofill,LabelFor" />

     <Button
          android:text="Hitung Luas"
          android:id="@+id/btnHitung"
          android:layout_width="fill_parent"
          android:layout_height="wrap_content"
          android:onClick="hitungLuas"
          tools:ignore="HardcodedText" />

     <TextView
          android:text="Luas :"
          android:id="@+id/TextView03"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          tools:ignore="HardcodedText" />

     <EditText
          android:text=""
          android:id="@+id/txtLuas"
          android:layout_width="fill_parent"
          android:layout_height="wrap_content"
          android:editable="false"
          tools:ignore="Autofill,Deprecated,LabelFor,TextFields" />

     <Button
          android:text="Kembali ke Menu"
          android:id="@+id/btnBack"
          android:layout_width="fill_parent"
          android:layout_height="wrap_content"
          android:onClick="backtoMenu"
          tools:ignore="HardcodedText" />

</LinearLayout>

jikasudah kita kita buka persegipanjang.java nya lalu paste kan source code ini

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;

public class persegipanjang extends Activity {
     private EditText txtPanjang;
     private EditText txtLebar;
     private EditText txtLuas;
     private Button btnHitung;

     /**
     * Method yang dipanggil pada saat applikaasi dijalankan
     * */
     @Override
     public void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.persegipanjang);
          txtPanjang = (EditText) findViewById(R.id.txtPanjang);
          txtLebar = (EditText) findViewById(R.id.txtLebar);
          txtLuas = (EditText) findViewById(R.id.txtLuas);
               btnHitung = (Button) findViewById(R.id.btnHitung);
     }

     /**
     * Method untuk Menghitung Luas Persegi panjang dipanggil pada saat button
     * Hitung Luas diklik
     *
     * @param view
     */
     public void hitungLuas(View view) {
          try {
               int panjang = Integer.parseInt(txtPanjang.getText().toString());
               int lebar = Integer.parseInt(txtLebar.getText().toString());
               int luas = panjang * lebar;
               txtLuas.setText(String.valueOf(luas));
          } catch (Exception e) {
               e.printStackTrace();
          }
     }

     /**
     * Method untuk menutup activity dan kembali ke menu
     * @param view
     */
     public void backtoMenu(View view){
          finish();
     }
}

maka seperti ini lah tampilan dari konten persegi panjang
konten menu yang pertama sudah kita buat, sekarang lita lanjut membuat konten yang kedua yaitu segitiga.
sekarang buka segitiga.xml dan paste kan source code dibawah ini

<?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:orientation="vertical"
     android:layout_width="fill_parent"
     android:layout_height="fill_parent"
     >

     <TextView
          android:layout_width="fill_parent"
          android:layout_height="wrap_content"
          android:text="Menghitung Luas Segitiga"
          tools:ignore="HardcodedText" />

     <TextView
          android:text="Alas :"
          android:id="@+id/TextView01"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          tools:ignore="HardcodedText" />

     <EditText
          android:text=""
          android:id="@+id/txtAlas"
          android:layout_width="fill_parent"
          android:layout_height="wrap_content"
          android:inputType="numberSigned|numberDecimal"
          tools:ignore="Autofill,LabelFor" />

     <TextView
          android:text="Tinggi :"
          android:id="@+id/TextView02"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          tools:ignore="HardcodedText" />

     <EditText
          android:text=""
          android:id="@+id/txtTinggi"
          android:layout_width="fill_parent"
          android:layout_height="wrap_content"
          android:inputType="numberSigned|numberDecimal"
          tools:ignore="Autofill,LabelFor" />

     <Button
          android:text="Hitung Luas"
          android:id="@+id/btnHitung"
          android:layout_width="fill_parent"
          android:layout_height="wrap_content"
          android:onClick="hitungLuas"
          tools:ignore="HardcodedText" />

     <TextView
          android:text="Luas :"
          android:id="@+id/TextView03"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          tools:ignore="HardcodedText" />

     <EditText
          android:text=""
          android:id="@+id/txtLuas"
          android:layout_width="fill_parent"
          android:layout_height="wrap_content"
          android:editable="false"
          tools:ignore="Autofill,LabelFor,TextFields" />

     <Button
          android:text="Kembali ke Menu"
          android:id="@+id/btnBack"
          android:layout_width="fill_parent"
          android:layout_height="wrap_content"
          android:onClick="backtoMenu"
          tools:ignore="HardcodedText" />

</LinearLayout>

jika sudah paste kan source code diatas ke segitiga.xml, maka sekarang kita buka segitiga.java dan paste kan juga source code dibawah ini

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
   
public class segitiga extends Activity {
     private EditText txtAlas;
     private EditText txtTinggi;
     private EditText txtLuas;
     private Button btnHitung;

     /**
     * Method yang dipanggil pada saat applikaasi dijalankan
     * */
     @Override
     public void onCreate(Bundle savedInstanceState) {

          super.onCreate(savedInstanceState);
          setContentView(R.layout.segitiga);
          txtAlas = (EditText) findViewById(R.id.txtAlas);
          txtTinggi = (EditText) findViewById(R.id.txtTinggi);
          txtLuas = (EditText) findViewById(R.id.txtLuas);
          btnHitung = (Button) findViewById(R.id.btnHitung);
     }

     /**
     * Method untuk Menghitung Luas Segitiga dipanggil pada saat button
     * Hitung Luas diklik
     *
     * @param view
     */
     public void hitungLuas(View view) {
          try {
               int alas = Integer.parseInt(txtAlas.getText().toString());
               int tinggi = Integer.parseInt(txtTinggi.getText().toString());
               int luas = (alas * tinggi) / 2;
               txtLuas.setText(String.valueOf(luas));
          } catch (Exception e) {
               e.printStackTrace();
          }
     }

     /**
     * Method untuk menutup activity dan kembali ke menu
     * @param view
     */
     public void backtoMenu(View view){
          finish();
     }
}

jika sudah di paste kan ke segitiga.java maka tampilannya seperti ini
konten kedua sudah kita buat maka kita lanjutkan kekonten yg terakhir
konten ketiga, caranya masih sama seperti diatas, kita buka lingkaran.xml dan paste source code dibawah



<?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:orientation="vertical"
     android:layout_width="fill_parent"
     android:layout_height="fill_parent"
     >

     <TextView
          android:layout_width="fill_parent"
          android:layout_height="wrap_content"
          android:text="Menghitung Luas Lingkaran"
          tools:ignore="HardcodedText" />
     <TextView
          android:text="Jari-jari :"
          android:id="@+id/TextView01"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          tools:ignore="HardcodedText" />

     <EditText
          android:text=""
          android:id="@+id/txtJari"
          android:layout_width="fill_parent"
          android:layout_height="wrap_content"
          android:inputType="numberSigned|numberDecimal"
          tools:ignore="Autofill,LabelFor" />

     <Button
          android:text="Hitung Luas"
          android:id="@+id/btnHitung"
          android:layout_width="fill_parent"
          android:layout_height="wrap_content"
          android:onClick="hitungLuas"
          tools:ignore="HardcodedText" />

     <TextView
          android:text="Luas :"
          android:id="@+id/TextView03"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          tools:ignore="HardcodedText" />

     <EditText
          android:text=""
          android:id="@+id/txtLuas"
          android:layout_width="fill_parent"
          android:layout_height="wrap_content"
          android:editable="false"
          tools:ignore="Autofill,LabelFor,TextFields" />

     <Button
          android:text="Kembali ke Menu"
          android:id="@+id/btnBack"
          android:layout_width="fill_parent"
          android:layout_height="wrap_content"
          android:onClick="backtoMenu"
          tools:ignore="HardcodedText" />

</LinearLayout>

jika sudah kita lanjut ke lingkaran.java dan paste kodingan di bawah ini

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;

public class lingkaran extends Activity {
     private EditText txtJari;
     private EditText txtLuas;
     private Button btnHitung;

     /**
     * Method yang dipanggil pada saat applikaasi dijalankan
     * */
     @Override
     public void onCreate(Bundle savedInstanceState) {

          super.onCreate(savedInstanceState);
          setContentView(R.layout.lingkaran);
          txtJari = (EditText) findViewById(R.id.txtJari);
          txtLuas = (EditText) findViewById(R.id.txtLuas);
          btnHitung = (Button) findViewById(R.id.btnHitung);

     }

     /**
     * Method untuk Menghitung Luas Lingkaran dipanggil pada saat button
     * Hitung Luas diklik
     *
     * @param view
     */
     public void hitungLuas(View view) {
          try {

               int jarijari = Integer.parseInt(txtJari.getText().toString());
               double phi = 3.14;
               double luas = phi * jarijari * jarijari;
               txtLuas.setText(String.valueOf(luas));
          } catch (Exception e) {
               e.printStackTrace();
          }
     }

     /**
     * Method untuk menutup activity dan kembali ke menu
     * @param view
     */
     public void backtoMenu(View view){
          finish();
     }
}

oke sekarang kita sudah selesai dalam membuat Aplikasi hitung luas bidang datar dengan Android Studio.

sekian dan terimakasih
salam mahasiswa setengah mateng

Monday, September 23, 2019

MEMBUAT APLIKASI PERHITUNGAN LUAS BANGUN DATAR DI ANDROID STUDIO



Disini saya akan membuat aplikasi perhitungan luas bangun datar dan nanti akan tersambung ke menu yang didalamnya terdapat perhitungan luas persegipanjang, segitiga, dan lingkaran.
langkah pertama kita buat menunya:
buka menu.xml san tulis source code dibawah ini:
Selanjutnya buka menu.java isikan Source code  dibawah ini:
Kemudian kita buat lagi activity yang baru dengan nama persegi panjang jika sudah akan muncul dua activity yaitu: persegipanjang.xml dan persegipanjang.java kenapa .xml dan .java  nama nya sama itu sengaja saya samakan agar memudahkan.
Selanjutnya buka persegipanjang.xml isikan Source code  dibawah ini:
Kemudian buka persegipanjang.java isikan Source code nya seperti dibawah ini:
Kemudian kita buat lagi activity yang baru dengan nama segitiga.xml dan segitiga.java
Selanjutnya buka segitiga.xml isikan Source code  dibawah ini:
Kemudian buka segitiga.java isikan Source code nya seperti dibawah ini:
Kemudian kita buat lagi activity yang baru dengan nama lingkaran.xml dan lingkaran.java
Selanjutnya buka lingkaran.xml isikan Source code  dibawah ini:
Kemudian buka lingkaran.java isikan Source code nya seperti dibawah ini:
Kita buat AndroidManifest.xml gunanya untuk menyambungkan menu dengan pilihan-pilihan rumus atau sebaliknya. Isikan source code nya seperti dibawah ini:
Jika semuanya sudah dan tidak ada masalah langsuny saja di Run, maka akan muncul seperti pada gambar dibawah ini
Selesai.
Terimakasih. 

Monday, July 15, 2019

Mesin Moore

Mesin Moore

Kali Ini saya akan menjelaskan tentang  mesin Moree. karakteristik mesin moore berikut ini:
  • FSA (Finite State Automata) yang telah dipelajari adalah FSA yang hanya dapat menerima atau menolak string yang di inputkan
  • String “aaabb” diterima atau tidak
  • FSA seperti itu disebut ACCEPTER
  • String aa dan ba diterima oleh FSA tersebut, sedangkan string yang lain ditolak
  • FSA (Finite State Automata) yang mempunyai keputusan sebagai output, Automata ini disebut TRANSDUCER
  • Salah satu contoh FSA yang termasuk Transducer atau FSA yang mempunyai output adalah Mesin MOORE
  • Pada Mesin Moore outputnya berasosiasi dengan state, atau tertulis pada setiap state
  • Sehingga Jumlah State sama dengan jumlah Output
  • Salah satu contoh penerapan mesin Moore adalah mesin untuk memperoleh sisa pembagian atau n MOD
Kesimpulan!
Mesin Moore adalah finite-state machine yang outptnya berasosiasi dengan state, atau tertulis pada setiap state, sehingga jumlah state sama dengan jumlah output. Selain itu Mesin Moore tidak memiliki final state.
Definisi formal mesin Moore adalah pasangan 6 tupel M={Q,Σδ, S, Δλ}
Q : Himpunan State
Σ : Himpunan Input
δ : Fungsi Transisi
S : Simbol State Awal
Δ : Himpunan Output
λ : Fungsi Output untuk setiap state
Contoh Soal:
Mesin Moore untuk menentukan n mod 5 dengan inputan berupa biner !
M={Q,Σδ, S, Δλ}
Q = {q0,q1,q2,q3,q4}
Σ = {0,1}
= {q0}
Δ = {0,1,2,3,4}
λ = λ(q0) =0 | λ(q1) =1 | λ(q2) =2 | λ(q3) = 3 | λq4) =4
δ =


Sehingga di dapatkan diagram FSA sebagai berikut :


Sekarang kita coba masukan input  6 sampai dengan 10, lalu du konversikan ke binary seperti gambar berikut ini :

Kemudian kita uji dengan multiple run maka akan menghasilkan seperti gambar berikut ini:
Terimakasih telah berkunjung ke blog saya.

Sunday, June 30, 2019

Teori Bahasa & Automata

Mesin Pengenal Bahasa

Untuk setiap kelas bahasa Chomsky, terdapat sebuah mesin pengenal bahasa. Masing-masing mesin tersebut adalah :

Kelas BahasaMesin Pengenal Bahasa
Unrestricted Grammar (UG)Mesin Turing (Turing Machine), TM
Context Sensitive Grammar (CSG)Linear Bounded Automata, LBA
Context Free Gammar (CFG)Pushdown Automata, PDA
Regular Grammar, RGFinite State Automata, FSA

Finite State Automata (FSA)

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

Contoh diagram transisinya : 




Definisi :
M = (Q ,  Σ , δ , S , F)
Q  = {q0, q1, q2, q3, q4}
Σ  = {0,1}
S = {q0}
F = {q4}
δ = Transition Function



Kemudian kita akan mengetes input menggunakan aplikasi JFLAP. Berikut contoh data yang akan dimasukkan beserta hasilnya :


GRAMMAR DAN BAHASA

Penjelasan umum : 

Dalam pembicaraan tata bahasa, anggota alfabet dinamakan simbol terminal atau token. Kalimat adalah deretan hingga simbo-simbol terminal. Bahasa adalah himpunan kalimat-kalimat. Anggota bahasa bisa tak hingga kalimat. 

  • Simbol-Simbol Terminal:
  1. huruf kecil awal alfabet, misalnya : a, b, c
  2. simbol operator, misalnya : +, −, dan ×
  3. simbol tanda baca, misalnya : ( ) ,, dan ;
  4. string yang tercetak tebal, misalnya : if, then dan else
  • Simbol-Simbol Non Terminal:
  1. huruf besar awal alfabet, misal: A, B, C
  2. huruf S sebagai sebagai simbol awal
  3. String yang tercetak miring, misalnya : expr dan stmt,
Finite State Automata  Tata Bahasa (grammer) didefinisikan dengan empat tupel 
G = (V, T, P, S) dimana :
V = Himpunan simbol variabel / non terminal
T = Himpunan simbol terminal
P = Kumpulan aturan produksi
S = Simbol  awal

Berikut contoh diagramnya :



Definisi :
V = {S,A,B,C,D,E}
T = {a,b}
S = {S}
P = 

Langkah selanjutnya adalah menguji dengan inputan sebagai berikut :

Sekian dan terima kasih.