Mesin Status

Memodelkan cara kerja mesin secara abstrak.

Mesin status adalah mesin abstrak untuk memodelkan suatu proses. Contoh sederhananya adalah seperti ini.

Ketika kamu menekan bolpoin, ujung bolpoin akan keluar. Ketika kamu menekan tombol yang sama sekali lagi, ujung bolpoinnya akan masuk kembali.

Keadaan masuk atau keluarnya bolpoin disebut sebagai status. Aksi memencet bolpoin disebut sebagai memberikan input kepada bolpoin tersebut. Setiap ada input yang diberikan, mesin ini akan mengganti status. Pergantian status ini disebut sebagai transisi. Dalam contoh ini, berarti aturan transisinya adalah:

  • Jika status muncul dan diberi input tekan, status akan berubah menjadi sembunyi.
  • Jika status sembunyi dan diberi input tekan, status akan berubah menjadi muncul.

Transisi ini dapat dinyatakan sebagai tabel seperti di bawah ini.

Status tekan
Muncul Sembunyi
Sembunyi Muncul

Atau bisa juga dengan diagram seperti di bawah ini.

Transisi Mesin Status Bolpoin

Kamu bisa mencoba melihat transisi yang terjadi pada gambar interaktif berikut.

Bolpoin sebagai contoh mesin status.
Silakan klik bolpoinnya.

Mesin pengenal URL

Mesin status tidak selalu sesederhana itu. Contohnya adalah mesin untuk mengenali URL di bawah ini.

URL adalah singkatan dari Uniform Resource Locator, yang kamu ketikkan di bagian atas browsermu untuk mengunjungi situs atau mengunduh file tertentu.

URL disusun atas beberapa bagian.

https :// en.wikipedia.org :443 /wiki/URL ?ab=cd&ef=gh #Syntax
Skema Host Port Path Query Fragment
  • Bagian http atau https biasanya tidak diketikkan tetapi ditambahkan otomatis oleh browser. Bagian ini disebut sebagai skema. Skema selalu diakhiri dengan tanda titik dua (:) disusul dengan dua garis miring (//).
  • Nama domain, seperti berpikirmatematis.org, youtube.com, dan sebagainya.
  • Kadang-kadang nama domain bisa diikuti dengan nomor port.
  • Setelah nama domain dan nomor port, berikutnya adalah path, yaitu lokasi objek (misalnya halaman web) yang dicari.
  • Path bisa diikuti oleh query. Query digunakan untuk argumen tambahan, misalnya kata yang dicari, urutan yang diinginkan, dan sebagainya.
  • Bagian terakhir adalah fragment yang diawali tanda tagar (#). Fragment adalah penunjuk bagi bagian halaman yang dibuka. Contohnya, pada halaman ini, tagar #top menunjuk pada awal halaman.

Kita dapat dengan mudah mengenali URL dalam suatu teks. Tidak demikian halnya dengan komputer. Program untuk mendeteksi apakah suatu rangkaian kata adalah URL dapat dibuat menggunakan pemodelan mesin status. Untuk mendapat gambaran bagaimana prosesnya, silakan coba media interaktif berikut ini.

Catatan: Diagram peralihan status di atas tidak menampilkan semua panah agar tidak membingungkan. Selain itu, huruf a mewakili huruf dan karakter yang diizinkan dalam konteksnya masing-masing.
Parse
Daftar URL yang ditemukan:

Cara kerjanya

Komputer akan selalu memulai dengan status INIT. Karakter dalam teks akan dibaca satu per satu, dan status akan berubah-ubah sesuai karakter yang sedang dibaca.

Misalnya, kamu mengetikkan:

URLnya adalah https://google.com

Komputer akan memulai dengan status INIT. Kemudian ia akan membaca huruf U, dan statusnya berubah menjadi SKEMA. Ketika ia membaca terus ia menemukan huruf R, L, n, y, a dan statusnya tidak berubah. Ketika selanjutnya huruf yang dibaca adalah spasi, berarti tidak cocok dengan alur diagram di atas. Akibatnya komputer akan mengganti statusnya menjadi BUKAN_URL, dan memulai dari awal untuk membaca kata adalah.

Ketika komputer menemukan huruf h dalam https, ia akan memulai lagi dengan status SKEMA. Demikian seterusnya hingga ditemukan karakter ://, yang akan mengganti statusnya menjadi PA, PB, dan PC. Tiga status ini diperlukan karena penyebutan rangkaian tandanya harus lengkap, :// tidak boleh hanya : atau :/.

Setelah melalui karakter :// komputer akan membaca huruf g, yang membuat statusnya berubah menjadi HOST. Demikian seterusnya hingga seluruh karakter google.com sudah dibaca semua. Selesai membaca ini, state akan langsung berubah menjadi INI_URL. Pada saat state menjadi INI_URL, maka komputer akan mencatat barisan karakter dari ketika status SKEMA hingga status menjadi INI_URL, dan melaporkan rangkaian karakter tersebut sebagai URL.

Mengapa ini matematika?

Mesin status ini dapat kita golongkan sebagai matematika. Mesin ini dipelajari dalam ilmu rekayasa dan ilmu komputer. Namun perlu dicatat bahwa yang merupakan matematika adalah konsep mesin status itu sendiri, bukan mesin yang dibuat dengan konsep mesin status.

Bolpoin suatu hari akan rusak. Pegasnya mungkin akan meleset atau putus sehingga aturan perubahan statusnya akan dilanggar. Walaupun demikian, kita bisa mengatakan bolpoin itu rusak karena dalam pikiran kita ada konsep bolpoin yang bekerja dengan baik. Konsep ini termasuk matematika. Bolpoinnya sendiri tidak.

Sekarang mari kita selidiki kesesuaian mesin status dengan keenam syarat matematika sebelumnya.

Mesin ini diasumsikan tidak dilanggar

Aturan yang dibuat, yaitu perpindahan dari satu status ke status yang lain harus ditaati sepenuhnya agar mesin ini berjalan dengan baik.

Aturannya tidak multi tafsir

Dari satu status, syarat perpindahan ke status yang lain hanya berdasarkan input tertentu, yang tidak dapat ditafsirkan secara berbeda.

Tereduksi menjadi aturan sederhana

Di manakah letak tereduksinya? Kita melihat bahwa mesin status ini disusun dari komponen yang sangat sederhana: Status dan input. Dengan mengombinasikan status dan input yang berbeda-beda, kita bisa menyusun banyak sekali mesin status yang berbeda.

Macam-macam contoh mesin status. Semuanya dibuat hanya dari dua komponen dasar, yaitu status dan input, dengan aturan transisi yang dalam diagram tampak sebagai panah dari status satu pada status yang lain (atau status yang sama). Sekaligus contoh ini menunjukkan bahwa mesin status juga bersifat abstrak, karena status maupun inputnya bisa diganti apa saja.

Berbagai macam mesin status

Bergantung hanya pada logika deduktif

Untuk menjalankan aturan dalam mesin-mesin status ini, kita cukup mengikuti aturan logika deduktif sederhana.

Misalnya pada contoh mesin status bolpoin:

Jika status muncul dan tombol ditekan, maka status berubah menjadi sembunyi.
Ternyata statusnya memang sedang muncul.
Ternyata tombol ditekan.
Berarti, status sekarang harus berubah menjadi sembunyi.

Konsisten

Tidak ada aturan perubahan status yang bertentangan satu sama lain.

Mengenai objek, relasi, dan operasi yang abstrak

Dalam mesin status ini kita tidak diharuskan membicarakan objek tertentu. Mesin status bolpoin tadi bisa diterapkan juga untuk saklar lampu, tombol play pada video, tombol AC, dan sebagainya.

Masih kurang matematika?

Kalau kamu termasuk kategori orang yang belum merasa greget kalau belum ada simbol-simbol tertentu, kamu mungkin akan cocok dengan definisi berikut ini.

Mesin status didefinisikan sebagai 5-tupel (\Sigma, S, s_0, \delta, F) dengan:

  • \Sigma adalah himpunan simbol-simbol yang mewakili input.
  • S adalah himpunan simbol-simbol yang mewakili status.
  • s_0 adalah status awal dari mesin.
  • \delta: S\times\Sigma \rightarrow S adalah fungsi transisi, yaitu perubahan status yang terjadi dari status lain akibat diberikannya input tertentu.
  • F adalah himpunan simbol status yang mewakili keadaan diterima (seperti pada contoh URL).

Sebagai contoh, mesin status bolpoin di atas dapat dinyatakan sebagai (\Sigma, S, s_0, \delta, F) dengan:

  • \Sigma = \{tekan\}
  • S = \{muncul, sembunyi\}
  • s_0 = muncul
  • \delta(muncul, tekan) = sembunyi
    \delta(sembunyi, tekan) = muncul
  • F = \varnothing

Bagaimana? Greget bukan?

Berikutnya: Bagaimana dengan basket?

Ditulis oleh
Pak Ari
Ditulis pada
Terakhir diupdate
Dipublikasikan
Frase kunci
hakikat matematika