Infomalangraya.com –
Menjelang musim bowling kampus, penggemar sepak bola di seluruh negeri akan terpesona, tidak hanya oleh aksi di lapangan, tetapi juga oleh “aksi kartu” rumit yang dilakukan oleh penonton stadion. Kerjasama yang sangat terkoordinasi ini mampu menghasilkan gambar detail yang menyerupai gambar piksel di layar komputer — dan diberi kode dengan cara yang hampir sama.
Buku baru Michael Littman, Code to Joy: Mengapa Setiap Orang Harus Belajar Sedikit Pemrograman, berisi contoh-contoh serupa tentang bagaimana mesin di sekitar kita beroperasi dan bagaimana kita tidak perlu mencurigai masa depan yang dipenuhi robot selama kita belajar berbicara dalam bahasa mereka (setidaknya sampai mereka selesai mempelajari bahasa kita). Dari mengurutkan perintah hingga menyimpan variabel, Kode untuk Sukacita memberikan panduan yang mudah diakses dan menghibur tentang dasar-dasar pemrograman untuk pembuat kode pemula dari segala usia.
Dikutip dari Code to Joy: Mengapa Setiap Orang Harus Belajar Sedikit Pemrograman oleh Michael L Littman. Diterbitkan oleh MIT Press. Hak Cipta © 2023 oleh Michael L Littman. Seluruh hak cipta.
“BERI AKU BIRU!”
Aksi kartu, di mana penonton stadion memegang tanda berwarna untuk membuat papan reklame raksasa sementara, seperti flash mob yang pesertanya tidak memerlukan keahlian khusus dan bahkan tidak perlu berlatih terlebih dahulu. Yang harus mereka lakukan hanyalah muncul dan mengikuti instruksi dalam bentuk urutan perintah singkat. Instruksi tersebut memandu penonton stadion untuk mengangkat tinggi-tinggi kartu berwarna berukuran poster pada waktu yang tepat seperti yang diumumkan oleh pemimpin pemeran pengganti. Serangkaian instruksi aksi kartu biasanya dimulai dengan instruksi untuk mengikuti instruksi:
-
mendengarkan instruksi dengan seksama
-
pegang bagian atas kartu setinggi mata (bukan di atas kepala Anda)
-
tahan warna yang ditunjukkan ke arah bidang (tidak menghadap Anda)
-
berikan kartu ke lorong setelah menyelesaikan aksi (jangan merobek kartunya)
Instruksi ini mungkin terdengar jelas, namun tidak menyatakannya pasti akan membawa bencana. Meski begitu, Anda tahu pasti ada orang cerdas yang bertanya setelahnya, “Maaf, apa yang pertama lagi?” Itu pasti yang akan saya lakukan.
Kemudian tibalah acara utama, yang bagi satu orang tertentu dalam kerumunan, dapat berupa urutan perintah:
-
Biru
-
Biru
-
Biru
Menakjubkan, bukan? Mungkin Anda harus melihat gambaran yang lebih besar. Seluruh gagasan aksi kartu memanfaatkan fakta bahwa anggota penonton stadion duduk di kursi yang diatur dalam kotak. Dengan mengangkat papan tanda persegi panjang berwarna, mereka mengubah diri mereka menjadi sesuatu seperti tampilan layar komputer besar. Setiap peserta bertindak sebagai satu elemen gambar— piksel orang! Pergeseran saat kartu diangkat mengubah gambar atau bahkan menyebabkannya berubah seperti animasi gif yang lebih besar dari aslinya.
Aksi kartu dimulai sebagai aktivitas partisipasi penonton di olahraga kampus pada tahun 1920-an. Mereka menjadi kurang populer pada tahun 1970-an ketika secara umum disepakati bahwa setiap orang harus melakukan hal mereka sendiri. Namun, pada tahun 1950-an, ada keinginan besar untuk menciptakan tampilan yang lebih rumit. Pasukan pemandu sorak akan merancang aksinya dengan tangan, kemudian menyiapkan instruksi individu untuk masing-masing seribu kursi. Anda harus benar-benar mencintai tim Anda untuk mendedikasikan energi semacam itu. Beberapa sekolah pada tahun 1960-an berpikir bahwa perangkat komputer bermodel baru itu mungkin berguna untuk menghilangkan kerumitan persiapan pengajaran dan mereka merancang program untuk mengubah rangkaian gambar yang digambar tangan menjadi instruksi individual untuk masing-masing peserta. Dengan bantuan komputer, orang dapat menghasilkan urutan individual yang lebih kaya untuk setiap piksel orang yang menyatakan kapan harus mengangkat kartu, warna apa yang harus diangkat, dan kapan harus meletakkan atau mengganti ke kartu lain. Jadi, contoh kuesioner dari bagian sebelumnya adalah tentang orang yang membuat urutan perintah untuk diikuti oleh komputer, sedangkan contoh ini adalah tentang komputer yang membuat urutan perintah untuk rakyat mengikuti. Dan dukungan komputer untuk mengotomatiskan proses pembuatan urutan perintah memungkinkan pembuatan aksi yang lebih rumit. Itu menghasilkan urutan perintah peserta yang tampak seperti:
-
sampai pada 001 putih
-
003 biru
-
005 putih
-
006 merah
-
008 putih
-
013 biru
-
015 putih
-
021 turun
-
sampai pada 022 putih
-
035 turun
-
sampai pada 036 putih
-
043 biru
-
044 turun
-
sampai pada 045 putih
-
057 merah metalik
-
070 turun
Oke, membaca instruksi masih kurang menyenangkan daripada melihat produk akhirnya—dalam contoh nyata ini, ini adalah bagian dari animasi Stanford “S.” Untuk melaksanakan perintah-perintah ini secara sinkron, seorang penyiar di stadion memanggil nomor langkah (“Empat puluh satu!”) dan masing-masing peserta dapat mengetahui dari instruksinya apa yang harus dilakukan (“Saya masih memegang kartu putih Saya mengangkatnya pada angka 36, tetapi saya bersiap untuk menukarnya dengan kartu biru ketika hitungannya mencapai 43”).
Seperti yang saya katakan, tidak terlalu rumit bagi orang untuk menjadi bagian dari aksi kartu, tapi ini adalah contoh yang cukup keren dalam membuat dan mengikuti urutan perintah di mana komputer memberi tahu kita apa yang harus dilakukan dan bukan sebaliknya. Dan, meskipun semudah itu, terkadang masih ada yang salah. Pada Konvensi Nasional Partai Demokrat 2016, pendukung Hillary Clinton merencanakan aksi kartu di seluruh arena. Meski dimaksudkan untuk menunjukkan persatuan patriotik, beberapa peserta tidak mau berpartisipasi. Hasilnya adalah kekacauan yang tidak dapat dibaca, yang, secara menyedihkan, seharusnya disebut “Lebih Kuat Bersama”.
Saat ini, komputer mempermudah mengubah foto menjadi instruksi tentang warna apa yang harus disimpan. Pada dasarnya, setiap gambar digital sudah merupakan sekumpulan instruksi tentang campuran warna merah, biru, dan hijau yang akan ditampilkan pada setiap posisi gambar. Salah satu tantangan menarik dalam menerjemahkan gambar ke dalam instruksi aksi kartu adalah bahwa gambar pada umumnya terdiri dari jutaan titik berwarna (megapiksel), sedangkan bagian aksi kartu di sebuah stadion mungkin memiliki seribu kursi. Daripada meminta setiap orang untuk memegang seribu kartu kecil, lebih masuk akal untuk menghitung rata-rata warna di bagian gambar tersebut. Kemudian, dari koleksi warna yang tersedia (misalnya, enam puluh empat pilihan Crayola klasik), komputer hanya memilih warna yang paling mendekati rata-rata.
Jika Anda memikirkannya, tidak jelas bagaimana komputer dapat membuat rata-rata warna. Anda dapat mencampurkan warna hijau dan kuning dan memutuskan bahwa hasilnya tampak seperti krayon hijau pegas, tetapi bagaimana Anda mengajarkan mesin untuk melakukan hal tersebut? Mari kita lihat pertanyaan ini lebih dalam. Ini akan membantu Anda memahami bagaimana komputer dapat membantu kita memberikan instruksi dengan lebih baik. Selain itu, ini akan menjadi pintu masuk kita ke dunia pembelajaran mesin yang menarik.
Sebenarnya ada banyak sekali cara untuk meratakan warna. Cara sederhananya adalah dengan memanfaatkan fakta bahwa setiap titik warna dalam file gambar disimpan sebagai jumlah warna merah, hijau, dan biru di dalamnya. Setiap warna komponen direpresentasikan sebagai bilangan bulat antara 0 dan 255, dimana 255 dipilih karena merupakan nilai terbesar yang dapat Anda buat dengan delapan digit biner, atau bit. Menggunakan sejumlah warna merah-biru-hijau bekerja dengan baik karena reseptor warna di mata manusia menerjemahkan warna dunia nyata ke dalam representasi yang sama. Artinya, meskipun ungu berhubungan dengan panjang gelombang cahaya tertentu, mata kita melihatnya sebagai perpaduan tertentu antara hijau, biru, dan merah. Tunjukkan pada seseorang campuran yang sama, dan mereka akan melihat warna ungu. Jadi, untuk meringkas sekelompok besar piksel, cukup ratakan jumlah warna biru pada piksel tersebut, jumlah warna merah pada piksel tersebut, dan jumlah warna hijau pada piksel tersebut. Itu pada dasarnya berhasil. Ternyata, karena kombinasi alasan fisik, persepsi, dan teknik, Anda mendapatkan hasil yang lebih baik dengan mengkuadratkan nilai sebelum melakukan rata-rata, dan mengakarkan nilai setelah rata-rata. Tapi itu tidak penting saat ini. Yang penting adalah ada cara mekanis untuk membuat rata-rata sekelompok titik berwarna untuk mendapatkan satu titik yang warnanya merangkum kelompok tersebut.
Setelah warna rata-rata tersebut dihasilkan, komputer memerlukan cara untuk menemukan warna yang paling mendekati dengan kartu yang kita miliki. Apakah itu lebih mirip sienna yang terbakar atau merah-oranye? Cara khas (jika tidak sempurna) untuk memperkirakan kemiripan dua warna menggunakan nilai merah-biru-hijau adalah apa yang dikenal sebagai rumus jarak Euclidean. Berikut tampilan urutan perintahnya:
-
ambil selisih antara jumlah warna merah pada dua warna persegi itu
-
ambil selisih antara jumlah warna biru dalam dua warna persegi itu
-
ambil selisih antara jumlah warna hijau dalam dua kotak warna, lalu jumlahkan ketiga kotak tersebut
-
ambil akar kuadrat
Jadi, untuk mengetahui kartu apa yang harus dipegang agar dapat menangkap rata-rata warna terbaik di bagian gambar yang sesuai, cukup cari tahu warna mana yang tersedia (biru, kuning hijau, aprikot, serigala kayu, mahoni, periwinkle, dll. ) memiliki jarak terkecil terhadap rata-rata warna di lokasi tersebut. Itulah warna kartu yang harus diberikan kepada orang piksel yang duduk di tempat itu di grid.
Kesamaan antara penghitungan jarak ini dan operasi rata-rata warna, saya cukup yakin, hanyalah sebuah kebetulan. Terkadang akar kuadrat hanyalah akar kuadrat.
Mundur ke belakang, kita dapat menggunakan operasi ini — rata-rata warna dan menemukan warna yang paling mendekati rata-rata — agar komputer dapat membantu kita menyusun urutan perintah untuk aksi kartu. Komputer mengambil gambar target, bagan tempat duduk, dan satu set kartu warna yang tersedia sebagai masukan, lalu membuat peta kartu mana yang harus diletakkan di setiap kursi untuk mereproduksi gambar terbaik. Dalam contoh ini, komputer sebagian besar menangani pembukuan dan tidak banyak berbuat dalam hal pengambilan keputusan selain pemilihan warna yang paling mendekati. Namun hasilnya di sini adalah komputer mengambil alih sebagian upaya penulisan urutan perintah. Kami telah beralih dari keharusan memilih setiap perintah untuk setiap piksel setiap saat dalam aksi kartu hingga memilih gambar dan meminta komputer menghasilkan perintah yang diperlukan.
Pergeseran perspektif ini membuka kemungkinan untuk menyerahkan lebih banyak kendali atas proses pembuatan urutan perintah ke mesin. Dalam grid 2×2 dari Bab 1, kita dapat beralih dari menceritakan (memberikan instruksi eksplisit) ke menjelaskan (memberikan insentif eksplisit). Misalnya, ada variasi masalah pemilihan warna yang jauh lebih sulit dan memberikan pekerjaan lebih menarik pada komputer. Bayangkan kami dapat mencetak kartu dengan warna apa pun yang kami perlukan, namun toko percetakan kami bersikeras agar kami memesan kartu tersebut dalam jumlah besar. Mereka hanya dapat memberi kita delapan warna kartu yang berbeda, tetapi kita dapat memilih warna apa pun yang kita inginkan untuk membuat delapan warna itu. (Delapan adalah jumlah nilai berbeda yang dapat kita buat dengan 3 bit — bit sering muncul dalam komputasi.) Jadi kita dapat memilih biru, hijau, biru-hijau, biru-ungu, biru langit, nila, biru kadet, dan biru langit , dan menampilkan gelombang laut yang indah dalam delapan warna biru. Besar!
Tapi kemudian tidak akan ada warna merah atau kuning untuk membuat gambar lainnya. Membatasi palet warna menjadi delapan mungkin terdengar seperti batasan yang aneh, namun ternyata monitor komputer masa awal bekerja persis seperti itu. Mereka dapat menampilkan jutaan warna, tetapi hanya delapan warna berbeda di layar pada satu waktu.
Dengan mempertimbangkan batasan ini, merender gambar dalam kartu berwarna menjadi jauh lebih rumit. Anda tidak hanya harus memutuskan warna mana dari rangkaian pilihan warna kami untuk membuat setiap kartu, sama seperti sebelumnya, namun Anda juga harus memilih delapan warna mana yang akan membentuk rangkaian pilihan warna tersebut. Jika kita membuat wajah, variasi warna kulit akan jauh lebih berguna dibandingkan membedakan warna hijau atau biru. Bagaimana kita beralih dari daftar warna yang ingin kita gunakan karena warna tersebut ada dalam gambar target ke daftar warna yang jauh lebih pendek yang akan membentuk kumpulan pilihan warna kita?
Pembelajaran mesin, dan khususnya pendekatan yang dikenal sebagai pengelompokan atau pembelajaran tanpa pengawasan, dapat memecahkan masalah pemilihan warna ini bagi kita. Saya akan memberitahu Anda caranya. Tapi pertama-tama, mari kita selidiki masalah terkait yang timbul dari mengubah wajah menjadi teka-teki gambar. Seperti pada contoh aksi kartu, kita akan meminta komputer merancang serangkaian perintah untuk merender gambar. Namun ada perbedaannya—potongan puzzle yang tersedia untuk membuat gambar telah diperbaiki sebelumnya. Mirip dengan contoh langkah dansa, ini akan menggunakan serangkaian perintah yang sama dan mempertimbangkan urutan mana yang menghasilkan gambar yang diinginkan.
Artikel ini pertama kali muncul di Engadget di https://www.engadget.com/hitting-the-books-code-to-joy-michael-l-littman-mit-press-153036241.html?src=rss