Take the Future

~ ~ Try not to become a man of success, but rather try to become a man of value ~ ~ Albert Einstein

Wednesday, June 14, 2017

8:05 PM | by Unknown | | No comments

Defenisi Komputasi Modern

Komputasi adalah bidang ilmu yang mempunyai perhatian pada penyusunan model matematika dan teknik penyelesaian numerik serta penggunaan komputer untuk menganalisis dan memecahkan masalah-masalah ilmu (sains).
Karakteristik komputasi modern ada 3 macam, yaitu :
  1. Komputer-komputer penyedia sumber daya bersifat heterogenous karena terdiri dari berbagai jenis perangkat keras, sistem operasi, serta aplikasi yang terpasang.
  2. Komputer-komputer terhubung ke jaringan yang luas dengan kapasitas bandwidth yang beragam.
  3. Komputer maupun jaringan tidak terdedikasi, bisa hidup atau mati sewaktu-waktu tanpa jadwal yang jelas.
Dalam kerjanya komputasi modern menghitung dan mencari solusi dari masalah yang ada, dan perhitungan yang dilakukan itu meliputi:
·         Akurasi (Big, Floating point)
·         Kecepatan (dalam satuan Hz)
·         Problem Volume Besar (Down Sizzing atau pararel)
·         Modeling (NN & GA)
·         Kompleksitas (Menggunakan Teori Big O)

Komputasi modern terbagi tiga macam, yaitu komputasi mobile (bergerak), komputasi grid, dan komputasi cloud (awan). Penjelasan lebih lanjut dari jenis-jenis komputasi modern sebagai berikut:

Mobile Computing
Mobile computing atau komputasi bergerak memiliki beberapa penjelasan, salah satunya komputasi bergerak merupakan kemajuan teknologi komputer sehingga dapat berkomunikasi menggunakan jaringan tanpa menggunakan kabel dan mudah dibawa atau berpindah tempat, tetapi berbeda dengan komputasi nirkabel. Contoh dari perangkat komputasi bergerak seperti GPS, juga tipe dari komputasi bergerak seperti smartphone, dan lain sebagainya.


Grid Computing
Komputasi grid menggunakan komputer yang terpisah oleh geografis, didistibusikan dan terhubung oleh jaringan untuk menyelasaikan masalah komputasi skala besar. Ada beberapa daftar yang dapat digunakan untuk mengenali sistem komputasi grid, adalah:
·         Sistem untuk koordinat sumber daya komputasi tidak dibawah kendali pusat.
·         Sistem menggunakan standard dan protocol yang terbuka.
·         Sistem mencoba mencapai kualitas pelayanan yang canggih, yang lebih baik diatas kualitas komponen individu pelayanan komputasi grid.

Cloud Computing
Komputasi cloud merupakan gaya komputasi yang terukur dinamis dan sumber daya virtual yang sering menyediakan layanan melalui internet. Komputasi cloud menggambarkan pelengkap baru, konsumsi dan layanan IT berbasis model dalam internet, dan biasanya melibatkan ketentuan dari keterukuran dinamis dan sumber daya virtual yang sering menyediakan layanan melalui internet.
Adapun perbedaan antara komputasi mobile, komputasi grid dan komputasi cloud, dapat dilihat penjelasannya di bawah ini:
·         Komputasi mobile menggunakan teknologi komputer yang bekerja seperti handphone, sedangkan komputasi grid dan cloud menggunakan komputer.
·         Biaya untuk tenaga komputasi mobile lebih mahal dibandingkan dengan komputasi grid dan cloud.
·         Komputasi mobile tidak membutuhkan tempat dan mudah dibawa kemana-mana, sedangkan grid dan cloud membutuhkan tempat yang khusus.
·         Untuk komputasi mobile proses tergantung si pengguna, komputasi grid proses tergantung pengguna mendapatkan server atau tidak, dan komputasi cloud prosesnya membutuhkan jaringan internet sebagai penghubungnya
Sebagai contoh disini saya akan mencoba membahas tentang website dari sebuah perusahaan yang sangat unik yaitu GO-JEK Indonesia dan link urlnya adalah www.go-jek.com. . GO-JEK Indonesia ini bergerak dalam bidang jasa transportasi dengan ojek motor.
Berbeda dengan ojek biasanya, ojek disini sudah sangat terorganisasi. Kita dapat memesan dengan menghubungi nomor telponnya, selain itu dalam web ini kita bisa mengetahui harga yang harus kita bayar sesuai jarak tempuh. Jadi kita tidak perlu tawar menawar, karena harganya sudah pasti. Namun GO-JEK ini baru mencakup daerah Jakarta saja.
Adapun tampilan dari website tersebut sebagai berikut :



Gambar diatas merupakan tampilan halaman home dari website GO-JEK ini. Dalam halaman ini terdapat informasi mengenai profil dari GO-JEK Indonesia, nomor telpon dll.



Gambar diatas adalah halaman service, berisi bagaimana cara order dan tata cara pelayanan dari GO-JEK.


Gambar diatas adalah halaman corporate yang berisi informasi tentang perusahaan lain yang menjadi klien dari GO-JEK Indonesia. Ojek disini tidak hanya untung mengantar orang, namun juga jasa antar barang dan dokumen lain.

Gambar diatas adalah halaman price yang berisi perhitungan harga jasa ojek itu. Terdapat inputan alamat jemput dan alamat tujuan. Dari sini kita bisa tau berapa harga yang harus dibayarkan.



Gambar diatas merupakan halaman yang berisi informasi lokasi supir ojek dariGO-JEK Indonesia.


Pada halaman about diatas berisi tentang informasi profil perusahaan, contact center dan tim yang bekerja didalam perusahaan GO-JEK Indonesia

Kesimpulan Website GO-Jek
Pada website gojek Indonesia sudah termaksud penerapan komputasi modern terdapat pada layanan pemesanan online. Sistem layanan pada website perusahaan ini telah mengandung unsur-unsur yang merupakan penerapan dari komputasi modern. Proses pada layanan dikerjakan atau dilakukan oleh tenaga Komputer. Kelebihan yang ada pada website ini adalah dapat diakses atau digunakan dimana saja selama terhubung dengan jaringan internet dan juga interface pada website ini sangat menarik dan bagus, terbukti dengan merasa mudahnya user menggunakanya.
Gojek sangat menguntungkan terutama karena kemudahan transaksi antara calon konsumen dengan driver gojek yang efektif dan efisien selain itu gojek tidak perlu dilakukan tawar menawar harga karena sudah ditentukan terlebih dahulu . Gojek juga bisa mengantar kita ketempat tujuan yang benar karena menggunakan gprs dan juga mudah menemukan lokasi yang belum diketahui konsumen. Disamping itu Go-Jek juga memiliki beberapa kelemahan seperti sulitnya masyarakat yang belum memahami teknologi terbaru seperti “smartphone” untuk memesan jasa layanan masyarakat tersebut.
Komentar pribadi: 
menurut saya website gojek ini sudah lumayan canggih, karena disini kita dapat melakukan join,download,video,blog banyak fitur lainnya . Tampilannya juga bagus dan bisa langsung download aplikasi gojeknya

Kekurangan
Dikarenakan memesan Go-Jek harus menggunkan aplikasi pada smartphone, maka kelemahannya dapat mempersulit masyarakat yang belum memiliki dan belum faham akan teknologi tersebut.

8:02 PM | by Unknown | Categories: | No comments

Penerapan Komputasi Modern di Bidang Geologi

Pengertian Komputasi Modern 

Komputasi Modern berasal dari kata Komputasi, Komputasi adalah algoritma yang digunakan untuk menemukan suatu cara dalam memecahkan masalah dari sebuah data input. Data input merupakan masukan yang berasal dari luar lingkungan sistem. Komputasi ini merupkan bagian perpaduan dari ilmu komputer dengan ilmu matematika. Secara umum ilmu komputasi adalah bidang ilmu yang mempunyai perhatian pada penyusunan model matematika dan teknik penyelesaian numerik serta pengguna komputer untuk menganalisis dan memecakan masalah-masalah ilmu.

Komputasi modern tersebut bisa disebut sebuah konsep sistem yang menerima intruksi-intruksi yang disimpan dalam sebuah memori komputer. Pada saat kita melakukan komputasi menggunakan komputer maka akan bisa dibilang komputasi merupakan sebuah komputasi modern. Konsep ini pertama kali digagasi oleh John Von Neumann (1903-1957). Dalam kerjanya komputasi modern menghitung dan mencari solusi dari masalah yang ada, dan perhitungan yang dilakukan itu meliputi:
1.    Akurasi
2.    Kecepatan
3.    ProblemVolume Besar
4.    Modelling
5.    Kompleksitas


Implementasi Komputasi modern pada bidang Geologi

Geologi adalah Ilmu (sains) yang mempelajari bumi, komposisinya, struktur, sifat-sifat fisik, sejarah, dan proses pembentukannya. Bidang ini berbeda dengan ilmu komputer (computer science), yang mengkaji komputasi, komputer dan pemrosesan informasi. Dalam ilmu alam, pendekatan ilmu komputasi dapat memberikan berbagai pemahaman baru, melalui penerapan model-model matematika dalam program komputer berdasarkan landasan teori yang telah berkembang, untuk menyelesaikan masalah-masalah nyata dalam ilmu tersebut.

Pada bidang geologi teori komputasi biasanya digunakan untuk pertambangan, sebuah sistem komputer digunakan untuk menganalisa bahan-bahan mineral dan barang tambang yang terdapat di dalam tanah. Contohnya, Pertambangan dan digunakan untuk menganalisa bahan-bahan mineral dan barang tambang yang terdapat di dalam tanah.

Terdapat jurnal Geologi yang menggunakan bantuan komputasi modern dalam melakukan penelitiannya, jurnal tersebut berjudul :
Desain Parameter Akusisi Seismik 3D Menggunakan Metode Statik dan Dinamik dengan Study Kasus Model Geologi Lapangan “ITS”
Dalam penelitian ini telah dilakukakan untuk menentukan desain parameter akusisi seismic yang ideal dari target tertentu dari lapangangan “ITS” berdasarkan model geologi yang telah dibuat sehingga akan didapatkan data seismic yang baik yang akan memudahkan dalam pengolahan data (processing). Pada penelitian ini menggunakan metode static yang meliputi pembuatan model geologi dengan memperhatikan data geologi daerah setempat menggunakan  software Tesseral, pembuatan template menggunakan software Mesa Expert 12 dan Processing data menggunakan software Omega untuk mendapatkan hasil stack kemudian dibandingkan antara hasil stack dengan model geologi awal yang telah dibuat. 

Alat yang digunakan
Adapun peralatan yang digunakan pada tugas akhir kali ini berupa software Messa Expert 12.00, software processing Omega dan software Tesseral. 

Tahapan Penelitian
Model geologi yang telah dibuat kemudian diolah menggunakan software Tesseral Pro sehingga akan didapatkan data berupa gather. Satu shot point akan menghasilkan satu gather. Pada penembakan ini kita menggunakan variasi ukuran jarak antar shotpoint dan frekuensi. Jarak antar shotpoint yang digunakan adalah 50 meter dan 80 meter sedangkan variasi frekuensi yang digunakan adalah 10 Hz dan 23 Hz. Gather yang merupakan output Omega berupa stack. Hasil stack kemudian dibandingkan menggunakan dengan model geologi yang dibuat. Apabila antara hasil stack dengan model geologi awal sudah mirip maka dapat dikatakan parameter yang telah di inputkan sudah tepat. Untuk memudahkan melakukan simulasi survei seismik 3D, maka dalam membuat suatu parameter survei seismik 3D digunakan suatu Software Mesa Expert 12.00 yang dapat menghasilkan parameter desain dari suatu survei seismik. Selain itu juga digunakan software pendukung seperti Tesseral untuk membuat pemodelan geologi dan melihat penjalaran gelombangnya, dan juga menggunakan Software Processing Omega untuk melakukan pengolahan data sintetik.

Pembuatan model geologi
Asumsi geologi diperoleh dari data lintasan seismic lama yang diinversi namun pada pengerjaan kali ini tidak menggunakan data lapangan sehingga kita harus membuat model geologi sederhana yang ideal. Model yang dibuat haruslah seideal mungkin agar memudahkan kita dalam prosesing data.


Gambar 1. Penampang model geologi

Data Parameter Akusisi
Setelah melalui proses perhitugan, didapatkan niali parameter akusisi sebagai berikut :


Pembuatan Template
Pada gambar di bawah ini akan ditunjukkan posisi receiver dan source dengan jarak 50 meter dan 80 meter menggunakan konfigurasi penembakan symetrical spread split. Pada jenis konfigurasi ini shotpoint berada di tengahtengah diantara receiver yang secara keseluruhan berjumlah 128 buah. Pada gambar di bawah ini akan digambarkan persebaran fold ketika menggunakan ukuran bin yang berbeda.
Gambar 2 Template penembakan ketika menggunakan binsize 25 meter

Gambar 3 Template penembakan ketika menggunakan bisize 40 meter

Pengolahan data seismik
Stack dengan variasi jarak shotpoint

Gambar 4 Hasil stack menggunakan jarak shotpoint 50 meter dan frekuensi 23 Hz


Gambar 5 Hasil stack menggunakan jarak shotpoint 80 dan frekuensi 23Hz


Pada gambar 4 dan gambar 5 merupakan hasil stack yang menggunakan frekuensi 23 Hz dengan variasi interval shotpoint 50 meter dan 80 meter. Pada saat menggunakan interval shotpoint 50 meter dapat merekam setiap lapisan secara jelas dibandingkan ketika menggunakan interval shotpoint 80 meter. Ketika menggunakan interval shotpoint yang lebih pendek dibutuhkan lebih banyak jumlah shotpoint sehingga persebaran fold akan dan S/N lebih baik pula. Oleh karena itu ketika menggunanakan interval shotpoint 50 meter menghasilkan kualitas stack lebih bagus dibandingkan ketika menggunakan interval shotpoint 80 meter.

Stack dengan variasi frekuensi

Gambar 6 Hasil stack pada frekuensi 10 Hz dan jarak shotpoint 50 meter

Gambar 7 Hasil stack pada frekuensi 23 Hz dan jarak shotpoint 50 meter

Berdasarkan teori gelombang seismik, semakin tinggi frekuensi yang diberikan akan semakin baik pula gelombang tersebut dalam membedakan lapisan tipis. Oleh karena itu hasil stack yang menggunkan frekuensi 23 Hz pada Gambar 7 batas perlapisannya dapat terlihat dengan jelas. Pada Gambar 6 terlihat banyak reflektor bidang bawah dan bidang atas yang bersatu menjadi reklektor tunggal sehingga lapisannya terlihat tebal.

Kesimpulan
Dari proses penelitian ini dapat diambil beberapa kesimpulan, yaitu :
  1. Pembuatan model geologi harus disesuaikan dengan kondisi geologi yang sebenarnya agar parameter yang digunakan tepat
  2. Indikasi suatu parameter yang digunakan sudah tepat ketika hasil stack yang dihasilkan sudah menggambar kondisi bawah permukaan bumi dengan baik sesuai dengan model geologi yang telah dibuat sebelumnya
  3. Saat menggunakan frekuensi 10 Hz lapisan-lapisan yang sangat tipis tidak terlihat sehingga beberapa lapisan terekam menjadi reflektor tunggal sedangkan frekuensi 23 Hz dapat mencitrakan lapisan-lapisan tipis dengan baik
  4. Saat menggunakan frekunsi 10 Hz dapat menggambarkan lapisan bawah permukaan lebih baik dibandingkan ketika menggunakan frekuensi 23 Hz
  5. Pembahan jurnal diatas adalah menunjukan bahwa komputasi modern sudah diterapkan pada bidang geologi, yaitu menggunakan software yang telah dijabarkan diatas untuk melakukan pengolahan data untuk penelitian tersebut, yaitu pembuatan model geologi dengan memperhatikan data geologi daerah setempat menggunakan software Tesseral, pembuatan template menggunakan software Mesa Expert 12 dan Processing data menggunakan software Omega untuk mendapatkan hasil stack sehingga memudahkan dalam menganalisis suatu pekerjaan di bidang geologi. Untuk melihat jurnal tersebut lebih lanjut silahkan klik disini.

Thursday, May 25, 2017

10:54 AM | by Unknown | Categories: | No comments


Komputasi adalah sebuah proses perhitungan, pemrosesan informasi atau pemecahan masalah dengan menggunakan algoritmaSecara umum ilmu komputasi adalah bidang ilmu yang mempunyai perhatian pada penyusunan model matematika dan teknik penyelesaian numerik serta penggunaan komputer untuk menganalisis dan memecahkan masalah-masalah ilmu. 
Implementasi komputasi sendiri ada pada berbagai bidang seperti Fisika, Kimia, Biologi, Geografi, Matematika dan Geologi. Kali ini akan dibahas tentang penerapan komputasi modern pada bidang fisika.
Implementasi komputasi modern di bidang fisika disebut juga Computational Physics yang mempelajari suatu gabungan antara Fisika,Komputer Sain dan Matematika Terapan untuk memberikan solusi pada “Kejadian dan masalah yang komplek pada dunia nyata” baik dengan menggunakan simulasi dan penggunaan algoritma yang tepat.
Penginmplementasian komputasi dibidang fisika ini sudah banyak dijelaskan di artikel ataupun jurnal. Salah satunya akan direview kali ini adalah Komputasi Solusi Transien Rangkaian Listrik dengan GGL Gayut Waktu dengan Sistem Aljabar Komputer REDUCE.

I.     PENDAHULUAN
Dalam elektromagnetisme ada materi rangkaian listrik, namun pada pembahasan ggl (gaya gerak listrik) gayut waktu biasanya penjelasan dibatasi hanya pada ggl yang sinusoidal dan pada saat sistem sudah mencapai keadaan ajeg, yaitu lama setelah ditutupnya saklar pada rangkaian listrik itu. Pada saat membahas keadaan transien, yaitu pada saat-saat yang dekat dengan ditutupnya saklar, biasanya digunakan ggl yang konstan atau ggl yang dihubung pendek.
Disini akan ditentukan solusi ketika sistem dalam keadaan transien dengan ggl yang gayut waktu secara sembarang. Penyelesaian akan dilakukan secara komputatif dengan pemrograman simbolik menggunakan bahasa REDUCE. Penggunaan pemrograman simbolik (Sistem Aljabar Komputer).

II.     METODE DERET
Sistem yang ditinjau yaitu rangkaian listrik yang terdiri atas beberapa lingkaran arus. Dalam setiap lingkaran itu variabel yang bisa digunakan adalah muatan (kapasitor) dan arus listrik (induktor dan resistor).
Solusi transien yang akan ditentukan menyatakan keadaan sistem dekat dengan saat awal t=0 sehingga dalam hal ini metode deret Taylor-McLaurin cocok untuk diterapkan. Besaran muatan listrik Q(t) diperderetkan menjadi deret pangkat terhadap waktu dengan koefisien yang ditentukan dari nilai semua derivatif besaran itu pada saat awal.

III.     BAHASA PEMROGRAMAN REDUCE
Bahasa REDUCE merupakan satu di antara berbagai bahasa pemrograman simbolik yang tersedia di dunia komputasi. Bahasa ini disusun oleh A.C. Hearns (seorang fisikawan) dan pada awalnya digunakan untuk komputasi dalam fisika partikelBahasa ini banyak juga digunakan dalam bidang keteknikan bidang fisika, mulai dari mekanika klasik sampai Teori Relativitas Umum dan Mekanika Kuantum. REDUCE mempunyai kemampuan untuk mengolah bilangan bulat, bilangan rasional, bilangan tak rasional dengan ketelitian sangat tinggi dan simbol baik dalam bentuk umum maupun ekspresi matematik. Berdasarkan berbagai pertimbangan itu maka bahasa REDUCE digunakan dalam makalah ini.

IV.     HASIL DAN PEMBAHASAN
Titik pangkal komputasi dalam persoalan ini adalah persamaan E(t)  menyatakan ggl yang gayut waktuDengan memilih satuan komputasi yang sesuai maka koefisien-koefisien yang mengandung berbagai tetapan sistem dapat dibuat tak berdimensi. Untuk memudahkan pembahasan maka koefisien-koefisien itu dimisalkan mempunyai nilai tertentu berupa bilanganbilangan real. Demikian pula dicobakan nilai ggl yang gayut waktu secara sembarang.

V.     KESIMPULAN
Komputasi merupakan jembatan antara fisika teori yang simbolik analitik (matematika) dengan fisika eksperimental yang numerik(pengukuran). 

Pemrograman merupakan implementasi dari metode komputasi.Pada jurnal ini ditunjukkan bahwa pemilihan bahasa pemrograman yang tepat akan menghasillkan output dalam bentuk yang diinginkan sesuai dengan tujuan komputasi.

Thursday, March 30, 2017

11:32 AM | by Unknown | Categories: , | No comments
Pengertian Komputasi
Komputasi adalah algoritma yang digunakan untuk menemukan suatu cara dalam memecahkan masalah dari sebuah data input. Data input disini adalah sebuah masukan yang berasal dari luar lingkungan sistem. Komputasi ini merupakan bagian dari ilmu komputer berpadu dengan ilmu matematika. Secara umum ilmu komputasi adalah bidang ilmu yang mempunyai perhatian pada penyusunan model matematika dan teknik penyelesaian numerik serta penggunaan komputer untuk menganalisis dan memecahkan masalah-masalah ilmu (sains). Dalam penggunaan secara umum, biasanya berupa penerapan simulasi komputer atau berbagai bidang keilmuan, tetapi dalam perkembangannya digunakan juga untuk menemukan prinsip-prinsip baru yang mendasar terhadap bidang ilmu yang mendasari teori ini. Bidang ini berbeda dengan ilmu komputer (computer science), yang mengkaji komputasi, komputer dan pemrosesan informasi. Bidang ini juga berbeda dengan teori dan percobaan sebagai bentuk tradisional dari ilmu dan kerja keilmuan. Dalam ilmu alam, pendekatan ilmu komputasi dapat memberikan berbagai pemahaman baru, melalui penerapan model-model matematika dalam program komputer berdasarkan landasan teori yang telah berkembang, untuk menyelesaikan masalah-masalah nyata dalam ilmu tersebut.

Pengertian Komputasi Modern
Komputasi modern bisa disebut sebuah konsep sistem yang menerima intruksi-intruksi dan menyimpannya dalam sebuah memory, memory disini bisa juga dari memory komputer. Oleh karena pada saat ini kita melakukan komputasi menggunakan komputer maka bisa dibilang komputer merupakan sebuah komputasi modern. Konsep ini pertama kali digagasi oleh John Von Neumann (1903-1957). Dalam kerjanya komputasi modern menghitung dan mencari solusi dari masalah yang ada, dan perhitungan yang dilakukan itu meliputi:
1.    Akurasi
2.    Kecepatan
3.    ProblemVolume Besar
4.    Modelling
5.    Kompleksitas

Sejarah Komputasi Modern
Dalam perkembangan komputasi modern, kita tidak bisa melupakan begitu saja orang dibalik perkembangan komputasi modern yang merubah semua pekerjaan jadi lebih mudah. Sejarah komputasi dimulai dari seseorang ilmuan yang ternama di bidang teknologi. Permulaan komputasi modern dimulai pada saat tahun 1926 oleh ilmuan yang berasal dari hungaria yang bernama John Von Neumann.
Von Neumann seorang ilmuan yang belajar dari Berlin dan Zurich dan mendapatkan diploma pada bidang teknik kimia pada tahun 1926. Pada tahun yang sama dia mendapatkan gelar doktor pada bidang matematika dari Universitas Budapest. Berkat keahlian dan kepiawaiannya Von Neumann dalam bidang teori game yang melahirkan konsep seluler automata, teknologi bom atom, dan komputasi modern yang kemudian melahirkan komputer. Kegeniusannya dalam matematika telah terlihat semenjak kecil dengan mampu melakukan pembagian bilangan delapan digit (angka) di dalam kepalanya. Setelah mengajar di Berlin dan Hamburg, Von Neumann pindah ke Amerika pada tahun 1930 dan bekerja di Universitas Princeton serta menjadi salah satu pendiri Institute for Advanced Studies. Dipicu ketertarikannya pada hidrodinamika dan kesulitan penyelesaian persamaan diferensial parsial nonlinier yang digunakan, Von Neumann kemudian beralih dalam bidang komputasi. Sebagai konsultan pada pengembangan ENIAC, dia merancang konsep arsitektur komputer yang masih dipakai sampai sekarang. Arsitektur Von Nuemann adalah komputer dengan program yang tersimpan (program dan data disimpan pada memori) dengan pengendali pusat, I/O, dan memori. berdasarkan beberapa definisi di atas, maka komputasi modern dapat diartikan sebagai suatu pemecahan masalah berdasarkan suatu inputan dengan menggunakan algoritma dimana penerapannya menggunakan berbagai teknologi yang telah berkembang seperti komputer.


FSA (Finite State Automata) merupakan tool yang sangat berguna dalam perancangan lexical analyzer, yaitu bagian dari kompilator yang mengelompokan karakter-karakter ke dalam sebuah token, yang berupa unit terkecil seperti nama, variabel, dan keyword.
FSA dipakai untuk penganalisa leksikal dan dipakai juga dalam text editor, pemrosesan teks, dan program file-searching
Spesifikasi dari sebuah bahasa pemrograman meliputi, hal-hal :
1.     Himpunan simbol-simbol (alpabet) yang bisa dipakai untuk membentuk program yang benar
2.     Himpunan program yang benar secara sintaktik
3.     Makna dari program tersebut
  

Teori Bahasa Formal
Karena bahasa adalah sebuah himpunan dari string, maka untuk mendefinisikan suatu bahasa bisa dilakukan dengan menuliskan semua string yang menjadi anggotanya. Bagaimana kita bisa melakukannya jika jumlah string yang menjadi anggota bahasa tersebut banyak sekali atau bahkan tidak berhingga ? Pada Teori Bahasa Formal, hal ini dilakukan dengan mendefinisikan tata bahasanya.  Tata Bahasa = (T,N,S,P), di mana
·                  adalah himpunan berhingga simbol-simbol terminal
·                  adalah himpunan berhinggasimbol-simbol non terminal
·                  adalah simbol awal, S  N
·                  adalah himpunan berhingga aturan produksi yang setiap elemennya berbentuk α → β, α, β  ( N)+, α harus berisi minimal 1 simbol non terminal.
Sentential form adalah semua string yang dapat diturunkan dari simbol awal dengan menggunakan aturan produksi PKalimat(sentence) adalah sentential form yang tidak mengandung simbol non terminal. Bahasa yang dihasilkan dari G dinotasikan denganL(G), yaitu himpunan kalimat yang dapat diturunkan dari dengan menggunakan P.
Teori Automata
Berasal dari bahasa Yunani automatos, yang berarti sesuatu yang bekerja secara otomatis (mesin). Dalam tulisan ini akan dipergunakan istilah automaton sebagai bentuk tunggal danautomata sebagai bentuk jamak. Teori Automata adalah teori tentang mesin abstrak yang :
·                  bekerja sekuensial
·                  menerima input
·                  mengeluarkan output
Pengertian mesin di tulisan ini, bukan hanya mesin elektronis/mekanis saja melainkan segala sesuatu (termasuk perangkat lunak) yang memenuhi ketiga ciri di atas. Penggunaan automata pada perangkat lunak terutama pada pembuatan kompiler bahasa pemrograman. Setelah kita mengetahui definisi bahasa dan automata, pertanyaan selanjutnya adalah apakah hubungan antara teori automata dan bahasa formal ? Secara garis besar ada dua fungsi automata dalam hubungannya dengan bahasa, yaitu :
- fungsi automata sebagai pengenal (RECOGNIZER) string-string dari suatu bahasa, dalam hal ini bahasa sebagai masukan dari automata.
- fungsi automata sebagai pembangkit (GENERATOR) string-string dari suatu bahasa, dalam hal ini bahasa sebagai keluaran dari automata.
Dalam tulisan ini, pembahasan akan ditekankan pada fungsi pertama dari automata. Untuk mengenali string-string dari suatu bahasa, akan dimodelkan sebuah automaton yang memiliki komponen sebagai berikut :
- pita masukan, yang menyimpan string masukan yang akan dikenali;
- kepala pita (tape head), untuk membaca/menulis ke pita masukan;
- Finite State Controller (FSC), yang berisi status-status dan aturan-aturan yang mengatur langkah yang dilakukan oleh automaton berdasarkan status setiap saat dan simbol masukan yang sedang dibaca oleh kepala pita;
- pengingat (memory), untuk tempat penyimpanan dan pemrosesan sementara Automaton pengenal, setelah membaca string masukan dan melakukan langkah langkah pemrosesan yang diperlukan, akan mengeluarkan keputusan apakah string tersebut dikenali atau tidak.
Konfigurasi adalah suatu mekanisme untuk menggambarkan keadaan suatu mesin pengenal , yang terdiri atas :
- status FSC
- isi pita masukan dan posisi kepala pita
- isi pengingat
Mesin pengenal bersifat deterministik bila dalam setiap konfigurasi, hanya ada satu kemungkinan yang dapat dilakukan mesin, jika tidak mesin pengenal bersifat non deterministik. Contoh mesin automata :
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhhlbg_iIa7KQ6s1Op6fvR0x6IIX19GfewH2FlHO1llPUcPHWEoWRQFlF8ae-tfobO-fp02EkwUGo3TTpz7CMX_tEGK_SM4ee4n0fw-N1GF1hfo9AjJmiH85kL12n7-CCr2mG0cXCKYG9Ah/s400/dsa.jpg

·                  Sebuah string input diterima bila mencapai state akhir/ final state yang digambarkan dengan lingkaran ganda.
·                  Pada gambar diatas, mesin mendapat string input berikut :
–        ada : diterima
–        adu : diterima
–        add : ditolak
·                  Mesin diatas memiliki 6 state {qo, q1, q2, q3, q4, q5}.
·                  State awal : q0, State akhir : {q3, q4}.
·                  Himpunan simbol input : {a,d,u}.

Konsep Bahasa dan Otomata
•         Simbol adalah suatu entitas abstrak yang tidak bisa didefinisikan secara formal
•         Huruf dan digit adalah contoh dari simbol yang sering di pakai
•         String adalah suatu deretan berhingga dari simbol-simbol, contoh : ‘a’, ‘b’, ‘c’ adalah simbol dan ‘abc’ adalah sebuah string.
•         String kosong dinyatakan dengan Îµ di definisikan panjangnya = 0 atau |ε|= 0
•         Bahasa adalah himpunan string-string dari simbol-simbol untuk suatu alpabet yang memiliki makna.
•         Ada istilah bahasa kosong, yaitu bahasa yang tidak terdiri dari string-string, contoh himpunan kosong Ø
•         Otomata adalah suatu bentuk yang memiliki fungsi-fungsi dari komputer digital, menerima input menghasilkan output, bisa memiliki penyimpanan sementara, dan mampu membuat keputusan dalam mentransformasikan input ke output
•         Otomata merupakan suatu sistem yang terdiri atas sejumlah berhingga (state), dimana state menyatakan informasi mengenai input yang lalu dan dapat dianggap sebagai memori mesin.
•         Input pada mesin otomata dianggap sebagai bahasa yang harus dikenali oleh mesin. Selanjutnya mesin otomata membuat keputusan atau keluaran yang mengindikasikan apakah input itu diterima atau tidak

FINITE STATE MACHINES

Finite State Machines (FSM) adalah sebuah metodologi perancangan sistem kontrol yang menggambarkan tingkah laku atau prinsip kerja sistem dengan menggunakan tiga hal berikut: State (Keadaan), Event (kejadian) dan Action (aksi). Pada satu saat dalam periode waktu yang cukup signifikan, sistem akan berada pada salah satu state yang aktif. Sistem dapat beralih atau bertransisi menuju state lain jika mendapatkan masukan atau event tertentu, baik yang berasal dari perangkat luar atau komponen dalam sistemnya itu sendiri (misal interupsi timer). Transisi keadaan ini umumnya juga disertai oleh aksi yang dilakukan oleh sistem ketika menanggapi masukan yang terjadi. Aksi yang dilakukan tersebut dapat berupa aksi yang sederhana atau melibatkan rangkaian proses yang relative kompleks. Berdasarkan sifatnya, metode FSM ini sangat cocok digunakan sebagai basis perancangan perangkat lunak pengendalian yang bersifat reaktif dan real time. Salah satu keuntungan nyata penggunaan FSM adalah kemampuannya dalam mendekomposisi aplikasi yang relative besar dengan hanya menggunakan sejumlah kecil item state. Selain untuk bidang kontrol, Penggunaan metode ini pada kenyataannya juga umum digunakan sebagai basis untuk perancangan protokol-protokol komunikasi, perancangan perangkat lunak game, aplikasi WEB dan sebagainya.
Dalam bahasa pemrograman prosedural seperti bahasa C, FSM ini umumnya direalisasikan dengan menggunakan statemen kontrol switch case atau/dan if..then. Dengan menggunakan statemen-statemen kontrol ini, aliran program secara praktis akan mudah dipahami dan dilacak jika terjadi kesalahan logika.

 Finite State Machine di dunia AI Game Programming, merupakan salah satu teknik yang paling sering digunakan. Alasannya yaitu:
1. Implementasinya mudah dan cepat
2. Memudahkan proses debugging. Karena telah dipecah menjadi kepingan yang lebih kecil, proses debugging kalau terjadi behavoiur yang tidak semestinya, menjadi lebih mudah
3. Proses komputasi yg minimal, karena sejatinya FSM hanyalah conditional statement yang dikemas dalam bentuk yang lebih elegan.
4. Fleksibel, dapat dikombinasikan dengan teknik AI lain misalnya fuzzy logic dan neural network
Kekurangannya:
1. Behaviour dari agen mudah diprediksi, karena tidak ada searching dan atau learning di dalam agen tersebut
2. Karena mudah diimplementasi, kadang programmer langsung tembak di eksekusi tanpa melakukan desain FSM terlbih dahulu. Biasanya akan terjadi FSM yang terfragmentasi
3. Timbul apa yang dinamakan dengan State Oscillation yaitu ketika batasan antara dua buah state terlalu tipis:

MESIN TURING
Mesin Turing adalah model yang sangat sederhana dari komputer.  Secara esensial, mesin Turing adalah sebuah finite automaton yang miliki sebuah tape tunggal dengan panjang tak terhingga yang dapat membaca dan menulis data.  Mesin Turing menggunakan notasi seperti ID-ID pada PDA untuk menyatakan konfigurasi dari komputasinya. Stack pada PDA memiliki keterbatasan akses.  Elemen yang dapat diakses hanya elemen yang ada pada top stack. Pada Mesin Turing, memori akan berupa suatu tape yang pada dasarnya merupakan array dari sel-sel penyimpanan.
Visualisasi dari sebuah mesin Turing diberikan oleh gambar berikut:
mesinturing1

Mesin terdiri dari sebuah finite control, yang dapat berada dalam sebuah himpunan berhingga dari state.  Terdapat sebuah tape yang dibagi ke dalam kotak-kotak atau sel-sel.  Setiap sel dapat menampung sebuah dari sejumlah berhingga dari simbol.  Pada awalnya, input yang merupakan string dari simbol dengan panjang berhingga dipilih dari input alphabet, ditempatkan pada tape. Sel-sel tape yang lain, perluasan secara infinite ke kiri dan ke kanan, pada awalnya menampung simbol khusus yang dinamakan blank. Blank bukan sebuah input symbol, dan mungkin terdapat simbol tape yang lain disamping input symbol dan blank.  Terdapat sebuah tape head yang selalu ditempatkan pada salah satu dari sel-sel tape.  Mesin turing dikatakan men-scan sel tersebut. Pada awalnya, tape head berada pada sel paling kiri yang menampung input. Sebuah pergerakan mesin Turing adalah sebuah fungsi dari state dari finite control dan tape symbol yang di-scan.