Tepat sehari lalu tanggal 23 Juni 1912, adalah hari kelahiran Alan Turing. Pria kelahiran di Maide Vale, London, Inggris tersebut menjadi seorang ahli matematika. Pemikiran-pemikiran jeniusnya menjadi batu pijakan penting dalam perkembangan komputer digital modern.
Nama lengkap Alan Turing adalan Alan Mathison Turing. Sejak kecil, Alan Turing sudah dikenal sebagai anak yang jenius. Tak heran jika kemudian ia menjadi orang pertama yang memberikan teoritis paling penting tentang era komputer yang dapat digunakan secara universal, untuk berbagai hal.
Alan Turing Bapak Komputer Dengan Teoritis Mesin Turing Lengkap
Salah satu pemikiran cukup jenius dari Alan Turing adalah teoritis tentang mesin turing lengkap (Universal Turing Machine). Gagasan tentang mesin universal inilah yang kemudian membuat namanya diabadikan menjadi “Turing Complete”, turing lengkap. Dari situlah yang membuat perkembangan komputer menjadi pesat. Hasil dari pemikiran Alan Turing hingga dianggap menjadi bapak komputer.
Apa yang luar biasa dari teoritis tentang mesin universal Alan Turing itu? Dalam pandangan Alan Turing, mesin universal itu akan dapat bekerja mengikuti prosedur dengan cara kerja yang sama seperti halnya mesin Turing yang asli. Katakan saja seperti sebuah mesin untuk bisa bermain catur, atau melakukan penghitungan bilangan prima, dan lain sebagainya (Paul Strathern, Turing and the Computer: The Big Idea, 1999).
Teoritis tentang Mesin Turing itu kurang lebihnya diilhami pendapat Kurt Godel, salah satu ahli matematika yang juga banyak bekerja dengan Alan Turing. Gagasan Turing kemudian dipublikasikan dengan judul “On Computable Numbers, with an Application to the Enthscheidungsproblem”.
Sementara gagasan Alan Turing jauh menjadi lompatan besar. Berbeda dengan Godel, Alan menyebut bahwa matematika tidak hanya tak lengkap secara logis, namun matematika juga tidak lengkap secara matematis.
Teoritis Turing Lengkap, Turing Complete
Kesimpulan atas pandangan Godel, oleh Alan menjadi lebih bersifat matematis. Alan Turing bahkan mengajukan tentang konsep mesin yang mampu mengenali dalil yang bisa berubah-ubah dalam sistem matematis.
Alasan yang cukup mendasari hal tersebut lantaran Alan Turing menilai bahwa matematika tidak dapat memisahkan diri dari proposisinya yang selalu berubah-ubah. Meski dengan cara matematis apapun juga.
Alan Turing memandang bahwa mesin teoritis itu akan menjadi mesin universal Turing yang lengkap. Dapat bekerja seperti halnya mesin turing lain pada umumnya. Dapat bekerja jika menerima perintah berupa kode bilangan yang pada akhirnya mempu mendeskripsikan bagaimana mesin itu bisa bekerja.
Tidak berbeda dengan bagaimana alur sebuah kinerja aktif manusia, yang pada akhirnya bisa juga dilakukan menjadi sebuah komponen baca atau tulis melalui posisi pita dari kiri ke kanan. Teoritis mesin inilah yang sebenarnya banyak dipandang menjadi cikal bakal terciptanya komputer pertama, dengan berdasarkan kapabilitas yang menyerupai atau bisa berfungsi sama seperti mesin Turing.
Turing Complete dan Masalah Dicidability
Pada akhirnya, muncul sebuah kesimpulan yang saat ini bisa ditemui. Bahwa apapun yang bisa dilakukan oleh mesin turing, pastinya akan bisa dilakukan oleh perangkat komputer. Meskipun tetap saja memiliki batasan secara spesifik.
Namun, dalam temuan yang ditulis oleh Alan Turing yang berjudul “On Computable Numbers, with an Application to the Enthscheidungsproblem”, kata akhir “Enthscheidungsproblem” itu juga menjadi perhatian khusus oleh David Hilbert, 1928.
Menurut Hilbert, Enthscheidungsproblem itu adalah menjadi masalah yang penuh ketidakpastian. Istilah itu disebut Hilbert sebagai masalah “dicidability”. Apakah memang ada sebuah mesin dengan kapabilitas yang serbaguna sepenuhnya, dalam satu mesin, untuk apapun juga?
Terlebih lagi, ada sebuah pertanyaan mendasar paling utama tentang kapabilitas mesin universal itu. Bagaimana jika mesin itu diberikan sebuah kode bilangan tertentu agar bisa membuat deskripsi untuk dirinya sendiri?
Padahal, jika mesin itu bisa mendeskripsikan dirinya sendiri, namun tetap harus mengikuti dirinya lagi, mengulang kembali, dan seterusnya. Mestinya, mesin ini akan bisa berjalan dengan sendiri. Yang terjadi kemudian adalah kekacauan. Lantaran mesin tersebut pada akhirnya akan kontradiktif dengan dirinya sendiri.
Mengingat bahwa Turing juga menyebutkan bahwa matematika pada dasarnya juga tidak lengkap baik secara logis, maupun matematis, dirinya juga menetapkan batasan-batasan kapabilitas mesin itu.
Pada sekitar 20 tahunan yang lalu, sudah muncul begitu banyak alat rumah tangga seperti panel video game, telepon genggam, perekam kaset video, sampai PDA, industri, otomotif, serta alat elektronik lain.
Perangkat-perangkat elektronik itu juga berisi sirkuit elektronik yang berfungsi memenuhi syarat Turing Lengkap. Mesin berupa chip ROM itupun mungkin perlu diganti jika perlu untuk mengubah program mesinnya. Dalam hal ini, perangkat itu juga bersifat seperti sebuah komputer dengan kemampuan khusus atau tertentu, disebut dengan “mikrokontroler” atau “komputer benam” (embedded computer).
Oleh sebab itu banyak orang lebih suka membatasi definisi komputer menjadi sebuah perangkat untuk mengolah informasi, ketimbang sebagai sistem yang lebih besar dari perangkat seperti telepon, pesawat, dan alat elektronik lain.
Keterbatasan-keterbatasan itu juga menjadi titik tolak bagi Alan Turing, bahwa sebuah mesin universal yang lengkap, tidak hanya ditunjang dari sisi perangkat keras saja. Melainkan juga ditunjang dengan piranti lunak yang lebih memadai.
Dalam hal inilah kemudian Turing Complete yang berasal dari pemikiran Alan Turing menjadi sebuah istilah cukup penting dalam bahasa pemprograman. Pemikiran-pemikiran Alan Turing, juga membuatnya menjadi bapak kriptografi modern.
Alan Turing Bapak Kriptografi Modern
Pada pemahaman tentang Turing Complete dalam bahasa pemprograman adalah bahwa bahasa pemprograman itu menunjukkan komputasi yang serupa atau sama seperti mesin Turing lengkap. Masalah apapun dikatakan bisa diselesaikan oleh mesin Turing jika menggunakan sejumlah sumber daya dengan jumlah yang terbatas.
Ambil contoh seperti keterbatasan waktu, ataupun bahan pita dalam sebuah kaset. Masalah itu bisa diselesaikan dengan bahasa pemprograman lainnya, namun tetap menggunakan sumber daya yang terbatas.
Banyak yang menilai bahwa untuk dapat memberikan gambaran bahwa bahasa pemprograman yang digunakan adalah Turing Complete, dengan memberikan penerjemahan melalui program yang setara dengan bahasa yang digunakan. Jika bisa menjadi skema dalam bahasa lain, maka jelaslah bahwa itu adalah Turing Complete.
Kenyataannya hampir keseluruhan bahasa pemprograman komputer bersifat Turing Complete, atau Turing lengkap. Salah satunya yang paling kental dan bisa dilihat seperti memiliki fungsi ifs, loop dan lainnya. Secara umum, turing complete lebih memiliki struktur iterasi dengan batas kesewenang-wenangan yang tinggi.
Meski demikian, teoritis mesin Turing menjadi model abstrak mesin pemprograman, disebut dengan bahasa pemprograman. Teoritis itu menjadi obyek dasar yang konkrit bagaimana membuktikan teorama terkait algoritma, bagaimana komputasi komputer bisa dilakukan.
Bitcoin, bukanlah Turing complete. Melainkan “Turing incompleteness”. Dalam bahasa pemprograman Bitcoin, tidak ada kapabilitas untuk dapat melakukan komputasi dengan fungsi-fungsi kuat seperti looping, dan lain-lain.
Komputasi yang dilakukan oleh para penambang, melalui menjalankan script. Sedangkan tidak ada ruang untuk bisa memasukkan looping secara tidak terbatas, namun dengan sumber daya yang terbatas. Sedangkan keterbatasan-keterbatasan pada turing complete menjadi fakta bahwa definisi itu menjadi tidak terlalu penting, dikenal dengan istilah lain bernama “HaltingProblem”. Teorama tentang Turing Incompleteness atau HaltingProblem menjelaskan bahwa tidak ada pertanyaan yang tidak penting atas apa yang bisa dijawab dari mesin Turing, untuk semua mesin Turing.