Scrapping Media Online dengan NEWSAPI.ORG

Bagi Anda yang ingin melakukan analisa media online, ada baiknya mendaftarkan API key pada Newsapi.org. NewsAPI.org adalah sebuah platform yang menyediakan akses ke ribuan artikel berita dari berbagai sumber media di seluruh dunia. Platform ini memungkinkan pengguna untuk mengakses berita terbaru dari berbagai kategori seperti politik, bisnis, hiburan, olahraga, dan banyak lagi. NewsAPI.org memiliki antarmuka pemrograman aplikasi (API) yang mudah digunakan oleh pengembang untuk mengambil data dan menyajikannya di aplikasi mereka.

NewsAPI.org menawarkan berbagai fitur dan fungsi yang berguna bagi pengguna dan pengembang aplikasi. Fitur yang tersedia di antaranya adalah kemampuan untuk memilih sumber berita yang diinginkan, menampilkan gambar dan video dalam artikel berita, dan mengatur hasil pencarian berdasarkan kata kunci dan tanggal terbit. NewsAPI.org juga menyediakan fitur untuk mengelompokkan artikel berita berdasarkan kategori dan sumber berita.

Salah satu keuntungan menggunakan NewsAPI.org adalah penggunaan data yang akurat dan up-to-date. Platform ini mengumpulkan dan mengelola berita dari berbagai sumber media terkemuka seperti BBC, CNN, dan New York Times. Hal ini memastikan bahwa pengguna mendapatkan akses ke berita terbaru dan terpercaya dari sumber yang terpercaya. Selain itu, NewsAPI.org juga menyediakan dokumentasi yang lengkap dan mudah dipahami bagi pengembang aplikasi yang ingin memanfaatkan API mereka. Format contoh mengaksesnya adalah sebagai berikut (NOTE: Gunakan API key Anda dengan daftar terlebih dahulu di newsapi.org).

<!DOCTYPE
html>
<html>
<head>
<title>News API Example</title>
</head>
<body>
<h1>News API Example</h1>
<p
id=“articles”></p>
<script>
const url = https://newsapi.org/v2/everything?q=politik%20indonesia&sortBy=date&apiKey=<APIKEY>&#8221;;
fetch(url)

.then(response => response.json())
.then(data => {
const articles = data.articles;

const articleList = document.getElementById(“articles”);
let html = “”;
for (let i = 0; i < articles.length; i++) {
const article = articles[i];

html += `<h2>${article.title}</h2>`;
html += `<p>${article.description}</p>`;
html += `<a href=”${article.url}“>Read More</a>`;
}
articleList.innerHTML = html;

})
.catch(error => {
console.log(error);

});
</script>
</body>
</html>

Berikut ini tampilan HTML yang mengaksses API. Untuk lebih spesifik, misal artikel Indonesia tentang politik.

Iklan

Menyikapi ChatGPT

Beberapa media online mulai memberitakan kalau ChatGPT akan diblokir, alasannya karena belum terdaftar di sistem Penyelenggara Sistem Elektronik (PSE) Kominfo. Tapi sepertinya itu hanya masalah administrasi, bagaimana dari sisi konten? Apakah berdampak negatif?

Kalau kita lihat visi AI Indonesia 2045 tampak Etika dan Kebijakan sebagai landasar, infrastruktur & data dan pengembangan talenta sebagai pilar untuk menopang 4 area fokus dan 5 bidang prioritas AI.

https://ai-innovation.id/server/static/ebook/stranas-ka.pdf

AI Sebagai Senjata

Memang sudah ada kekhawatiran tentang dampak AI, bahkan sudah dibahas di PBB (link). Sebenarnya AI itu sendiri mirip dengan pertama kali diperkenalkannya komputer, dimana sekutu berhasil membongkar kode mesin enkripsi elektromekanis Jerman, Enigma, lewat tangan Alan Turing. Komputer yang dahulu sebagai alat support/pendukung sekarang sudah berubah menjadi IT yang berperan bak senjata agar unggul dalam persaingan. Industri 4.0 mulai memasukan AI sebagai komponennya.

AI Untuk Mengejar Ketertinggalan

Semua mengakui kita masih tertinggal dengan negara lain, bahkan di Asia Tenggara sekalipun. Jika ada ‘sepatu’ yang membuat kita berlari cepat menyusul negara-negara lain, terutama negara maju, bisa jadi namanya Artificial Intelligence (AI). Lihat 5 bidang prioritas AI di Indonesia gambar di atas. Jika ingin memanfaatkan ChatGPT guna mengetahui ‘hal-hal yang orang lain tahu’ tentu saja tidak ada salahnya, kecuali ‘hal-hal yang sebaiknya tidak boleh tahu’, yang ini jatuh di ranahnya kebijakan. Di mana-mana mengejar harus berlari, bahkan harus lebih cepat dari larinya sesuatu yang dikejar. Saya teringat ketika kuliah dulu, dosen bertanya ke mahasiswa Thailand, dapat materi variabel kompleks kapan? Dijawab ketika S1, begitu juga Indonesia dan negara asia tenggara lain, seperti Viet Nam dan Malaysia. Tapi ketika ditanya ke mahasiswa Perancis, ternyata sudah memperoleh dari bangku sekolah menengah atas. Jika ada sesuatu yang secara gratis dan mudah membuat orang tahu lebih cepat, sepertinya cocok untuk negara yang sedang berkembang, apalagi yang untuk makan saja butuh kerja keras (kecuali sebagian kecil rakyat seperti kasus viral gaya hidup mewah anak-anak pejabat saat ini). Untuk yang ingin melihat tanggapan para profesor bisa lihat youtube berikut.

Mengatasi Problem Impor Data Besar MySQL

Ketika mengimpor data yang besar terkadang ada masalah di sisi server. Hal ini terjadi pada aplikasi dengan cronjob yang men-scrap data dari beragam sumber. Ada banyak cara yang dapat dilakukan, antara lain:

  • Gunakan command line: Jika file dump database yang ingin Kita impor cukup besar, Kita bisa menggunakan command line untuk mengimpor file tersebut ke dalam database Kita. Kita bisa menggunakan perintah seperti “mysql -u [username] -p [database_name] < [file_name].sql” untuk mengimpor file SQL. Pastikan untuk mengganti [username], [database_name], dan [file_name] dengan informasi yang sesuai untuk sistem Kita.
  • Naikkan batas ukuran file: Jika Kita masih ingin menggunakan phpMyAdmin, Kita bisa mencoba untuk meningkatkan batas ukuran file yang diizinkan untuk diunggah. Kita bisa mengubah pengaturan “upload_max_filesize” dan “post_max_size” di file php.ini. Pastikan untuk menyimpan perubahan dan me-restart server web Kita setelah melakukan perubahan.
  • Gunakan perangkat lunak alternatif: Jika kedua solusi di atas tidak berhasil, Kita bisa mencoba menggunakan perangkat lunak alternatif seperti MySQL Workbench atau Adminer untuk mengimpor data ke dalam database Kita.
  • Bagi file dump menjadi beberapa bagian: Jika file dump database Kita terlalu besar, Kita bisa mencoba untuk membaginya menjadi beberapa bagian yang lebih kecil dan mengimpor setiap bagian secara terpisah.
  • Gunakan layanan cloud: Jika tidak memungkinkan untuk mengimpor data secara lokal pada server, Kita bisa menggunakan layanan cloud seperti Google Cloud SQL atau Amazon RDS untuk mengimpor data ke dalam database. Layanan cloud ini biasanya menawarkan dukungan untuk mengimpor data besar dan menangani pengaturan infrastruktur database secara otomatis.

MySQL Workbench

Silahkan coba langkah-langkah di atas, dimulai dari menggunakan command line. Tapi jika alergi dengan terminal/command line pada cara pertama, atau bingung utak-atik “upload_max_filesize” langkah kedua, bisa gunakan MySQL Workbench berikut. Jalankan Run SQL Script.

Bagi File Dump

Cara praktis berikutnya adalah dengan men-scrap data per bagian, misalnya perbulan, atau beberapa hari. Sebagai contoh python berikut:

SELECT * FROM <tabel> WHERE `DATE` >= ‘2023-01-01’ AND `DATE` <= ‘2023-01-15’; akan menangkap data beberapa hari. Selanjutnya eksport ‘data_artikel_csv’ yang dihasilkan, misalnya dengan Phpmyadmin.

Ganti host, user, password, dan database sesuai yang akan dimasukan datanya. Gunakan kode SQL Select, gunakan tanggal tertentu agar tidak berat, bisa gunakan bulan sebagai basisnya. Di sini saya menggunakan 15 hari karena sebulan terlalu besar. Jalankan kode di atas, pastikan akan muncul file data_artikel.csv.

Selanjutkan Import kembali dengan Phpmyadmin (bisa juga dengan MySQL Workbench). Pastikan berjalan dengan baik.

Cek isi tabel, apakah sudah sesuai. Sekian semoga bisa membantu.

NOTE: Saya pernah mencoba dengan MySQL workbench menggunakan kode SQL:

SELECT * FROM <tabel> WHERE `DATE` >= ‘2023-01-01’ AND `DATE` <= ‘2023-01-15’;

Lalu menekan eksport ke CSV. Tetapi ketika diimport via Pypmyadmin (cPanel) ada kesalahan berikut. Kalau tidak bisa diatasi, silahkan gunakan kode Python dengan Pandas yang menghasilkan CSV cara sebelumnya.

Meratakan Titik Dua Pada Teks dan Tabel Microsoft Word

Jika pembaca pernah membuat CV, ketika menulis daftar isian seperti nama, alamat, dan seterusnya, pasti pernah jengkel karena titik dua tidak rata secara vertikal. Ada beberapa yang menyarankan dengan menjadikan ‘:’ dalam satu kolom tertentu pada tabel.

Cara lainnya adalah dengan memanfaatkan fasilitas ‘tab’ pada ruler di MS word. Seperti pada gambar berikut. Arahkan mouse di ruler pada lokasi tertentu. Ketika sudah diklik simbol ‘L’, yang artinya left tab, maka ketika menekan tab akan tepat mengarah ke lokasi tersebut dan rata kiri.

Berikutnya, setelah mengklik ‘L’, blok seluruh tulisan yang akan dibuatkan “:”-nya, lalu arahkan ke ruler lokasi tempat ‘:’ berada, misal di angka 5. Maka ketika tab ditekan, akan otomatis mengarah tepat ke angka 5 pada ruler.

Masalah muncul ketika kita menggunakan tabel karena tab pada tabel artinya pindah ke cell tetangga. Misal kita buat seperti data di atas, dipilih tab rata kanan “L” terbalik.

Di sini untuk tabel, dengan menekan ctrl+tab, bukan hanya tab pada tiap-tiap “:”. Tentu saja bisa dengan cara menjadikan “:” satu kolom khusus seperti cara pertama, tetapi sepertinya kurang efisien. Sekian, semoga sedikit membantu.

Web-Based Python dengan PHP

Terkadang kita diminta mendisain AI pada aplikasi berbasis web yang sedang running. Kebanyakan menggunakan bahasa pemrograman PHP-MySQL (di Indonesia). Oleh karena itu kita perlu mengetahui bagaimana meng-embed AI berbasis pythonitu pada PHP.

Training

Training terkadang terpisah dengan aplikasi karena membutuhkan sumber daya (hardware) yang besar untuk menjalankannya. Untuk data yang besar bisa berjalan berhari-hari. Aplikasi terkenal ChatGPT saja yang kita pakai hanya hasil training yang menurut info data sebelum tahun 2021 saja.

Untuk menjalankan proses training berbasis web, yang dibutuhkan adalah data training dan model AI. Data training untuk praktik kita coba dengan mengunggah dilanjutkan proses training. Video youtube berikut mengilustrasikan langkahnya. Jika bingung, bisa Googling atau tanya ChatGPT. Data contoh adalah kasus IRIS dataset.

Prediction

Proses berikutnya adalah prediksi dimana model yang telah dilatih sebelumnya diminta menebak hasil dari inputan. Di sini dibutuhkan tiga file, yaitu html untuk tampilan utama beserta input dan tombol proses, file PHP untuk mengeksekusi file python (py) dengan instrusi exec serta file utama, yaitu file python. Silahkan lihat video tutorial saya berikut. Selamat mencoba.

Problem Matriks Konfusi Pada ChatGPT dan Solusinya

Peneliti machine learning pasti mengenal matriks konfusi. Matriks konfusi (confusion matrix) adalah sebuah tabel yang digunakan untuk mengevaluasi performa model klasifikasi. Matriks konfusi menunjukkan jumlah prediksi yang benar dan salah yang dilakukan oleh model pada setiap kelas yang ada.

Matriks dua dimensi ini memiliki kolom sebagai prediksi dan baris sebagai nilai aktual/real/ground truth. Untuk Anda yang ingin memanfaatkan ChatGPT dapat menjalankan instruksi berikut. Pertama-tama masukan elemen dari matriks konfusi dengan format (baris, kolom).

Tampak nama kelas dengan True Positive, True Negative, False Positive dan False Negative-nya. Untuk menghitung Presisi, Recall, F1-Score, dan total akurasi dapat juga minta bantuan AI tersebut, tapi ternyata banyak kesalahan dalam perhitungannya.

Perhatikan Presisi (precision) untuk Agricultural, hasilnya ngaco. Namun cara/langkahnya benar. Oleh karena itu tetap harus menghitung sendiri. Caranya gampang, buka saja Excel, lalu copas angka-angka di atas.

Hasilnya 0.838257 yang jauh berbeda dengan hitungan sebelumnya: 0.942720. Biasanya sih TP, TN, FP, dan FN untuk kelas biner, lihat video berikut.

Cari ‘Branding’ karena Great Things Take Time (Tidak Ujug-Ujug)

Saat ini hubungan antar manusia semakin erat, baik hubungan bisnis, pertemanan, hubungan internasional antar negara dan hubungan lainnya. Saat tulisan ini dibuat, mulai terjadi krisis di bank silicon valley (bsv), bank komersial yang berbasis di Amerika Serikat, didirikan pada tahun 1983 dan berkantor pusat di San Jose, California. Ternyata mulai merembet ke negara lain, misalnya, credit suisse. Credit Suisse adalah sebuah bank investasi global yang berkantor pusat di Zurich, Swiss, didirikan pada tahun 1856 (bank tertua di Swiss). Apakah merembet ke tanah air? Semoga tidak ya.

Tidak hanya perbankan, sejatinya kita saling terkait erat. Ketika Anda membaca tulisan ini, Anda terkait dengan saya sebagai penulis. Tidak memandang suku, ras, golongan, gaji, jabatan, dan lain-lain, kita terkait satu sama lain. Dengan siswa, guru, pedagang dan lain-lain, kita saling terkait. Era dimana hidup dalam kelompok-kelompok seperti jaman primitif dulu sudah berlalu. Kita mulai memasuki dunia yang selalu terkait satu sama lain. Kasus ‘Sambo’ yang mungkin di era sebelumnya tidak jadi masalah, tetapi di era yang ‘saling terkait’ ini terbongkar juga. Bagaimana seorang anak yang ‘menyiksa’ rekannya, karena anak pejabat di suatu institusi ‘basah’ mengakibatkan di auditnya rekan-rekannya di institusi tersebut.

Jika Anda memilih ‘uang’ dibanding ‘branding’, jangan salahkan musuh akan bermunculan satu persatu. Misal, jika kita dicap ‘tukang berkelahi’ dijamin orang mikir-mikir untuk bekerja sama, bank meminjamkan dana, tawaran kerjasama, dan sejenisnya.

Menarik untuk menyimak video Renald Kasali. Jika kita terlalu perhitungan, maka alam akan perhitungan juga dengan kita. Jika bekerja sesuai dengan ‘bayaran’ efeknya hanya dapat bayaran saja. Tentu saja membangun branding jangan melupakan bayaran juga. Tetapi jika bekerja sesuai kapasitas kita, dipastikan kita memperolah bayaran tidak sekedar uang. Jadi tinggal pilih: jalur ‘cari uang’ alias jalur komoditi, dan jalur cari nama, alias jalur ‘branding’. Yang paling ekstrem adalah skema Ponzi seperti kasus crazy rich bermasalah atau umroh kelewat murah yang ujung-ujungnya masuk bui, walau sadar nama hancur .. tetap embat saja agar kaya .. walau sesaat.

Untuk yang hanya memikirkan anak, saudara, dan yang terdekat saja, sebenarnya tidak ‘alami’, alias tidak sunnatullah. Silahkan Anda hitung sendiri, dari lahir sampai sekarang, banyak mana dibantu orang lain yang tidak Anda kenal atau hanya kerabat kita. Dari dilahirkan oleh dokter, bidan (atau dukun) yang mungkin baru kenal tidak sampai setahun, guru, dosen, hingga tukang ojek, kebanyakan tidak lama berkenalan. Presiden Anda sekarang, entah suka atau tidak, terikat dengan kita. Tinggal pilih, ingin bekerja sama, mencari sebanyak mungkin ‘bestie’ … atau bertempur seperti Rusia vs Ukraina.

Mengelola File CSV untuk Training Web-Python dengan PHP

Beberapa sampel prediksi dengan neural networks (NNs) biasanya menggunakan dataset yang tersedia pada library yang digunakan, misalnya Sklearn. Namun dalam implementasinya dataset harus disediakan terlebih dahulu, misalnya dengan file Comma Separated Valud (CSV). Oleh karena itu keterampilan mengelola data sendiri tersebut sangat diperlukan. Postingan ini mengilustrasikan bagaimana mengelolanya.

Mengunduh Dataset

Untuk yang sedang mengerjakan proyek akhir biasanya mengambil data sendiri lewat survey. Untuk latihan bisa akses link berikut: iris.csv. Setelah itu ekstrak file archive tersebut. Tempatkan di folder dimana aplikasi akan dibuat.

Mempersiapkan Interace Untuk Training

Data iris memiliki empat input dan tiga kelas output: setosa, versicolor, dan virginica. Untuk mudahnya, bertanya saja kepada ChatGPT dengan kata kunci sebagai berikut:

create html code to upload csv file and use php to open python for neural network training and save trained h5

Berikutnya akan disediakan 1 index.html untuk interface utama, 1 file upload.php untuk, 1 file train.py untuk mentrainingnya Hasil tersimpan dalam format H5. Perhatikan, karena label/target masih string maka perlu dikonversi menjadi number. Untuk jelasnya silahkan lihat video berikut ini:

 

 

Model Neural Network Sederhana – Tensorflow & Web-based Python

Scikit-learn menyediakan modul Neural Network (NN) untuk melakukan klasifikasi data iris menggunakan algoritma MLPClassifier (Multilayer Perceptron Classifier). Algoritma ini memungkinkan pengguna untuk membangun model jaringan saraf tiruan dengan mempertimbangkan parameter seperti jumlah lapisan, jumlah neuron pada setiap lapisan, dan aktivasi fungsi untuk setiap neuron. Namun, saat ini penggunaan Tensorflow lebih dominan dari pada MLPClassifier.

Alur preprocessing dengan StandardScaler untuk klasifikasi dengan TensorFlow Neural Networks umumnya terdiri dari beberapa tahapan, yaitu:

  • Import library: Pertama, kita harus mengimpor library TensorFlow dan Scikit-learn (yang berisi StandardScaler) ke dalam program Python.
  • Load data: Data iris (atau data lain yang akan diklasifikasikan) harus dimuat ke dalam program Python. Data ini kemudian akan diproses dan dimasukkan ke dalam model jaringan saraf tiruan TensorFlow.
  • Preprocessing: Langkah berikutnya adalah preprocessing data menggunakan StandardScaler. StandardScaler melakukan normalisasi data dengan mengubah rata-rata menjadi nol dan standar deviasi menjadi satu. Ini membantu mempercepat proses konvergensi dan mengurangi dampak outlier pada hasil klasifikasi.
  • Split data: Data yang sudah di-preprocessing kemudian dibagi menjadi data latih dan data uji. Data latih digunakan untuk melatih model, sedangkan data uji digunakan untuk menguji performa model.
  • Definisikan model: Model TensorFlow Neural Networks didefinisikan dengan menentukan jumlah lapisan dan jumlah neuron pada setiap lapisan. Kemudian, fungsi aktivasi untuk setiap neuron ditentukan.
  • Latih model: Model kemudian dilatih dengan data latih menggunakan fungsi optimizer dan fungsi loss untuk menghitung gradien dan memperbarui bobot dan bias jaringan saraf.
  • Evaluasi model: Setelah model dilatih, model dievaluasi dengan data uji untuk mengukur akurasi, presisi, dan metrik lainnya.

Dengan menggunakan alur ini, kita dapat mengklasifikasikan data iris (atau data lainnya) menggunakan TensorFlow Neural Networks dengan tingkat akurasi yang lebih baik. Preprocessing data menggunakan StandardScaler membantu meningkatkan kinerja model dan membuatnya lebih stabil. Berikut ilustrasi pembuatannya.

AI and Neuro-Fuzzy Theory

Tahun 2014 saya pernah memperoleh kuliah Artificial Intelligence (AI) & Neuro-Fuzzy Theory. Ternyata materi ini sangat padat karena gabungan 2 mata kuliah yang saat ini saya ajar AI + Computational Intelligence (CI).

Neural networks atau jaringan saraf adalah sebuah konsep pemodelan matematis yang terinspirasi dari cara kerja otak manusia. Konsep ini telah ada sejak awal abad ke-20 dan telah mengalami banyak perkembangan sejak saat itu. Pada awalnya, konsep jaringan saraf digunakan untuk memodelkan bagaimana neuron-neuron dalam otak manusia berinteraksi satu sama lain. Namun, pada tahun 1940-an, para peneliti mulai menggunakan konsep ini untuk membangun mesin-mesin yang dapat melakukan tugas-tugas seperti mengenali pola pada gambar dan suara.

Pada tahun 1950-an, sebuah mesin jaringan saraf pertama kali dikembangkan oleh Frank Rosenblatt, yang dikenal sebagai “Perceptron”. Mesin ini dapat mengenali pola pada gambar dan mampu membedakan antara huruf “X” dan “O”. Namun, pada saat itu, mesin jaringan saraf masih sangat terbatas dan hanya mampu menangani masalah-masalah sederhana. Selain itu, kemampuan komputasi pada waktu itu juga masih terbatas dan membatasi perkembangan jaringan saraf. Meskipun begitu, konsep jaringan saraf tetap terus berkembang dan menjadi salah satu bidang yang paling menjanjikan dalam pengembangan kecerdasan buatan saat ini. Video berikut cuplikan kuliah tentang pentingnya AI dan NNs di awal ditemukan dengan praktik via Jupyter Notebook.

Asesor BKD Ibarat ‘Keran’ Air

Beberapa penasihat keuangan membahas keunggulan dari pengusaha yang memberikan pekerjaan ke banyak orang. Bukan hanya si pegawai, melainkan juga keluarga di rumah. Namun sejatinya yang pengusaha gaji tentu saja karena memberikan keuntungan pada perusahaan tempat mereka bekerja. Hal unik terjadi kepada asesor, terutama asesor BKD. Mengapa membandingkan dengan pengusaha?

Setelah mengecek, terkadang membaca berkas yang diunggah, setelah meng-‘klik’ tidak lama kemudian tunjangan serdos cair. Jika pengusaha walaupun ‘memberi’ tapi ‘menerima’ terlebih dahulu (kalau perusahaannya tidak merugi), asesor tidak ‘menerima’. Nah, di sini ada sisi unik seorang asesor (termasuk reviewer juga), tidak ‘memberi’ dan tidak ‘menerima’. Tidak rugi dong? Betul, kalau waktu dan tenaga tidak dihitung.

Terkadang ada ucapan terima kasih dalam berbagai bentuk, tapi kebanyakan hanya doa saja. Jadi ibarat kran air, hanya meneruskan rejeki ke tangan rekan-rekan lainnya. Sama halnya dengan reviewer, sudah biasa hanya berupa sertifikat ‘recognition’. Beberapa memberikan akses gratis SCOPUS, sebuah indexer ternama di dunia. Bahkan dari kampus saya S3 karena masih anggota reviewer, dapat mengakses SCOPUS dengan cuma-cuma. Yang terpenting dari reviewer jurnal adalah memperoleh update ilmu terkini (sudah tahu walau belum dipublish).

Diperlukan jenjang doktor atau lektor kepala untuk menjadi seorang Asesor BKD, dengan terlebih dahulu mengikuti ujian. Kebetulan karena COVID-19 waktu itu ujian secara ONLINE. Jadi, tertarik jadi asesor?

Masih Rekrutmen Tanpa Ijazah?

Beberapa waktu yang lalu banyak beredar di medsos informasi bahwa perusahaan raksasa seperti Apple, Google, dll merekrut karyawan tanpa perlu menunjukan ijazah. Berita tersebut sangat menohok dan terkesan mengerdilkan institusi pendidikan. Memang ini salah kampus juga yang tidak bisa mengikuti kemauan pasar, yaitu organisasi pemakai lulusan. Namun informasinya institusi sekelas Google membutuhkan bukti tertentu kepada calon karyawan yang mendaftar tanpa ijasah.

Terkadang memang, programmer tertentu tidak memiliki pendidikan formal. Karena bakat, ketekunan, dan keingintahuannya bisa belajar dengan cepat, baik otodidak maupun kursus kilat yang banyak tersedia. Youtube, milist, Github, atau sekedar Googling dengan cepat mampu memahami bahasa pemrograman tertentu. Apalagi saat ini aplikasi berbasis AI seperti ChatGPT mampu ‘mengajari’ lewat chatting apa saja, khususnya pemrograman. Silahkan lihat video berikut bagaimana menjalankan Web-based Python lewat ‘chatting’.

Artificial Intelligence (AI) merupakan salah satu bidang standar minimal kompetensi S1 (sarjana). Diharapkan peserta didik mampu menerapkannya. Untuk S2 dan S3 mampu mengembangkan bidang tersebut. Nah, jika organisasi ingin mendapatkan keunggulan kompetitif pada sistemnya, tidak ada jalan lain untuk memanfaatkan AI yang mulai menyusup ke segala lini.

Pendiri Google kabarnya ‘turun gunung’ mengingat ancaman AI mulai terasa. Bahkan dengan jumlah 1 juta pengguna yang oleh Netflix butuh 3.5 tahun ternyata ChatGPT hanya butuh 5 hari (link).

Jika masih diam saja, servis-servis lain Google seperti mail, Youtube bisa saja dikalahkan pemain baru dengan kemampuan AI yang terintegrasi Chat dan sejenisnya. Dengan chat yang teks saja sudah begitu heboh apalagi dalam bentuk gambar dan video. Untuk itu diperlukan periset-periset tangguh yang tentu saja tidak bisa lagi merekrut ‘tanpa ijasah’, mutlak diperlukan peneliti-peneliti yang tidak hanya jago praktis, melainkan juga teoritis dan analitis. Yuk, mulai oprek-oprek AI.

 

Pendidikan dan Artificial Intelligence (AI)

Waktu kuliah Theory of Computing, ada materi tentang Grammer. Salah satu tokohnya adalah Noam Chomsky, ilmuwan keturunan Yahudi. Memang bahasa pemrograman ternyata tetap bahasa, dengan tata cara penggunaan dalam bentuk syntax. Jika salah dalam penggunaannya, biasa ada error: ‘syntax error’. Sialnya mata kuliah itu saya dapat C .. hehe.

Nah, munculnya ChatGPT ternyata ditentang oleh Noam Chomsky (lihat link ini atau majalah fortune). Khususnya pada saat membuat komposisi kalimat yang disebut olehnya dengan istilah plagiarisme dengan teknologi tinggi.

Para gamers sepakat, seseorang yang menggunakan teknik tertentu agar bisa menang disebut melakukan cheating. Seorang siswa yang menulis dengan bantuan ChatGPT ibarah main catur dimana ketika melangkah dibantu oleh engine catur. Beberapa waktu lalu sempat heboh ‘dewa kipas’ yang oleh chess.com di-‘banned’ karena dicurigai menggunakan engine. Akhirnya diadakanlah live duel dengan master catur Irene Sukandar.

Dalam pendidikan dan pengajaran ada proses ‘berlatih’ dimana peserta didik harus melakukan suatu proses dalam menghasilkan karya/output. Tidak hanya menghasilkan output tertentu saja. Jadi, pendekatan berbasis output belum tentu bagus juga ya.

Artikel Ilmiah

Kebetulan saya menjadi editor sebuah jurnal (berikut link-nya – sedikit promosi). Karena menggunakan bahasa Inggris, banyak author memanfaatkan Google Translate. Perlu melakukan revisi menyesuaikan tata bahasa yang tepat. Ketika ChatGPT muncul, problem tata bahasa dapat teratasi, tetapi ada hal-hal tertentu yang tidak bisa di-akali dengan ChatGPT.

Gaya bahasa merupakan aspek yang perlu diperhatikan. Biasanya ada sedikit perbedaan antara style skripsi/tesis berbahasa Indonesia dengan bahasa Inggris. Misalnya kata ‘researchers’ yang artinya penulis.

Sehingga perlu memodifikasi istilah tersebut agar sesuai dengan style artikel ilmiah di jurnal (biasanya dengan kalimat pasif atau beberapa menggunakan aktif, misalnya: ” … we are expected to …”, tergantung style jurnal yang beberapa menghendaki kalimat pasif yang fokus ke objek bukan ke subjek.

Praktisi

Bagi praktisi, engineer/teknisi, dan pihak-pihak yang fokus ke aspek praktis, kemunculan ChatGPT sangat membantu. Ejaan yang salah (typo dan sejenisnya), tata bahasa yang tidak standar dapat diatasi. Praktisi memang tidak fokus ke bahasa sehingga mempercepat laporan/dokumentasi.

Kemunculan AI tidak bisa dihindari, apalagi terkait dengan keuntungan yang diperoleh perusahaan pengusungnya, sekarang tergantung bagaimana kita menyikapinya saja. Jika ingin menguji kemampuan siswa membuat komposisi tinggal awasi saja di kelas, jangan sampai buka HP/laptop. Riset tentang cek plagiarisme terhadap penulis yang menggunakan bantuan AI perlu dilakukan. Sementara, ini jawaban jujur dari ChatGPT:

 

Memahami Level S1, S2, dan S3

Jenjang pendidikan selepas SMA jauh lebih rumit. Banyak variasi yang ada, baik itu dari sisi tipenya apakah vokasi atau akademik, hingga levelnya: Diploma (D1,D2,D3, Sarjana Terapan), Sarjana (S1), S2 hingga Doktoral. Di Indonesia sendiri aturan hukumnya sudah jelas di mana letak/posisi jenjang pendidikan tersebut, yakni:

  • Peraturan Presiden (Perpres) Nomor 8 Tahun 2012 tentang Kerangka Kualifikasi Nasional Indonesia (KKNI), dan
  • Peraturan Menteri Pendidikan dan Kebudayaan (Permendikbud) Nomor 3 Tahun 2020 tentang Standar Nasional Pendidikan Tinggi (SNPT).

Tanggung jawab unit pengelola sangat berat, tidak boleh melanggar aturan tersebut. Beberapa kampus negeri, misalnya ITS bahkan mempublish masalah tersebut (lihat link berikut).

Sampai-sampai ditulis ‘bukan sekedar berdasarkan persepsi individu’. Sepertinya banyak dosen-dosen yang memberi beban yang tidak/kurang tepat ke mahasiswanya. Biasanya memaksa siswa S1 melakukan riset dengan beberapa research question dengan harapan ada novelty, padahal standar minimal KKNI Sarjana adalah cukup bisa mengaplikasikan IPTEKS, menguasai teori, dan seterusnya. Walaupun boleh saja melebihi standar minimum, asalkan tidak memaksa khawatir melanggar UU. Kampus sekelas ITS saja masih menggunakan standar minimal.

Eksperimen

Untuk mahasiswa informatika, banyak sekali bahan eksperimen karena bisa menggunakan laptop. Kalaupun server, bisa juga di-remote, tidak perlu datang ke lokasi. Bahan eksperimen sangat banyak, dengan modul-modul untuk memahami konsep atau metode. Biasanya masuk dalam kurikulum yang diajarkan dalam laboratorium. Beberapa bahasa pemrograman, misalnya Python menyediakan IDE yang praktis, yaitu Google Colab. Biasanya dipakai untuk proses training, atau menguji dan membandingkan metode-metode tertentu, oleh mahasiswa doktoral untuk menguji metode usulan atau memperbaiki/meng-improve metode yang ada. Dalam perkuliahan S1 biasanya untuk eksperimen dimana suatu metode mampu menyelesaikan masalah.

Jika mahasiswa S1 hanya fokus ke Google Colab, dikhawatirkan kurang memahami standar minimal (menerapkan, menguasai teori, dll) di mana di dunia kerja yang dibutuhkan adalah menerapkan, misalnya membuat web, android, instalasi server, network, memantau security, dan sejenisnya. Kalaupun mau mengikuti standar S2 pun harus mampu mengembangkan. Jangan sampai ingin mengikuti standar S2 tetapi tidak ada yang dikembangkan, hanya memakai, tetapi masih berupa eksperimen di Google Colab, seperti tugas Lab. Akibatnya level S1 bukan .. S2 juga bukan. Termasuk keharusan menghasilkan pengakuan nasional dan internasional lewat jurnal pun agak berat bagi mahasiswa S1, kecuali mungkin jurnal nasional yang membolehkan tidak ada novelty.

Implementasi

Google colab sejatinya sangat bermanfaat, misal kita akan membuat mesin penerjemah sendiri, kita coba dengan google colab dan ternyata berhasil jalan dengan baik. Nah selanjutnya tugas mahasiswa S1 ya mengimplementasikan mesin penerjemah itu dalam suatu aplikasi misalnya web, android, ios, dan sejenisnya. Tapi kan susah? Tidak juga, sekarang kan sumber info sudah banyak, berikut video bagaimana mengutak-atik agar suatu metode bisa diimplementasikan.

Khusus aplikasi web, video short berikut yang merupakan kelanjutan video sebelumya mungkin bisa menginspirasi Anda. Terima kasih.

Install Apache-2 dan PHP-MyAdmin di Ubuntu

Mahasiswa sebaiknya memahami Ubuntu, karena sebagian besar server menggunakan Ubuntu. Nah, untuk belajar, bisa juga dengan Ubuntu desktop karena fungsi-fungsi terminalnya mirip, namun lebih mudah utk newbie karena bisa baca pdf, transfer file dengan cara drag dan lain-lain.

Jalankan VMWare Workstation dan Ubuntu. Masuk ke terminal untuk menjalankan instruksi-instruksi yang dibutuhkan. Tekan simbol 9 titik di pojok kiri bawah, lalu cari Terminal >_.

A. INSTAL APACHE 2

Setelah terminal muncul di layar. Lakukan langkah-langkah berikut untuk instalasi Apache2:

1. Masuk ke root dengan mengetik:

sudo su

Masukan password root Ubuntu kta. Perhatikan simbol # yang menggantikan $ pertanda kita sudah masuk ke root.

2. Lakukan update dengan mengetik:

apt update

Tunggu beberapa saat hingga selesai.

3. Install Apache 2 dengan mengetik:

apt install apache2

Saat kita diminta konfirmasi apakah lanjut (karena akan mengambil memory harddisk), tekan y dilanjutkan dengan ENTER.

4. Selamat, Apache2 telah berhasil diinstall, pastikan dengan mengetik:

apache2 -version


B. SETING FIREWALL APACHE2

Agar webserver Apache dapat diakses dari luar, Firewall perlu diseting dengan langkah sebagai berikut:

1. Untuk mengetahui apa saja aplikasi yang aktif Firewall-nya ketik: ufw app list. Selanjutnya ijinkan Apache diakses dari luar dengan mengetik:

ufw allow apache2

Cek dengan mengetik: ufw status, dan pastikan Status: inactive.

2. Restart Apache2 dengan mengetik:

systemctl restart apache2

Untuk melihat status Apache2, ketik:

Systemctl status apache2

Pastikan Apache aktif dengan melihat tulisan ‘active (running)’.

NOTE: tiap selesai melihat status, untuk kembali ke prompt tekan Ctrl+C dilanjutkan menekan ENTER.


3. Berikutnya kita akan menguji apakah Apache2 yang telah kita instal dapat diakses dari device lain. Ketahui terlebih dahulu ip address-nya dengan mengetik:

ip a

Baca ip address-nya, misalnya untuk data berikut ip-nya: 192.168.72.128.


4. Selanjutnya buka device lain, misalnya Windows yang menjadi HOST VMWare. Buka browser dan ketik alamat ip-nya, misal 192.168.72.128. Pastikan muncul tampilan sebagai berikut.


Jika tampil dan terlihat tulisan ‘It works’, selamat kita berhasil menginstal Apache2. Jika tidak muncul pastikan kembali alamat ip addressnya apakah sudah sesuai.

C. INSTALL PHP

1. Web server yang sudah kita instal dan seting, perlu disiapkan bahasa pemrogramannya, antara lain php. Ketik terlebih dahulu untuk update:

apt update

2. Instal php dengan mengetik:

apt install php

Tekan y ketika diminta konfirmasi. Tunggu sesaat hingga proses instalasi selesai. Jika sudah cek dengan mengetik:

php -v

Pastikan versi php muncul di terminal.

3. Berikutnya menginstal library dari paket php dengan mengetik:

apt install libapache2-mod-php

Kembali restart apache2

systemctl restart apache2

D. INSTALL MYSQL

1. Seperti biasa, update:

apt update

2. Instal MySQL dengan mengetik:

apt install mysql-server

Tekan y ketika kita diminta konfirmasi karena dibutuhkan 200 Mb untuk MySQL Server yang akan dipasang.

3. Cek status MySQL dengan mengetik:

systemctl status mysql

E. INSTALL PHPMYADMIN

1. Update terlebih dahulu:

apt update

2. Instal Phpmyadmin dengan mengetik:

apt install phpmyadmin php-mbstring php-zip php-gd php-json php-curl

3. Gunakan SPASI dan TAB untuk menceklis [ ] apache2 dan menekan <Ok>.


  1. Tnggu beberapa saat hingga muncul Package configuration. Pilih <Yes>.
  2. Ketik password untuk pypmyadmin, misal: P4ssword!

F. MENGAMANKAN MYSQL

1. Set dulu passwore ‘root’@’localhost’. Ketik mysql untuk masuk ke MySQL Gunakan kode berikut untuk memberi password root: P4ssword!

ALTER USER ‘root’@’localhost’ IDENTIFIED WITH mysql_native_password BY ‘P4ssword!’;

2. Keluar dari MySQL dengan mengetik: exit. Untuk membuat MySQL secure, ketik:

mysql_secure_installation

3. Tekan y ketika diminta konfirmasi. Lalu pilih level password policy yang diinginkan, misalnya STRONG.

4. Jika ingin mengganti password, tekan y.

5. Tekan y hingga selesai (muncul pesan All Done).

6. Restart MySQL dengan mengetik: systemctl restart mysql dilanjutkan dengan mengecek status dengan mengetik: systemctl status mysql. Pastikan status: Active (Running).

7. Akses phpmyadmin dengan browser dari device lain. Pastikan berjalan dengan baik.


Berikut ini beberapa catatan ketika ada kendala instalasi Phpmyadmin.

1. Jika terkendala dengan instalasi, set dahulu policy ke low, masuk ke MySQL

mysql -u root -p

2. masukan password, misal di sini: P4ssword! Terkadang instalasi bermasalah karena password yang kurang ‘strong’. Turunkan security menjadi LOW dahulu:

SET GLOBAL validate_password.policy = 0;

3. Uninstall komponen validasi password:

UNINSTALL COMPONENT ‘file://component_validate_password’;

4. Setelah instal Phpmyadmin lanjutkan dengan instal validasi:

INSTALL COMPONENT ‘file://component_validate_password’;

5. Set validasi password menjadi STRONG:

SET GLOBAL validate_password.policy = STRONG;

6. Cek sekurity:

SHOW VARIABLES LIKE ‘validate_password%’;

7. Pastikan sekurity STRONG.