Aplikasi Machine Learning di Web dengan Python

Aplikasi web saat ini merupakan aplikasi yang wajib diketahui oleh pihak-pihak yang terlibat dengan ilmu komputer baik mahasiswa, dosen, hingga staf IT di perusahaan. Di tahun 2020, permintaan aplikasi berbasis Artificial Intelligence (AI) sangat tinggi. Mau tidak mau, programmer dan pengembang wajib mengetahui tool yang mendukung AI, salah satunya adalah bahasa pemrograman Python.

Framework Web Python

Python awalnya adalah aplikasi yang digunakan untuk back-end tetapi saat ini dengan framework-framework yang tersedia bisa juga bermain di front-end. Salah satu framework yang terkenal adalah Flask dan Jango. Untuk bagaimana ilustrasi penggunaan Flask untuk menjalankan aplikasi AI berbasis web silahkan lihat di www.bisa.ai
berikut ini.

Menggunakan Web Server Lain

Untuk testing biasanya dengan framework web Python, tetapi untuk implementasi biasanya menggunakan web server yang banyak dipakai, salah satunya adalah Apache dengan bahasa pemrograman PHP-nya yang terkenal dan sampai saat ini masih banyak digunakan. Untuk itu diperlukan pengetahuan mengintegrasikan PHP dengan Python. Misal kita punya kode Python sederhana perkalian 2×4 berikut ini:

  • print(“<B>Hasil Olah dengan Python</B><br>”)
  • y=2*4
  • print(“<B>Hasil 2 x 4 = </B>”)
  • print(y)

Misal kita beri nama tes.py. Selanjutnya kita buat satu kode PHP yang memanggil “tes.py” tersebut untuk dijalankan. Sebelumnya perlu kita ketahui bersama bahwa menjalankan “tes.py” dapat dilakukan lewat konsol dengan mengetik python tes.py. Nah, instruksi tersebut yang kita gunakan dalam kode php kita berikut ini. Perhatikan, PHP berwarna merah ditujukan untuk menjalankan file tes.py berbahasa Python.

  • <html>
  • <head>
  • <title></title>
  • </head>
  • <body>
  • <h3>Tes PHP to Access Python</h3>
  • <?php
  • $my_command = escapeshellcmd(‘C:/python27/python tes.py’);
  • $command_output = shell_exec($my_command);
  • echo $command_output;
  • ?>
  • </body>
  • </html>

Beri nama file tersebut, misalnya index.php. Yang perlu diperhatikan adalah python yang digunakan haru disetel path-nya. Atau arahkan saja python.exe disertai lokasi foldernya. Contoh yang saya gunakan adalah python versi 2 di c:/python27/python.exe. Jika lebih dari satu environment jangan sampai salah lokasi. Letakan kedua file di atas (tes.py dan index.php) di lokasi web. Untuk XAMPP di htdocs, sementara yang lain, misalnya Wamp Server di folder www.

Tulisan “Tes PHP to Access Python” berasal dari index.php sementara tulisan “Hasil Olah dengan Python”, “Hasil 2×4” dan hasil kalinya (“8”) berasal dari tes.py. Sekian, semoga bermanfaat.

Iklan

Menjadi Orang yang Biasa Saja

Ketika sekolah menengah pertama (SMP) saya sering mampir ke perpustakaan sekolah. Ruangan yang lebih cocok disebut gudang itu terletak di pojok, sebelum WC guru. Tidak ada penjaga perpus dan selalu dibuka ketika jam istirahat. Walau siswa dibebaskan masuk dan membaca buku-buku yang ada tetapi hanya segelintir saja. Terkadang hanya saya yang di ruangan setelah teman yang saya ajak (dengan sedikit paksaan) tidak bisa menemani saya lebih lama.

isaac_newton_1689_painting_sir_godfrey_kneller_public_domain_via_wikimedia_commons

Salah satu buku-buku favorit saya waktu itu adalah biografi ilmuwan-ilmuwan jaman dulu seperti Isac Newton, Albert Einstein, dan kawan-kawan. Saking asyiknya terkadang saya tidak memperdulikan gosip yang mengatakan banyak makhluk halusnya di situ, yang kadang terasa tapi tak terlihat. Lalu apa hubungannya dengan judul postingan ini? Tentu saja ada. Para ilmuwan-ilmuwan terkenal itu dari biografi yang saya baca ternyata diawali dari keadaan yang oleh lingkungannya dianggap biasa saja. Malah banyak yang ditolak oleh masyarakat karena dianggap tertinggal, seperti Edison dan Einstein. Saking biasanya, Newton konon menemukan teori gravitas yang membuat kagum penemu komet (bernama Halley), ketika asyik bertani. Contoh yang jelas, Nabi Muhammad SAW, merupakan remaja yatim piatu penggembala biasa saat itu di Makah. Tidak ada cita-cita menjadi orang luar biasa, tapi justru mampu mengubah dunia, yang oleh M. Hart dimasukan sebagai orang no.1 yang berpengaruh terhadap sejarah.

filsafat book

Salah satu filsuf terkenal yang menjadi guru para filsuf adalah Socrates. Salah satu fikiran sederhananya adalah pernyataan bahwa yang dia tahu hanyalah bahwa dia tidak tahu apa-apa. Intinya dia ingin mengajak orang berfikir sebab ketika merasa sudah tahu apa-apa, orang tidak akan berfikir lagi. Beruntunglah ketika merasa tidak tahu, karena secara alamiah Anda akan mencari tahu. Namun, jangan mencari cara bagaimana membuat diri, entah lewat mekanisme hypnoterapy dan bantuan motivator-motivator, membuat diri merasa super, tahu segala hal, selalu benar, dan sejenisnya yang berakibat berhenti berusaha meningkatkan kualitas.

Di pertengahan tahun 90-an ketika akhir SMA, saya pernah bimbingan belajar oleh pengajar yang biasa saja, tidak memiliki tip dan trik mengerjakan cepat dengan rumus-rumus kilat yang saat itu sedang tren. Terus terang yang saya dapat dari tutor itu adalah bimbingan psikis dan nasihat-nasihat membangun. Secara sederhana dia mengatakan kepada saya yang ingin lolos masuk UGM, “jika kamu bisa menjawab tiap soal-soal yang orang lain bisa jawab, maka pasti lolos ujian masuk”. Nasihat yang sangat sederhana dan ‘biasa-biasa saja’ tetapi dalam pelaksanaannya butuh kemampuan mengetahui apa yang tidak/belum kita ketahui. Setelah saya jalani ternyata ringan juga, walau ketika hari ‘H’ saya merasa masih banyak materi sulit yang belum saya kuasa tetapi materi-materi yang orang lain bisa saya sudah bisa dan akhirnya lolos juga.

Untuk rekan-rekan dosen seprofesi, biasa saja, jangan merasa super, paling benar dan tetap menjaga hati jangan sampai tercemari konsep/prinsip yang menghalangi untuk terus belajar. Jangan ingin segera jadi nomor satu, jadi profesor kilat, biasa saja, meneliti, kolaborasi dan mencoba riset sesuai bidangnya. Jika tidak menjadi no.1 tidak apa yang penting usaha sendiri. Teringat beberapa tahun yang lalu karena kesulitan bahasa Inggris mencoba daftar pelatihan bahasa tiga bulan dari DIKTI di UGM Jogja. Pelan-pelan, IELTS bisa tembus 6.0, lalu mencoba mengajukan beasiswa DIKTI, sempat ditolak sekali, kemudian mengajukan ulang, toh tembus juga. Ketika kuliah pun, sempat kewalahan karena saingan yang ketat, tetapi dengan belajar normal-normal saja toh bisa lulus duluan. Padahal riset hanya lewat email-emailan, ketemuan hanya laporan progress. Kalu difikir-fikir mirip mahasiswa yang belajar di kondisi COVID-19 sekarang. Jadi, untuk mahasiswa, jangan lupa kata “maha” di depan siswa ya, kata ampuh yang  bisa berarti: ‘jago mencari jalan-jalan alternatif menuju Roma’. Jujur saya lebih khawatir dengan siswa (kelas I sd XII) dibanding mahasiswa saat kondisi adaptasi kebiasaan baru ini. Sekian, tentu saja Anda boleh tidak setuju dengan tulisan singkat ini.

Webinar Systematic Literature Review (SLR) Untuk Skripsi dan Tugas Akhir

Setelah hampir lima tahun kuliah dan kembali lagi mengajar ternyata tidak ada perubahan yang signifikan dari kemampuan mahasiswa menulis tugas akhirnya. Gaya copy-paste masih kerap dilakukan, terutama pada bab studi/kajian pustaka. Referensi hanya berupa buku saja, tidak ada jurnal terkini. Memang mahasiswa D3/S1 hanya menerapkan ilmu yang didapat, belum sampai tahap membandingkan apalagi menemukan hal-hal baru (novelty). Untuk mengatasi hal tersebut, fakultas teknik Universitas Islam “45” Bekasi mengadakan pelatihan kepada para mahasiswa yang sedang menyelesaikan tugas akhir. Kebetulan saya mendapat tugas sesi-1 tentang Systematic Literature Review (SLR) sebelum sesi-2 tentang kiat-kita merampungkan tugas akhir/skripsi.

Memang tujuan utama SLR adalah untuk memperoleh rujukan-rujukan yang tepat dalam menjawab permasalahan tugas akhir/skripsi. Namun di sisi mahasiswa D3/S1 kebanyakan untuk menghindari plagiasi, terutama mencontek isi naskah skripsi/TA kakak-kakak seniornya. Dengan SLR ditambah keunikan-keunikan judul-judul baru yang ditujukan untuk tugas akhir mahasiswa, diharapkan mampu menghilangkan perilaku negatif mencontek mahasiswa-mahasiswa kita.

Ristek-Brin menganjurkan kampus untuk membuat roadmap penelitian yang kemudian dijalankan oleh dosen-dosennya. Jadi bagi mahasiswa sekarang, mencari permasalahan penelitian tidak serumit mahasiswa era 90-an, karena dosen sudah memiliki roadmap-nya. Tinggal bertanya maka si dosen pembimbing akan memberi judul atau permasalahan skripsi/tugas akhir yang harus diselesaikan dengan cepat. Berikut link youtubenya, semoga bermanfaat.

Nucoll dan Gephi Untuk Profiling Twitter

Profiling terkadang diperlukan ketika ingin mengetahui informasi seseorang misalnya calon pegawai, caleg, dan sebagainya. Mula-mula dilakukan secara manual lewat searching di media sosial. Namun ketika teknologi kian berkembang, banyak aplikasi-aplikasi tersedia untuk membantu proses profiling, salah satunya nucoll dan Gephi.

Nucoll

Nucoll merupakan aplikasi versi baru dari Tweecoll yang banyak dikeluhkan karena tidak mudah berjalan di Windows. Nucoll dapat diunduh programnya di link resminya berikut ini (sesuaikan dengan sistem operasi Anda). Aplikasi ini hanya berisi EXE saja dan dijalankan menggunakan konsol Python.

Untuk menghasilkan file yang akan dilihat network-nya diperlukan tiga langkah sesuai dengan instruksi pada gambar di atas:

  • nucoll init <akuntwitter>
  • nucoll fetch <akuntwitter>
  • nucoll edgelist <akuntwitter>

Terdapat file berekstensi dat, gml, dan qry (jika menggunakan fungsi tweets). Hasil yang akan dikirim ke Gephi adalah file berekstensi GML di folder kerja. Berikutnya perlu menginstall Gephi. Sebagai informasi, jika akun twitter yang akan dicari memiliki banyak follower, dibutuhkan proses yang lumayan lama.

Gephi

Gephi sering digunakan untuk mendeteksi network pengguna twitter. Aplikasi ini dapat diunduh di link berikut. Banyak yang sudah menerapkan, salah satunya adalah drone emprit.

Ketika tulisan ini dibuat, sudah masuk versi 0.9.2. Aplikasi Gephi dibuat dengan menggunakan bahasa Java.

Ikuti saja instruksinya hingga proses selesai. Tunggu beberapa saat hingga selesai.

Berikutnya jalankan Gephi untuk menampilkan network yang berasal dari Nucoll. Buat satu project baru. Impor file GML dari nucoll lewat menu file – open.

Ketika file GML hasil scrapping dengan nucoll diimpor, akan muncul network di Gephi. Tekan simbol “T” di bagian bawah untuk melihat labelnya.

Silahkan yang tertarik bisa melihat tutorialnya di link berikut ini. Banyak fasilitas-fasilitas lain (pewarnaan, indikator-indikator dan sebagainya). Oiya, silahkan gunakan fugnsi “tweets” dari Nucoll untuk men-scrap tweets seseorang. Selamat mencoba, semoga bermanfaat.

NOTE: Untuk menjalankan Nucoll perlu mendaftarkan Consumer Key (lihat post terdahulu).

Aplikasi Online Pembuat Android App Sederhana

Banyak aplikasi pembuat aplikasi mobile berbasis Android yang mudah untuk digunakan, beberapa di antaranya tersedia secara online, antara lain: MIT App Inventor, AppyPie, AppYet, AppsGeyser, dan Andromo. Google juga menyediakan aplikasi untuk mengelola excel via android dengan nama Appsheet (lihat pos yang lalu)

MIT App Inventor

Aplikasi ini dibuat oleh kampus Massachusetts Institute of Technology (MIT) yang berbasis web, atau diistilahkan dengan cloud-based. Untuk memulai cukup mudah. Buka saja situsnya lalu klik “Start Now”.

Ada empat point yang perlu diketahui antara lain. 1) Instruksi setup yang berisi empat mode ketika perancangan aplikasi dari laptop ke handphone, antara lain: via wifi, via chrome book, via emulator, dan via kabel USB. 2) Editor blok dan disain yang berisi jendela App Inventor Designer dan App Inventor Block Editor. 3) Tutorial untuk pemula yang berisi video belajar. 4) Pemaketan dan sharing via APK agar bisa diinstal di sembarang hp android.

Aplikasi Sederhana Pertama

Banyak di point 3 yang berisi sampel cara pembuatannya, misalnya aplikasi sederhana membunyikan suara. Silahkan lihat sambil membuka panduannya, buka jendela Create Apps di bagian atas kiri.

Kita akan diminta log in via Google. Masukan saja akun Gmail kita.

Berikutnya muncul jendela Term of Service yang cukup jlimet. Silahkan baca, atau langsung saja tekan “I accept the terms of service!”. Ternyata ada pilihan tutorial-tutorialnya, misalnya “Hello Purr” berikut ini.

Bagaimana proses pembuatannya? Buat saja project baru, siapkan satu gambar (jpg) dan satu suara (mp3), ikuti langkah-langkah di panduan ini.

Untuk menjalankannya masuk ke menu Build untuk membuat file APK agar bisa diinstal di HP kita.

Saya tertarik dengan App via QR Code. Kita coba saja dengan mengklik pilihan tersebut. Tunggu progress hingga selesai, dan hasilnya adalah QR code berikut ini.

Link tersebut (http://ai2.appinventor.mit.edu/b/4e7a) ketika diklik akan mengarahkan ke APK yang dihasilkan. Namun hanya bisa dipakai maksimum 2 jam. Atau pilihan kedua saja bisa unduh langsung (file APK). Kalau ingin serius silahkan gunakan Android Studio, Kotlin, Dart, Flutter, dan lainnya. Sekian, semoga bermanfaat dan selamat mencoba.

Tips Ringan Untuk Dosen yang Sedang Bosan dan Jenuh

Manusia dianugerahi tuhan akal/fikiran yang digunakan untuk menyelesaikan permasalahan yang dihadapi selama hidup di dunia. Hampir sebagian besar masalah dapat diselesaikan oleh manusia dengan bantuan akal baik itu yang sederhana dari menyelesaikan tugas harian hingga menemukan temuan baru (inovasi). Sayangnya sebagian besar dari kita karena menganggap hal itu biasa saja sehingga tidak menyadari anugerah yang diberikan tersebut. Akibatnya malas dan bosan hinggap ketika kita mengerjakan hal-hal yang rutin, alias “business-as-usual”. Postingan ini semoga bisa memacu semangat pembaca yang sedang jenuh, terutama ketika “work from home” akibat pandemi COVID-19. Langkah-langkah berikut selalu jadi andalan.

1. Bersyukurlah Terhadap Jalan Yang Ada

Tips pertama adalah melihat kerjaan peneliti. Oiya, tidak semua dosen benar-benar meneliti dalam artian menemukan hal-hal baru yang memiliki kontribusi terhadap ilmu pengetahuan. Sebagian besar menjalankan aktivitas mengikuti SOP yang ada. Alias sudah ada jawabannya. Bandingkan saja dengan seorang peneliti yang menjalankan fungsinya mencari jawaban hal-hal yang belum ada jawabannya. Betapa sulitnya seorang mahasiswa yang sedang riset ketika mentok karena tidak tahu apa langkah yang harus ditempuh untuk menjawab problem riset karena merupakan hal baru (original). Terkadang dosen pembimbing hanya bisa memberi saran-saran atau sekedar menyemangati. Jadi bersyukurlah ketika kita bisa mengerjakan hal-hal yang sudah ada jawabannya baik dari buku maupun dari internet.

2. Do Something

Pernah saya diajak rekan keluar jalan-jalan. Karena sedang suntuk saya menolak, akibat kerjaan kampus yang ga beres, jadinya bosan dan jenuh, bawaannya tidur. Tapi dengan sedikit paksaan, akhirnya dengan enggan saya mau juga berangkat. Ketika sampai di tempat tujuan, yaitu pasar malam di sekitar kampus, tiba-tiba bosan dan jenuh hilang karena menemukan hal-hal baru yang unik yang tidak diketahui sebelumnya. Jadi prinsip “do something” ini ampuh juga mengusir rasa jenuh. Edison pun melakukan uji coba temuannya berkali-kali tanpa rasa bosan dengan prinsip tersebut. Saya teringat ketika bekerja sebagai staf IT di sebuah bank yang bertanggung jawab terhadap operasional di beberapa cabang. Bos saya selalu mengatakan “do something” ketika berada di lokasi, seperti mengecek update antivirus, bertanya problem-problem yang ada kepada pengguna, melihat jaringan kabel apakah ada masalah, dan lain-lain. Beberapa buku sudah saya buat karena terinspirasi oleh rekan kerja saya yang “biasa-biasa” saja bisa mempublikasikan buku padahal tidak memiliki komputer apalagi laptop. Hanya mengandalkan komputer kantor atau kelas dan sebuah usb flashdisk. Ketika selesai mengajar dan masih ada waktu dia mengetik materi dan di akhir perkuliahan jadilah satu buku. Untuk mahasiswa yang mentok ketika menjawab problem-problem yang ada, “do something”, datang ke perpustakaan, diskusi dengan teman, dosen, asisten dosen, dan lain-lain terkadang jawaban muncul tiba-tiba dari mana saja.

3. Upgrade

TIdak ada hal yang tidak berubah di dunia ini. Ketika kita merasa bosan, tidak ada hal baru, sebenarnya kita bisa diibaratkan sebagai produk yang kalah bersaing dengan produk lain yang lebih menarik, dan kita menyadari itu. Untung saja kita manusia, sebagai subjek, masih bisa bertahan. Bayangkan kita adalah alat seperti disket yang tergantikan flashdisk, kamera kodak yang tergusur kamera HP digital, dan lain-lain, kita bisa tergusur oleh pesaing-pesaing yang melakukan inovasi. Jadi ketika kita jenuh, itu-itu saja (bahasa jawanya ngono-ngono thok), itu tanda-tanda kita ibarat produk yang akan tergusur (istilah sekarang terdisrupsi). Kalau percaya dengan adanya tuhan, itu adalah sinyal dari Allah, Sang Hyang Widi, atau apapun namanya. Melangkah ke tangga yang lebih tinggi terkadang bisa menghilangkan bosan yang ada, seperti studi lanjut, mengurus kepangkatan, dll. Tapi kalau malas dan bosan bagaimana? Do something (step-2 di atas), siapa tahu menemukan hal baru yang menarik. Jika tidak juga menemukan hal yang menarik tapi malah melelahkan bagaimana? Bersyukurlah terhadap jalan yang ada (step-1 di atas), toh ada SOP yang tinggal diikuti, tidak serumit peneliti-peneliti yang bertugas mencari jawaban hal-hal yang belum ada penyelesaiannya. Sekian, semoga bisa men-charge rekan-rekan yang sedang bosan dan jenuh.

Mahasiswaku – “How Do You Do”

Ungkapan formal yg mirip artinya dengan “hello” ini mengandung kata kerja “do” yang artinya melakukan/mengerjakan. Hal ini menyiratkan karakter barat yang selalu mengkaitkan seseorang dengan pekerjaan. Sepertinya di negara kita juga tidak jauh berbeda. Seseorang tidak lepas dari apa yang dikerjakannya saat ini, apakah itu seorang guru, karyawan swasta, PNS, polri, tentara, hingga ibu rumah tangga.

Ketika menjadi seorang mahasiswa yang baru lulus di awal milenium (tahun 2001) seperti biasa, saya bergabung dengan tim pencari kerja alias pengangguran. Teman saya yang belum lulus mengabari bahwa dia ditanya oleh pembimbing skripsi saya dulu yang sekarang sudah almarhum mengenai pekerjaan saya. Ketika teman saya mengatakan “masih nganggur”, beliau langsung berkata “waduh” sambil memegang kepala. Dari situ saya tahu, ketika mahasiswa lulus, hubungan dengan dosen, apalagi dosen pembimbing tidak akan putus sampai di situ. Secara diam-diam seorang dosen akan “kepo” dengan kondisi ex siswanya. Untunglah ada Facebook, Instagram, dan sosmed lainnya yang bisa mengetahui tanpa langsung bertanya.

Tidak lama kemudian, ternyata saya menggantikan peran dosen-dosen saya dahulu. Banyak kesan yang terekam di kepala, baik kesan baik maupun kesan buruk berikut ini (namun kebanyakan sih kesan yang baik).

Waktu itu teringat ketika sidang tugas akhir, salah seorang siswa mempresentasikan hasil karyanya berupa sistem pendeteksi penyusup. Ketika seseorang memasuki suatu ruangan yang dipasang sistem tersebut, webcam menangkap gambar dan menyimpan (capture) gambarnya di cloud dan mengirim pesan ke bagian keamanan. Beberapa hari kemudian di sebuah kampus negeri di daerah Karawang ada undangan lomba pemrograman khusus aplikasi berbasis webcam dan CCTV. Langsung saja siswa tersebut ikut dan ternyata menang dengan mudah. Saat ini mahasiswa tersebut menjadi ASN di Badan Siber dan Sandi Negara (BSSN) yang kantornya di ragunan, Jakarta.

Cerita berikutnya sedikit menjengkelkan, ketika di awal-awal menjadi dosen. Pertemuan terakhir perkuliahan saya seperti biasa membagi kuesioner pembelajaran. Kebetulan kelas itu termasuk kelas yang sedikit brutal, maklum teknik komputer, 90% cowok. Karena saya melihat oleh mereka tidak disebar ke teman-temannya, iseng saya lihat isinya. Dan sepertinya dia pun ingin saya membaca kuesioner yang dia isi, yg harusnya rahasia itu. Kuesionar itu ternyata diisi orang yang sama, tepatnya si biangkerok itu. Tentu saja saya tahu dari tulisan tangannya. Isinya pun seluruhnya sama, meminta lembaga untuk memecat saya jadi dosen. Uniknya setahun kemudian ketika acara sidang tugas akhir, si biangkerok itu sesuai jadwal, saya yang menjadi penguji sidang. Hampir setengah jam kami menungu di ruang sidang tapi dia tidak muncul juga. Sempat saya intip, di luar dia jalan mondar-mandir tidak jelas dan tidak berani masuk. Rekan saya yang memang tidak mengenal mahasiswa tersebut sempat ngomel-ngomel karena lama tidak muncul-muncul. Karena paham kondisi, akhirnya saya menghadap panitia sidang untuk mengganti saya dengan orang lain sebagai pengujinya. Dan benar, setelah ditempel perubahan penguji sidang di papan pengumuman, si biangkerok itu berani masuk ke ruang sidang. Oiya, pandangan mahasiswa mungkin hanya melihat si dosen saja, tetapi dosen melihat juga orang tua, keluarga dan teman-temannya.

Sebagai penutup postingan ini, Renald Kashali dalam bukunya “disrupsi”, mengatakan kampus tidak lama lagi akan menghadapi gelombang disrupsi. Apalagi kini dipercepat oleh pandemi COVID-19. Tidak ada lagi yang bisa membantu selain peran masyarakat, terutama bantuan dari alumni. Tidak ada alumni yang ingin kampusnya hancur. Bahkan jasa yang utama pengajar bukan sekedar ilmu yang diberikan melainkan inspirasi pengajar ke mahasiswa yang mampu merubah mental dan pribadi sesuai cita-citanya. Sebaik-baiknya pemasaran adalah dari hal-hal baik yang diceritakan oleh para alumninya, misalnya alumni teknik komputer, salah satu jurusan unik bidang informatika dan komputer berikut ini.

 

Era Metakognitif Sudah Mulai

Seorang siswa minta tanda-tangan untuk pengajuan judul tugas akhir. Anak tersebut memiliki bakat di bidang pemrograman. Karakteristik mahasiswa vokasi adalah skill yang dimiliki sudah nampak sebelum dia lulus sehingga banyak yang sudah bekerja duluan.

“kerja di bagian apa?”, tanyaku. Dia menjawab terkadang membuat web, kadang-kadang juga aplikasi Android. “Biasanya bahasa yang digunakan apa?”, tanyaku. “Tergantung Pa, paling mudah sih flutter, tapi ukuran yang dihasilkan besar. Lebih ringan Dart. Tetapi ketika ada project membutuhkan barcode, library tidak ada, jadi terpaksa menggunakan Kotlin”, jawabnya.

Nah, dari perbincangan tersebut saya yakin dia tidak mempelajari informasi tersebut dari bangku kuliah. Dia menggunakan salah satu kemampuan yang dimiliki oleh manusia, yaitu metakognitif. Istilah ini mengacu kepada kesadaran yang dimiliki oleh seseorang dalam menilai kemampuan intelektual diri. Apa yang dia tahu, dan apa yang dia tidak tahu, dan butuh mengetahui. Maaf, di sini tahu berarti pengetahuan ya, bukan tahu sumedang ..

Beberapa pakar e-learning sedang mengembangkan metode dimana siswa dibantu meningkatkan metakognitif dalam pembelajaran. Manfaatnya adalah proses belajar lebih cepat karena siswa hanya mempelajari hal-hal yang dia tidak kuasai akibat metakognitif-nya yang sudah jalan. Manfaat lain adalah siswa tidak menjadi bosan dan mengganggu siswa lainnya karena tidak perlu mempelajari lagi sesuatu yang dia sudah ketahui/kuasai.

Metakognitif juga berkaitan dengan bloom taxonomy yang terdiri dari empat tingkatan pengetahuan yaitu: 1) mengingat, 2) memahami, 3) menerapkan, dan 4) menganalisa, sintesa dan mengevaluasi. Kembali ke siswa saya tadi yang sepertinya memiliki ciri-ciri tersebut. Mereka mengetahui apa yang mereka tidak tahu, mencari tahu lewat beragam media, mempelajari yang dibutuhkan, mencari alternatif-alternatif dan lain-lain. Istilah sederhana mereka adalah “kepo-in ajah”.

Untuk generasi “old”, seperti saya, wajib memiliki kemampuan metakognitif seperti anak-anak milenial yang kreatif ini, jika tidak ingin tergusur. Sekian semoga bisa menginspirasi.

Menghitung Kompleksitas Algoritma

Saat ini dimana komputer sudah canggih terkadang pengguna tidak terlalu memperhatikan seberapa kompleks sebuah algoritma. Tinggal jalankan, jika proses terasa lama dan berat, maka algoritma yang diterapkan dalam sebuah bahasa pemrograman berarti “boros” perhitungan. Sedikit memanipulasi dan kemudian dijalankan ulang maka diketahui apakah modifikasi menghasilkan eksekusi yang lebih baik atau tidak. Hal ini tidak dapat dijumpai ketika jaman dahulu dimana komputer belum secanggih saat ini yang bahkan sebuah kalkulator pun belum diciptakan. Dalam mata kuliah algoritma selalu dibahas bagaimana menghitung biaya sebuah algoritma yang diistilahkan dengan time complexity, atau terkadang disebuh kompleksitas saja.

Kalang (Loop) dan Rekursif (Recursive)

Ada dua jenis proses terkenal yang ditemukan oleh pakar-pakar algoritma. Yang pertama adalah kalang dalam sebuah iterasi. Jenis proses ini merupakan jenis yang paling banyak diketahui atau dinalar oleh mahasiswa yang belajar algoritma karena alurnya yang mudah dicerna. Tinggal mensimulasikan tiap iterasi, diketahui hasilnya. Biasanya untuk kasus yang rumit dalam skripsi/tugas akhir, mahasiswa hanya diminta menjalankan satu atau dua iterasi saja sekedar membuktikan bahwa yang bersangkutan memahami proses kerja algoritmanya dan selanjutnya tinggal eksekusi pada komputer yang meneruskan.

Sebagai ilustrasi, misalnya kita memiliki sekumpulan data sebanyak tiga buah, a={1,3,5}. Di sini n menyatakan jumlah data, yaitu tiga buah. Algoritma sederhana penjumlahan seluruh data dengan kalang ditunjukan oleh gambar berikut:

Kolom paling kiri menunjukan algoritma penjumlahan (Sum) data “a” sebanyak “n”. Jadi jika dijalankan akan terjadi perhitungan 0+(1+3+5)=8. Angka 1 di kolom berikutnya merepresentasikan “sekali eksekusi”. Di sini tidak dalam bentuk berapa detik atau milidetik karena tergantung prosesor yang dimiliki sehingga hanya dinyatakan dengan satuan eksekusi/step. Dimulai dari inisialisasi “s” yang dihitung satu step, kalang “for” sebanyak n+1 dengan “+1” perlu ditambahkan mengingat n=0 pun tetap dihitung satu step. Operasi di dalam kalang (akumulasi s) dihitung sebanyak “n” data. Akhir sebuah fungsi, yaitu “return” dihitung sekali. Jadi total 2n+3 langkah. Untuk contoh kasus kita adalah 2(3)+3 atau sebesar 9 langkah. Nah, untuk yang rekursif agak ribet sedikit.

Rekursif adalah fungsi yang memanggil diri sendiri. Untuk contoh penjumlahan data, rekursif di kolom kiri menyatakan fungsi RSum yang menambahkan sebuah data ke-n dengan data sebelumnya (n-1) dan berhenti ketika n nol atau negatif. Untuk data a={1,3,5} di atas operasi yang dilakukan algoritma rekursif adalah (((0)+1)+3 )+5)=8. Di sini perlu variabel x yang berisi kompleksitas (n-1). Tanpak jika n=0 (tidak ada data) jika dieksekusi tetap dibutuhkan 2 step (if dan return). Untuk contoh kita maka kompleksitasnya berarti 2+(2+(2+(2))) atau sebesar 8 langkah dimana kurung menyatakan proses rekursifnya. Atau secara sederhana berarti (n+1)*2. Pastikan dengan n lain yang lebih besar, misalnya 100 untuk memastikan mana yang lebih sedikit langkahnya. Untuk kalang: 2(100)+3=203 dan rekursif: (100+1)*2=202. Contoh lain yang lebih rumit misalnya untuk penjumlahan matriks berikut ini:

Untuk matriks a dan b berukuran misal m=2 baris dan n=3 kolom memiliki kompleksitas 2(2)(3)+2(2)+1 atau sebesar 17 langkah.

Ringkasan

Singkatnya, untuk kondisi if, total step adalah 1 baik ada atau tidak ada data. Return stepnya 1 jika tidak kosong. Kalang for (atau while) membutuhkan n+1 step dengan +1 perlu ditambahkan karena data kosong pun tetap dihitung 1 step. Contoh di atas diambil dari buku karya Ellis Horowitz (Computer Algorithms). Sekian, semoga bermanfaat.

Artikel Riset vs Laporan Proyek

Ketika submit artikel waktu kuliah dulu, hasil review menolak tulisan saya karena artikel hanya sekedar laporan proyek, bukan masuk kategori artikel jurnal.

Jika ditolaknya saat ini sepertinya tidak ada masalah. Repotnya naskah itu ditolak ketika membutuhkan publikasi sebagai syarat lulus S3. Sulit diungkapkan dengan kata-kata bagaimana kecewanya. Tapi ya bagaimana lagi, harus mencoba lagi kalau mau merampungkan kuliah. Bagi mahasiswa S3, meleset satu atau dua tahun itu sudah biasa.

Laporan Proyek

Ok kita mulai terlebih dahulu mengenai laporan proyek karena ini merupakan jenis pekerjaan yang paling banyak kita jumpai di kampus. Banyak yang menyamakan dengan riset, padahal sangat berbeda.

Perhatikan pekerjaan kita sehari-hari, misalnya seorang dosen. Ketika mengajar satu mata kuliah, maka dia memiliki langkah-langkah rinci yang jelas dan sudah rutin dilakukan. Langkah-langkah tersebut jelas dari A sampai Z, dari menyiapkan materi, membagi menjadi beberapa pertemuan, menguji dan memberi nilai. Biasanya jika dari awal hingga ujung sudah kelihatan dengan jelas, maka sudah dipastikan bahwa itu masuk kategori proyek. Biasanya mahasiswa S1 atau diploma/vokasi diwajibkan menyelesaikan tugas akhir dan/atau skripsi yang tentu saja masuk kategori proyek. Ketika membuat alat, merancang sistem, dan sejenisnya dosen pembimbing bisa melihat langkah-langkah dari awal hingga selesai dengan jelas. Jika disubmit ke jurnal internasional tanpa ada suatu hal yang baru (novelty, originality, dan kontribusi) pasti ditolak, kecuali memang jurnal kampus yang khusus mewadahi skripsi mahasiswanya.

Artikel Riset

Artikel jenis ini harus didekati secara filosofis. Di luar negeri, lulusan s3 biasanya diberi gelar “doctor of philosophy” (PhD) karena memang diharuskan menggunakan aspek tersebut dalam risetnya. Terutama ketika menilai sebuah karya apakah memiliki unsur originality, novelty, dan kontribusi terhadap ilmu pengetahuan. Seseorang yang belum doktor seharusnya riset bersama dengan seorang/beberapa orang mentor yang biasanya sudah doktor. Tidak serta merta hanya dengan studi literatur dapat menemukan originality, novelty dan kontribusi. Terkadang diperlukan seorang pakar (expert). Biasanya pakar yang mereview sebuah artikel dalam peer review. Walaupun kita sudah membuktikan dengan studi literatur yang banyak tetapi terkadang seorang pakar menolak tulisan kita memiliki novelty, originality, dan kontribusi. Novelty, originality dan kontribusi sulit dievaluasi, hanya peer review- lah yang bisa menjawabnya. Jadi tidak perlu studi literatur? Ya harus lah, sudah melakukan systemmatic literature study pun terkadang masih saja “mis” apalagi tidak sama sekali.

Kebaruan (Newness) & Kontribusi

Yang termasuk kebaruan adalah novelty, originality dan creativity. Jika novelty mengharuskan sesuatu ide/konsep belum pernah diutarakan atau dilaksanakan oleh orang lain, originality menggabungkan/sintesa ide/konsep orang lain (lihat info link ini). Beberapa peneliti mengusulkan teknik-teknik dalam mengukur sebuah novelty (lihat link springer ini).

Gambar di atas memperlihatkan sebuah paper X yang mensitasi artikel sebelumnya (1,2,..N) dan disitasi oleh artikel berikutnya. Ini merupakan teknik pengukuran berdasarkan sitasi. Dikatakan Novelty jika artikel-artikel lain (1,2,..M) mensitasi paper X dan sedikit mensitasi (1,2, …N). Jika tidak, maka paper X tersebut hanya mediasi saja (membantu menyebarkan ide 1,2, ..N). Seorang reviewer akan mengetahui apakah paper X nanti akan banyak disitasi langsung walaupun belum dipublikasi.

Kontribusi terkadang secara refleks ada karena tentu saja aneh jika penelitian menghasilkan novelty dan originality tetapi tidak ada sumbangsihnya bagi knowledge. Oiya, kontribusi tentu harus bisa diukur, misalnya meningkatkan kepuasan pelanggan, meningkatkan akurasi/performa/efisiensi, dan bukan terhadap masyarakat/lingkungan yg masuk kategori manfaat penelitian dan bukan kontribusi, apalagi dengan argumen kontribusinya membantu orang tua karena dengan selesainya tulisan, cepet lulus, dan tidak perlu bayar kuliah lagi .. hehe.

Konversi Laporan Proyek ke Artikel Ilmiah

Untuk merubah artikel dari report menjadi artikel ilmiah perlu dicari novelty, originality, dan kontribusinya. Untuk bidang informatika ada sedikit perbedaan antara ilmu komputer/teknik informatika (metode) dengan sistem informasi (domain penelitian). Jadi, jika tidak ditemukan novelty di sisi ilmu komputer, cari saja di sisi domain penelitian (kedokteran, bisnis, akuntansi, dan lain-lain).

Contohnya adalah multi-criteria optimization dan teknik GIS yang saya gunakan untuk kasus optimalisasi penggunaan lahan urban. Jadi, hasil dan pembahasan harus mengarah ke domain penelitian, bukan ke metode (lihat pembahasan pada pos sebelumnya). Ketika mahasiswa doktoral sudah menerima kabar naskah publikasi sebagai syarat lulus accepted dengan revisi minor, biasanya bayangan wisuda sudah di depan mata. Penulisan laporan disertasi ratusan halaman tidak jadi masalah karena sudah jelas alur dari A sampai Z nya, beda ketika baru proposal, tahu awal tapi tidak jelas bagaimana mencapai ujungnya. Sekian semoga bermanfaat.

Yuk Ikut Standar dalam Perancangan Sistem

Salah satu yang membuat jengkel mahasiswa ketika mengerjakan skripsi/tugas akhir adalah tidak adanya standar yang harus diikuti, terutama tema-tema perancangan sistem dan pemrograman. Tetapi saat ini sepertinya mulai berkurang karena era online sudah merambah ke semua lini. Sumber-sumber informasi mudah dijumpai lewat variasi-variasinya seperti dalam bentuk blog, video, ebook, milis, grup dan lain-lain. Akibat tidak adanya standar, sering dijumpai perdebatan yang tidak perlu ketika sidang skripsi. Bahkan ada yang curhat ketika seorang mahasiswa dibimbing oleh dua pembimbing berbeda yang tidak seia-sekata. Disuruh oleh pembimbing A merubah mengikuti petunjuknya tetapi oleh pembimbing B diminta hal sebaliknya.

Khusus analisis dan disain basis data sudah dibahas pada postingan sebelumnya, yakni mencari sumber informasi tentang rancangan yang sudah sering dibuat orang. Pola-pola disain pun sudah umum ditemui, kita tidak perlu menemukan ide baru kecuali jika rancangan yang ingin dibuat khusus dengan karakteristik tertentu.

Standar Pemodelan Sistem

Sejak dulu, standar yang digunakan dalam pendidikan adalah buku referensi. Ketika beragumen, sebuah buku dijadikan rujukan akan kebenaran sebuah konsep. Masalah muncul ketika sebuah buku dianggap “kurang tepat” oleh pihak tertentu. Untuk cara aman biasanya akademisi menggunakan buku berstandar internasional. Hanya saja buku-buku jenis tersebut sulit dipahami oleh mahasiswa-mahasiswa kita, terutama para milenial-milenial yang lebih suka hal-hal yang praktis. Mereka butuh contoh-contoh kasus yang khusus yang ada di negara kita. Mau tidak mau buku-buku panduan berbahasa Indonesia yang ringkas sangat dibutuhkan. Masalah muncul ketika buku tersebut agak “kurang standar” walaupun sangat mudah dipahami. Oleh karena itu sebaiknya mahasiswa diajarkan melihat bentuk-bentuk standar resmi, misalnya untuk pemrograman berorientasi objek dapat dijumpai pada situs UML berikut.

Memang tidak ada orang yang memiliki pengetahuan lengkap akan suatu topik tertentu. Namun di era online, kita harus memanfaatkan fasilitas online tersebut. Amat disayangkan banyak dijumpai di jurnal-jurnal nasional penulisan diagram UML yang tidak mengikuti standar yang ada, padahal rancangannya bagus, hanya presentasi saja yang tidak mengikut standar. Bahayanya adalah, artikel tersebut dijadikan sitasi dan referensi sehingga artikel yang lain pun menjadi tidak mengikuti standar.

Contoh Kasus

Salah satu diagram UML yang paling banyak dibuat adalah diagram kelas dan use case. Bahkan saking seringnya use case digunakan ada istilah use case-driven. UML.org menyediakan unduhan versi terbaru untuk melihat standar yang ada. Standar di sini merupakan kesepakatan dari Object Management Group (OMG) dengan vendor-vendor perangkat lunak seluruh dunia. Jadi, jika kita berpatokan dengan situs resminya, pegangan kita menjadi kuat, jauh lebih kuat dibandingkan hanya berpegang pada buku referensi.

Gambar di atas merupakan salah satu contoh yang dibahas dalam UML.org yang dijumpai ketika membahas use case di halaman 643. Saya sendiri baru tahu kalau ada multiplicity dalam use case yang biasanya dijumpai pada diagram kelas. Perhatikan kesederhanaan yang ditampilkan. Sesuai fungsinya, use case memang diperuntukan sebagai penjelasan “apa” yang dilakukan sistem, bukannya “bagaimana”. Jadi jika rancangan use case kita berupa alur “bagaimana”, sudah dipastikan tidak sesuai dengan fungsi utama use case. Use case menggambarkan kewajiban apa saja yang harus diselesaikan programmer pada program yang diusulkan.

Contoh di atas mengharuskan programmer membuat fungsi-fungsi (dikenal dengan istilah functional requirement) dalam diagram use case di atas antara lain withdraw, transfer, deposit, register ATM, dan Read Log. Bagaimana dengan login? Silahkan tambahkan tapi jangan sampai berubah menjadi alur proses mendaftar Deposito dari login, registrasi, dll yang ujung-ujungnya ribet dan use case tidak memiliki fungsi utamanya. Silahkan jelaskan dengan diagram UML lainnya jika ingin detil, misalnya sequence atau activity diagram. Mungkin kita memiliki bentuk yang sedikit berbeda, misalnya tanpa multiplicity 0..1, 0..*, dll, tapi format garis tanpa anak panah perlu menjadi perhatian mengapa tidak ada panah di sana.

Perhatikan contoh lain bagaimana merinci suatu aktivitas dengan activity diagram di atas. Bagaimana fork dan join diimplementasikan dalam diagram aktivitas sebaiknya tetap mengacu standar. Sekian, silahkan kunjungi situs standar UML tersebut, semoga bisa membantu melerai pertengkaran di meja sidang skripsi/tugas akhir.