Kode Rahasia yang Terdapat di Dalam Film 'Ex Machina'
Soeleman 11 Agustus 2017
Banyak sudah movie yang bertema teknologi menampilkan kode dalam scene. Kadang kodenya hanya potongan dan random. Dari source-code, xml bahkan configuration saja.
Bagi yang sudah menonton Ex Machina, ada potongan kode yang utuh dan bisa di execute. Dan menarik juga melihat apa yang di kerjakan oleh kode itu.
Kode didalam film
Seperti yang di gambar bawah, kita mendapatkan kode untuk men-decryt pesan. kode itu di bernama Bluebook.
Kebetulan code itu menggunakan Python dan bisa di-execute dengan Python 2.7 ( pip 1.5.6 dan setuptools 7.0 ). Lebih jelasnya code-nya seperti di bawah.
.NET
Melihat kode itu, kita tahu itu menggunakan Prime-Sieve algo. Tampaknya seru juga kalau bisa terjemahkan ke dalam .NET languge seperti C# dan VB.NET. Lumayan khan jadi lebih mengerti maksud kode itu dengan bahasa yang biasa kita gunakan.
Banyak cara meng-convert kode ini, tapi kita coba semirip mungkin dengan original. Walau kita tahu bahwa kode itu sendiri masih bisa dioptimalkan dengan algo yang berbeda.
Sieve
Method ini akan membuat Array yang dijadikan sebagai prime-squre. Disini kita menggunakan bantuan LINQ untuk membuat itu.
< VB.NET >
< C# >
Prime
Dalam ini kita membuat pencarian dari array diatas. Boleh dibilang ini 'mirip' sekali dengan kode aslinya.
< VB.NET >
< C# >
Kode
Kedua method sudah dibuat. Dan saatnya kita menggunakan untuk mendapakan hasil yang sama dengan kode asli. Kode ini lebih banyak memasukkan variable dan mengolahnya. Kalau dibandingkan, tidak banyak perbedaan juga.
< VB.NET >
< C# >
Pesan dalam Kode
Hasil dari code itu ternyata cukup menarik. Kode itu memberikan informasi tentang sebuah buku. ISBN = 9780199226559 dan kalau kita cari di-amazon maka kita akan mendapatkan judul buku seperti di gambar bawah. Sutradaranya kreatif, untuk menyisipkan 'pesan' itu dalam code-in-scene.
Referensi
Perhatian! Code yang ditampilkan dalam tulisan ini merupakan ilustrasi dari yang ingin dipaparkan dan bukan production ready code. Sudah banyak kejadian karena asal meng-copy-and-paste tanpa mengerti code yang diambil itu ke dalam production. Selain itu perlu ada tambahan code dan test sebelum siap untuk digunakan secara utuh.