Public, Private, dan Protected Pada Python

Public, Private, dan Protected dikenal dengan nama Visibility. Istilah ini telah lama dikenal oleh bahasa pemrograman C++ dan Java. Python, merupakan bahasa baru secara default mendefinisikan suatu atribut atau metode bersifat public. Diagram kelas UML mendefinisikan public dan private dalam bentuk simbol positif dan negatif.

Untuk membuat private dengan menggunakan simbol garis bawah dimana untuk protected satu garis bawah (“_”) dan untuk private dua garis bawah (“__”).

Berikut contoh kelas Unisma sebagai induk dan kelas Dosen dan Mahasiswa sebagai anak yang diambil dari materi sebelumnya tentang inheritance/pewarisan. Silahkan gunakan editor Python, misalnya Google Colab untuk menjalankan kode berikut.

class Unisma(object):
  def __init__(self,nama,status,jurusan):
      self.__nama=nama
      self.__status=status
      self.__jurusan=jurusan
  def Salam(self):
      print(‘Selamat Hari Raya Idul Fitri 1442H’)
  def Info(self):
      print(“INFO”)
      print(“Nama    : “ + self._Unisma__nama)
      print(“Jurusan : “ + self._Unisma__jurusan)

Berikutnya untuk kelas Mahasiswa:

class Mahasiswa(Unisma):
  def __init__(self,nama,status,jurusan,npm):
      super().__init__(nama,status,jurusan)      
      self.__npm=npm
  def SalamSiswa(self):
      print(‘Hai teman-teman, kami {} {} mengucapkan’.format(
          self._Unisma__status,self._Unisma__jurusan))
      self.Salam()

Berikutnya coba jalankan dengan instruksi pengaksesan kelas-kelas di atas.

y=Mahasiswa(“Wahyu”,“Mahasiswa”,“Teknik Mesin”,123)
y.SalamSiswa()
y.Info()

Berikut video youtube untuk lebih jelasnya.

PhD Study – Win or Lose, no Draw

Kuliah dengan beasiswa pasti memiliki ikatan dengan pemberi beasiswa, minimal ikatan alumni, misalnya sama-sama penerima beasiswa BPPLN Dikti, yang saat ini sudah tidak dibuka lagi karena diganti dengan BUDI lewat LPDP. Berbeda dengan LPDP yang dipilih dari anak-anak mudah super, BPPLN kebanyakan dosen-dosen mapan, santai, yang terpaksa harus mengambil S3 (tidak semua sih). Nah, ternyata hasil/outputnya tidak jauh berbeda dengan kendala yang sama dengan anak-anak super itu.

Postingan ini terinspirasi dari grup WA alumni penerima beasiswa yang tiba-tiba ada seseorang yang mancing-mancing curhat masalah kuliahnya dulu hingga akhirnya berbondong-bondong ikut curhat juga. Tapi saya tidak ikut, hanya nyimak .. hehe, walaupun banyak cerita dan problemnya cukup berat juga.

Masa Sulit dan Masa Mudah Memperoleh Beasiswa

Saat ini sebenarnya banyak sekali tawaran beasiswa, hanya saja kondisi dan banyaknya pesaing membuat terkesan sulit. Ketika saya mengajukan di tahun 2013, kala itu DPR kecewa dengan DIKTI yang tidak bisa memenuhi target penerima beasiswa, alias sedikit yang mengajukan. Memang waktu itu tuntutan S3 tidak terlalu dibanding sekarang, jadi sedikit yang berminat. Nah, saya melihat itu dan iseng-iseng mencoba. Pertama lewat pendidikan gratis 3 bulan pelatihan bahasa dengan skor IELTS 6.0 saya mencoba apply. Wawancara pertama gagal, tapi saya santai saja, karena telah mengetahui DIKTI kesulitan mencari penerima beasiswa yang memang sedikit yg mendaftar (Sok jual mahal .. hehe). Tiba-tiba ada undangan wawancara ulang. Ternyata dugaan saya benar, masih minim yang daftar, sampai saya dan beberapa rekan yang sudah melupakan studi lanjut ketemu lagi di acara wawancara terakhir.

Dengan Pewawancara, Pa John, saat Reuni Penerima Beasiswa

Sebelum pandemik COVID-19 ternyata rekan-rekan saya yang mencoba mengajukan beasiswa tidak ada yang lolos dan begitu juga kampus-kampus level menengah. Saat pandemik lebih parah lagi. Bahkan rekan sesama alumni ada yang meninggal karena COVID.

Peran Supervisor

Peran supervisor atau advisor sangat menentukan. Pemberi beasiswa sangat tidak menyarankan ganti supervisor. Bahkan jika advisor pindah kampus, pemberi beasiswa membolehkan ikut pindah juga. Kalau saya unik, supervisor sama tapi pindah jurusan dikit.

Supervisor itu Seperti Anggota Keluarga

Video youtube di bawah ini memperlihatkan problem mahasiswa doktoral dengan supervisor. Juga dengan rekan-rekan lain, apalagi jika kampusnya rasis.

Tingkat Kelulusan 50%

Ini info dari Amrik, yang ternyata tidak jauh berbeda dengan di Indonesia dan mungkin negara-negara lain. Bahkan di kampus saya yang lulus dan yang tidak lulus 50:50. Mirip koin yang dilempar peluangnya. Uniknya LPDP yang berisi mahasiswa-mahasiswa super pun angkanya tidak jauh berbeda. Jadi mahasiswa yang akan mengambil jenjang ini harus memahami dua kemungkinan, lulus atau tidak lulus. Jangan khawatir, 50% itu kan rata-rata, tentu saja ada yang 30% dan ada yang 80% dong. Belum lagi musibah seperti yang dialami rekan saya yang meninggal karena stroke.

Semangat 100%

Boleh saja tingkat kelulusan rendah, tapi semangat harus dijaga 100%. Maklum PhD study itu seperti lari jarak jauh, berbeda dengan Master yang hanya 2 tahun. PhD study banyak tangga yang harus dilalui dan kita tidak tahu ditangga ke berapa bisa terpleset.

Jangan Terlalu Mandiri

Pembaca mungkin tidak setuju poin ini dan memang tidak ditemui di pelatihan-pelatihan seperti doctoral bootcamp. Namun beberapa kejadian di kampus saya menunjukan hal ini. Sebenarnya PhD study tidak 100% akademik, mungkin hanya 20% saja sisanya problem-problem lain seperti keuangan, kesehatan, lingkungan, supervisor, dan lain-lain.

Ngopi & Diskusi di Sore Hari – Ternyata alumni UGM semua dab ..

Masalah bahasa Inggris merupakan problem abadi mahasiswa Indonesia, termasuk saya. Komentar pertama penolakan ketika submit jurnal saya unik juga, reviewer jujur tidak membaca habis naskah saya, hanya 2 paragraf, dan dia yakin seluruh paragraf akan seperti itu, berantakan bahasa Inggrisnya. Supervisor tahu konten artikel menarik tapi tidak bisa menuangkan dengan baik gagasannya. So, langkah tercepat adalah minta jasa proofread. Di sinilah saya sadar tidak semua hal bisa saya kerjakan. Namun dengan berbekal bagaimana proofreader memperbaiki naskah saya jadi tahu bagaimana menulis artikel yang sesuai dengan EYD-nya English. Selain bahasa seperti pembuatan model, pertolongan kepala lab, responden survey penelitian, dan lain-lain membuktikan tidak 100% S3 lewat usaha kita. Semoga tulisan ini tidak melemahkan semangat Anda yang mau S3.

Naïve Bayes – Kalkulasi secara Manual dan dengan Komputer

Saat ini tidak dapat dipungkiri bahwa Deep Learning paling banyak diteliti dan digunakan dalam aplikasi-aplikasi artificial intelligence. Beberapa pengguna tidak menyukai metode tersebut karena karakteristiknya yang tidak dapat dilihat logika di dalam modelnya atau sering diistilahkan dengan black box walaupun akurasinya saat ini dengan model terbarunya hingga mendekati 100%. Selain itu, deep learning membutuhkan kinerja prosesor yang tinggi, terutama ketika proses pelatihan (learning).

Jika ingin membuat model yang dapat dilihat alur logikanya, naïve bayes merupakan salah satu pilihan yang baik. Walaupun kinerjanya menurut beberapa penelitian kalah dengan metode terkini seperti misalnya support vector machine (SVM), metode ini memiliki karakteristik statistik yang kental, yaitu probabilistik. Ada istilah confidence dalam metode ini.

Untuk perhitungan, naïve bayes lebih mudah menurut saya dibanding decision tree yang mengharuskan membuat model tree dengan konsep entropy dan gain informationnya. Pada naïve bayes, kita hanya menghitung probabilitas ketika menghitung confidence tiap-tiap kelas prediksi.

Plus Minus

Metode naïve bayes, dalam Scikit Learn diisitilahkan dengan Gaussian Naïve Bayes, karena dalam mengkonversi tabel kategorikal lewat pendekatan fungsi Gauss. Walaupun akurasinya kurang dibanding metode lain, sifat probabilistiknya sangat membantu penjelasan ke pengguna dalam aplikasinya. Misalnya dalam memprediksi sebuah sentimen dalam sentiment analysis, metode ini tidak hanya menjelaskan positif, negatif, atau netral saja, melainkan berapa kadar positif dan negatifnya dalam bentuk probabilitas. Terkadang jika dalam sistem dashboard menunjukan negatif dengan probabilitas yang tinggi bisa saja digambarkan dengan warna merah yang artinya warning, sehingga eksekutif segera mengambil tindakan yang perlu dalam manajemen.

Statistik merupakan bidang yang paling banyak dimanfaatkan dalam machine learning. Belakangan beberapa ahli machine learning enggan disebut ahli statistik karena belakangan metode-metode terbaru tidak terlalu mengadopsi konsep statistik, misalnya tensorflow yang cenderung ke arah tensor dan matriks dalam aljabar. Silahkan lihat penjelasan slide di atas dalam video youtube berikut ini, semoga bermanfaat.

Pseudocode

Bahasa pemrograman sangat beragam dari yang sulit seperti bahasa rakitan hingga yang paling mudah dengan bantuan Integrated Development Environment (IDE) yang interaktif. Hanya dengan drag and drop mouse, sebuah aplikasi terbentuk. Karena tiap programmer memiliki bahasa pemrograman sendiri, terkadang untuk berkomunikasi membutuhkan bahasa universal tentang sebuah algoritma. Di sinilah peran pseudocode, dimana sebuah alur algoritma dibuat dalam bahasa umum yang dimengerti manusia.

Dalam perjalanannya, pseudocode memiliki kompromi antara bahasa yang mudah dimengerti manusia dengan yang mudah diimplementasikan programmer. Cornel University menawarkan saran dalam pembuatan pseudocode sebagai berikut.

  • Dibuat menyerupai bahasa manusia dan kode program.
  • Hindari detil yang tidak perlu.
  • Jangan menulis yang sudah jelas.
  • Gunakan beberapa sintax program yang lebih ringkas dari bahasa, misal struktur if-then-else.
  • Perhatikan konteks-nya. Terkadang “use quicksort” pada pseudocode cukup jika audiens mengerti. Namun “quicksort” perlu dijabarkan pada kasus tertentu.
  • Jangan melupakan algoritma yang mendasari algoritma yg sedang dibuat pseudocodenya.
  • Seimbangkan antara pemahaman user dan programmer.

Buku-buku referensi internasional, terutama yang membahas metode-metode komputasi memiliki style terntentu dalam pembuatannya. Jurnal-jurnal ilmiah pun memiliki patokan-patokan dasar dalam pembuatan pseudocode. Ada yang merepresentasikan pseudocode dalam Figure/Gambar, ada pula yang menyamakan dengan naskah teks. Masing-masing ada kekurangan dan kelebihannya.

Thomas Cormen dalam buku Algoritma-nya kebanyakan merepresentasikan sebuah pseudocode dalam format fungsi dimana variabel input dimasukan dalam tanda kurung “()”. Selain itu, sebuah penomoran diberikan di tiap baris perintahnya.

Terkadang pembaca awam pun harus memahami seluk-beluk pemrograman, misalnya konsep rekursif yang unik dimana satu fungsi memanggil dirinya sendiri di dalam alur algoritmanya. Contoh sederhana adalah fungsi faktorial berikut.

Untuk lebih jelasnya silahkan simak video youtube berikut, yang masuk dalam materi kuliah logika dan algoritma.

Pohon Keputusan (Decision Tree)

Pohon keputusan merupakan satu metode klasik dalam prediksi/klasifikasi. Tekniknya adalah dengan menggunakan pertanyaan di suatu atribut (disebut test attribute) kemudian mengarahkan ke cabang mana sesuai dengan jawabannya. Tugas utama dalam metode ini adalah model membuat pohon/tree berdasarkan informasi dari data yang menjadi rujukan.

Perhitungan Manual

Pada slide di bawah, perhitungan manual dijelaskan yang diambil dari buku Data Mining karya Han and Kamber.

Beberapa kesalahan hitung terjadi ketika menghitung expected information dan entropi di tiap-tiap fitur/atribut. Untuk yang sedang mengambil kuliah ini ada baiknya berlatih soal-soal agar ketika ujian tidak terjadi salah hitung.

Perhitungan dengan Program

Berikutnya disertakan pula bagaimana mengimplementasikannya dengan Python, dalam hal ini menggunakan Google Colab. Saran untuk mahasiswa S1 dan D3 ada baiknya mengetik langsung kode (tanpa copas) agar bisa melatih skill/keterampilan. Sekaligus juga debug ketika ada error terjadi. Silahkan lihat video lengkapnya di youtube berikut ini. Semoga bermanfaat.

Inheritance/Pewarisan dengan Python

Salah satu konsep terkenal pada pemrograman berorientasi objek adalah inheritance/pewarisan. Istilah ini identik dengan generalisasi dan spesialisasi dimana seorang induk akan mewariskan sifat-sifat ke seorang anak yang general dan seorang anak memiliki sifat khusus yang spesifik. Gambar di bawah ini contoh diagram UML dalam menggambarkan relasi generalisasi yang menggambarkan konsep pewarisan.

Kotak menggambarkan kelas dengan tiga kompartemen/ruang yaitu nama, atribut dan metode/operasi. Kelas Unisma di atas merupakan kelas induk yang akan mewariskan tiga buah atribut (nama, status, dan jurusan) dan dua buah operasi/metode (salam dan Info). Di sini simbol minus berarti private (tidak bisa diakses dari luar kelas) dan plus berarti publik (bisa diakses di luar kelas). Silahkan lihat slide berikut.

Kelas Dosen dan Mahasiswa berturut-turut memiliki atribut unik NIP dan NPM, juga metode SalamDosen() dan SalamSiswa(). Perhatikan jangan lupa menulis “()” setelah nama metode/operasi, yang merupakan standar/konvensi internasional. Silahkan buat satu sel yang berisi kelas Unisma yang merupakan kelas Induk.

https://colab.research.google.com/drive/1T19eiVktOrMQzXqZLD3jV4I0fbbQZ6oA?usp=sharing

Kode di atas juga mengilustrasikan pembuatan dua kelas anak yaitu kelas Dosen dan kelas Mahasiswa. Di sini kita menggunakan IDE Google Colab yang dapat diakses tanpa perlu instalasi karena hanya menggunakan browser dengan network ke internet.

Perlu diperhatikan bahwa pemrograman berorientasi objek memiliki konsep Konstruktor dalam tiap pembuatan kelas. Karena tiap kelas harus mampu menciptakan satu objek. Tanpa konstruktor maka kelas tersebut tidak bisa membentuk objek. Istilahnya adalah kelas abstrak, terkadang diperlukan juga kelas jenis ini pada penerapannya. Silahkan lihat video berikut, semoga bermanfaat.

Jenuh dan Bosan

Pandemik COVID-19 sudah berlangsung dua tahun. Jika dibandingkan dengan awal-awal kemunculannya saat ini sudah mengalami naik turun jumlah kasus hariannya. Ketika tulisan ini dibuat, di India terjadi lonjakan eksponensial, yang tidak sanggup diprediksi oleh mesin regresi manapun. Indonesia kini sudah mulai melakukan vaksinasi corona dan sepertinya tidak ada lagi penolakan yang berarti dari masyarakat. Yang dikhawatirkan adalah mudik lebaran yang berpotensi menambah kasus infeksi harian COVID-19.

Beberapa tempat peribadatan telah dibuka, termasuk mall di tempat saya, Bekasi. Memang, jenuh dan bosan sulit diatasi. Yang terpenting adalah jangan lengah dan tetap menjaga protokol kesehatan. Tempat saya bekerja terjadi kasus karena acara pelatihan. Walaupun tidak ada orang luar, tetapi rekan kita tidak bisa dijamin tidak pernah ke mana-mana. Ditambah lagi karena sudah kenal dekat, kita yakin rekan kita tidak membawa virus, akibatnya masker dan jaga jarak kurang diperhatikan.

TIdak dapat dipungkiri, kita sudah jenuh dengan belajar/bekerja dari rumah. Terkadang kejenuhan bisa membuat seseorang nekat dan berani walau dalam keadaan pandemik. Tak apa, yang penting tetap waspada. Postingan ini mudah-mudahan bisa mengusir jenuh pembaca sekalian.

Vaksinasi COVID-19

Untuk Mahasiswa

Mahasiswa saya ada yang terkena, tetapi karena masih muda hanya beberapa minggu sudah sembuh kembali. Masalahnya adalah mahasiswa yang berasal dari dosen yang tugas/ijin belajar. Seorang rekan saya terpaksa dilarikan kembali ke ICU karena kondisinya yang lemah, padahal sudah balik ke rumah dan dinyatakan negatif. Rekan saya yang satu angkatan studi ke luar negeri beasiswa BPPLN dikti meninggal karena paru-parunya gagal menangkap oksigen untuk tubuhnya.

Saran saya untuk mahasiswa doktoral yang biasanya sudah berusia lanjut adalah efektif dan efisien dalam menyelesaikan disertasinya. Seperti saran saya ketika pembekalan dulu di tahun 2013, mahasiswa doktoral tidak dituntut untuk memenangkan hadiah nobel. Waktu sangat berharga, sehingga makin cepat makin baik, apalagi beasiswa ada batasnya.

Dalam menghadapi jenuh dan bosan ternyata anak-anak lebih hebat. Saya perhatikan dua anak saya yang masih SD dan SMP sangat menikmati kesehariannya. Untungnya aplikasi-aplikasi di gadget sangat membantu mengusir jenuh asal dibatasi saja dan aktivitasnya positif. Oiya, kemampuan mengusir rasa jenuh dan bosan juga salah satu bagian dari kecerdasan. Jadi segala daya dan upaya harus kita lakukan dalam mengusir kebosajan baik dengan beribadah, berdoa, hingga aktivitas-aktivitas yang di luar rutinitas harian. Berkebun, memelihara binatang, saat ini menjadi banyak peminatnya.

Prioritas

Boleh saja kita menyalurkan hobi dan lain-lain untuk mengusir rasa jenuh, namun tanpa prioritas dikhawatirkan tugas-tugas utama tidak dapat selesai sesuai harapan. Kemampuan menentukan hal-hal yang penting dan mana yang kurang penting sangat perlu. Jika prioritas dapat kita tentukan di awal, diharapkan kesalahan-kesalahan untuk hal-hal yang penting dapat dihindari dan hanya terjadi pada hal-hal yang kurang penting. Manusia tidak luput dari lupa, namun jangan sampai lupa terhadap hal-hal yang penting. Apa saja kah hal penting itu? Kitalah yang tahu. Jika facebook, twitter, dan medsos lainnya lebih sering Anda akses dibanding tugas utama seperti membuat jurnal, menyusun disertasi, dan lain-lain, dapat dipastikan penentuan prioritas belum maksimal. Semoga tulisan di hari libur ini bermanfaat.

Machine Learning dengan K-Nearest Neighbours (KNN)

Beberapa istilah terkadang membuat rancu seperti data mining, machine learning, dan deep learning. Wajar saja karena ketiganya masih dalam induk yang sama, yaitu data mining yang bermain dengan data yang akan dilatih/ditraining. Deep learning merupakan machine learning yang mengkhususkan diri dengan satu metode yaitu jaringan syaraf tiruan (neural network). Machine learning merupakan salah satu metode dalam data mining yang mengkhususkan diri dengan beragam metode untuk melatih data sehingga mampu digunakan sebagai mesin inferensi/prediksi maupun klasterisasi. Salah satu metode klasik yang mudah dimengerti adalah KNN. Metode ini berprinsip, suatu data akan menjadi anggota data lain jika di sekelilingnya kebanyakan anggota data tersebut.

Scikit Learn

Para pengembang dan peneliti dengan menggunakan bahasa Python bersama-sama membuat library untuk pengguna machine learning. Library tersebut dibuat dengan format kelas yang berisi metode/fungsi seperti fitting, predicting, dan juga alat untuk mengukur akurasi. Kode sumber dapat diakses dengan mudah sehingga memudahkan Anda yang mendapat tugas memodifikasi metode.

Untuk praktek menerapkan KNN dengan library dari Scikit Learn, Google Colab merupakan pilihan yang praktis karena hanya bermodalkan browser dengan koneksi internet saja. Berikut kode yang terdiri dari impor library, ambil data, training data dan validasi. Terakhir menggunakan fungsi prediksi pada library untuk memprediksi kelas suatu data. Untuk pemula ada baiknya Anda ketik sendiri untuk melatih keterampilan serta alur logika memrogram.


#Impor pustaka
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from sklearn import datasets
from sklearn.neighbors import KNeighborsClassifier
from sklearn.metrics import accuracy_score
from sklearn.metrics import classification_report
#Mengambil data dari file csv
datasiswa=pd.read_csv('beasiswa.csv')
df=pd.DataFrame(datasiswa,columns=['Mahasiswa','IPK','Tingkat Kemiskinan (TM)','Beasiswa/Tidak'])
X=np.asarray(datasiswa)
x_train=X[:,1:3]
y_train=X[:,3:4]
#Memanggil KNN
knn=KNeighborsClassifier(n_neighbors=6,
weights='uniform',
algorithm='auto',
metric='euclidean')
#Fit model dengan data latih dan target/label
knn.fit(x_train,y_train)
#Mengambil data dari file csv
datavalidasi=pd.read_csv('validasibeasiswa.csv')
df2=pd.DataFrame(datasiswa,columns=['Mahasiswa','IPK','Tingkat Kemiskinan (TM)','Beasiswa/Tidak'])
X2=np.asarray(datavalidasi)
x_val=X2[:,1:3]
y_val=X2[:,3:4]
#Prediksi
y_pred=knn.predict(x_val)
print((y_val).T)
print(y_pred)
print(classification_report(y_val,y_pred))
#Menyiapkan sebuah data uji/testing
uji=np.asarray([[2.5,4.0]])
y_pred=knn.predict(uji)
print(y_pred)

Data yang dibutuhkan dua buah yaitu data beasiswa dan data validasi beasiswa dalam format CSV. Bagaimana cara unggah data tersebut ke Google Colab serta penerapannya silahkan lihat video Youtube saya berikut ini. Semoga bermanfaat.

Tips and Tricks for Undergraduate and Graduate Research on Machine Learning

Machine learning merupakan topik yang menjadi perhatian peneliti-peneliti ilmu komputer saat ini, terutama karena perkembangan pesat Deep Learning beserta perangkat keras pendukungnya seperti CPU, GPU, dan memory. Dari diploma hingga doktoral riset machine learning sangat menarik perhatian industri maupun pengguna. Hal ini terjadi karena salah satu karakteristik dari industri 4.0 adalah artificial intelligence, dimana machine learning termasuk di dalamnya.

Tip dan Trik Untuk Diploma dan S1

Sesuai dengan tujuan dari program diploma dan S1 yang menerapkan teori yang diperoleh dari bangku kuliah, maka riset untuk mahasiswa S1 menuntut skill dalam membuat aplikasi sederhana. Selain menerapkan ilmu yang diperoleh, mahasiswa S1 diharuskan mengikuti tren terkini teknologi yang ada agar bisa bersaing di dunia kerja. Untungnya materi sudah tersedia di internet, tinggal mahasiswa menentukan ke mana arah minatnya. Mahasiswa S1 saat ini diwajibkan memiliki sertifikat kompetensi sebagai pendamping ijazah.

flyer

Tip dan Trik Untuk Master dan Doktor

Master dan doktor merupakan kelanjutan dari jenjang sebelumnya, sering disebut dengan istilah pascasarjana (graduate atau post-graduate). Nah, sedikit berbeda dengan mahasiswa S1, mahasiswa pascasarjana tidak fokus ke pembuatan aplikasi melainkan memperbaiki metode yang ada atau menemukan metode baru yang lebih baik. Biasanya kampus mensyaratkan luaran berupa jurnal atau seminar, jika master seminar internasional, doktor jurnal internasional yang terindeks.

Problem saat ini yang muncul adalah beberapa aplikasi menyediakan library atau tools yang dikhawatirkan tidak mendidik pengguna mengetahui algoritma di dalamnya. Namun fungsi-fungsi yang tersedia dapat dilihat, misalnya Matlab dengan m-file nya, sementara Python dengan fungsi-fungsi yang ada di kelas fungsi tersebut. Oleh karena itu diperlukan pemahaman mengenai bahasa pemrograman berorientasi objek. Tantu saja ada juga yang share kode Python untuk kode tertentu. Mengapa harus mengetahui struktur kode program? Karena untuk jenjang S3 terkadang perlu memodifikasi kode baik untuk meningkatkan performa maupun hybrid dengan metode lain.

Untuk deep learning, beberapa metode yang terkenal merupakan pemenang kontes machine learning, dengan akurasi yang amat tinggi hingga mendekati 100%. Sepertinya untuk menandinginya cukup sulit bagi mahasiswa-mahasiswa kita, walaupun tidak mustahil. Namun ada baiknya fokus ke sisi lain seperti kecepatan, ringan, dan mudah dilihat strukturnya (deep learning bercirikan “black box” yang tidak dimengerti struktur di dalamnya). Machine learning sendiri memiliki banyak metode di luar deep learning dan syaraf tiruan lainnya, beberapa teknik terkini berbasis computer vision seperti haar cascade terkadang lebih cepat dan efisien. Berikut rekaman seminar kemarin.

Sarana Ilmiah: Bahasa, Matematika, dan Statistika

Beberapa hari ini, pelajar SMA sedang sibuk mendaftar ke perguruan tinggi yang diinginkan, terutama perguruan tinggi negeri (PTN). Berbeda dengan sekolah menengah, universitas merupakan institusi yang fokus dengan keilmiahan sebuah ilmu pengetahuan, baik eksakta maupun humaniora. Terkadang siswa yang menonjol gagal di perguruan tinggi karena tidak mampu mengikuti budaya ilmiah kampus, sementara terkadang siswa yang biasa-biasa saja ketika sekolah menengah, karena mampu mengikuti budaya ilmiah kampus dia sanggup menjadi bintang. Postingan ini membahas apa saja sarana-sarana ilmiah yang diperlukan seorang mahasiswa dalam mengikuti perkembangan iptek yang sangat cepat akhir-akhir ini. Jika Anda pernah mengambil mata kuliah filsafat ilmu, pasti pernah mendengar istilah metode ilmiah. Nah, sarana ilmiah berbeda dengan metode ilmiah (problem, hipotesa, eksperimen, kesimpulan); sarana ilmiah berisi ilmu-ilmu apa saja yang diperlukan dalam mendukung sebuah riset.

Bahasa

Bahasa merupakan ciri khas manusia yang membedakannya dengan hewan. Dengan bahasa ilmu yang dimiliki seorang manusia dapat disebarakan dan diwariskan ke generasi berikutnya. Jika Anda pernah menonton film “Planet of the Apes”, si kera bernama Caesar dengan modifikasi menjadi cerdas dengan disertai kemampuan bahasa.

Terkadang siswa yang ingin dikatakan cerdas melupakan pelajaran bahasa dan fokus ke matematika dan sains saja (fisika, biologi, dan kimia). Padahal bahasa merupakan dasar ilmu yang menjadi sarana ilmiah utama. Diskusi, memahami pertanyaan, presentasi, menulis makalah, dan lain-lain sudah pasti membutuhkan kemampuan bahasa (lisan dan tulisan). Dosen saya dulu mengatakan jika tidak bisa mengutarakan dalam bahasa berarti Anda belum paham.

Ketika ujian masuk pascasarjana saya melihat ada soal bahasa Inggris makalah satu halaman tapi harus dibaca dengan cepat dan harus paham karena pertanyaan yang diberikan bukan sekedar skimming melainkan harus mampu menyimpulkan apa saja yang ada di paragraph. Waktu itu saya sempat heran bagaimana mungkin soal tersebut dapat dijawab oleh manusia normal. Namun berjalannya waktu saya sadar ternyata saya yang kurang normal waktu itu, hehe.

*****

Matematika

Sarana lainnya adalah mata pelajaran yang paling tidak disukai oleh kebanyakan pelajar. Jika dalam bahasa terselip aspek subjektif tertentu, misalnya ekspresi penulis, makna tersembunyi, dan lain-lain yang dapat dianggap mengganggu objektifitas, dalam matematika hal itu dapat diatasi. Hal ini yang membuat bidang yang sekarakter dengan matematika disebut eksakta, sebagai lawan dari bidang non-eksakta (humaniora dan bahasa).

Seorang pelajar bisa saja menghindari fisika atau kimia, tetapi akan sulit menghindari matematika karena dibutuhkan oleh semua bidang yang berhubungan dengan aspek ilmiah sebuah ilmu. Bahasa dan matematika saat ini menjadi syarat masuk beberapa kampus ternama di dunia.

P. Silaban, sekelas dengan mahasiswa2 yahudi, Sumber: https://www.tobatabo.com/2129+mendapat-gelar-einstein-dari-tanah-batak-pantur-silaban-sebagai-fisikawan.htm

*****

Statistika

Sifat kaku matematika dan bahasa yang terlalu fleksibel membutuhkan sarana lain, yaitu statistika. Bidang ini muncul untuk mengatasi aspek-aspek sosial yang berkaitan dengan populasi dan sampel. Ketika pilkada atau pilpres, biasanya institusi-institusi yang berkecimpung dengan riset berbasis statistik muncul, terutama dalam hitung cepat atau survey dukung-mendukung caleg/capres.

Pearson, terkenal dgn Person Chi Squared Test: https://en.wikipedia.org/wiki/Karl_Pearson

Dalam statistik, error masih ditolerir, berbeda dengan matematik. Tentu saja selama batas confident masih ditolerir. Baik bidang eksakta maupun humaniora membutuhkan sarana ini. Jika bidang humaniora membutuhkan sarana ilmiah ini dalam rangka pengolahan data survey, bidang eksakta membutuhkan ketika menguji/eksperimen dalam kedokteran atau dalam bidang ilmu komputer untuk machine learning, walaupun pakar machine learning menolak disebut ahli statistik karena hal-hal tertentu terkait komputasi yang berkarakter “soft computing”. Misalnya, L. Zadeh, penemu fuzzy, mempertanyakan 1% error jika terjadi akan menghilangkan makna akurasi 99% suatu model.

Suka atau tidak suka yang namanya sarana sangat dibutuhkan, jadi tidak ada salahnya membuka kembali subjek tersebut. Jangan khawatir dikatakan ketinggalan, justru beberapa negara yang kuat di sarana ilmiah tersebut merupakan negara-negara maju. Di Asia Tenggara, beberapa negara yang kuat ilmu dasarnya mulai menunjukan taringnya, misalnya Vietnam, selain tentu saja Singapura. Yuk perkuat sarana ilmiah dan ilmu dasar, jika ada yang mengkritik bidang tersebut tidak langsung memiliki kontribusi dibanding bidang terapan, tidak apa-apa, barengi saja dengan terapan sebisa mungkin.