Membuat Objek dengan PHP

Biasanya materi pemrograman berorientasi objek (PBO) menggunakan Java. Namun saat ini sebagian besar bahasa pemrograman memiliki kemampuan membuat program berorientasi objek, salah satunya adalah PHP. Walaupun tren bahasa ini menurun di dunia, kalah dengan Python, tetapi di Indonesia masih banyak digunakan.

Untuk basis data, penggunaan basis data khusus Objek masih sedikit yang berminat mengingat basis data relasional sudah digunakan sejak lama. Namun dapat diatasi dengan penggunaan konsep Object Relational Data Base Management System (ORDBMS). Kalau basis data objek menyimpan objek mobil misalnya, ORDBMS menyimpan mobil dalam bentuk roda, mesin, sasis dan elemen lainnya.

Class

Salah satu syarat wajib PBO adalah adanya class. Fungsinya membuat sebuah objek sejenis sebagai templatenya, berisi atribut dan method atau operation. Berikut ini contoh diagram kelas untuk kelas barang.

Tiap class juga memiliki sebuah method yang bernama constructor yang fungsinya membangkitkan sebuah objek. Berikut ini class Barang dalam bahasa PHP. Note: karena bahasa PHP, jangan lupa mengawali dengan tag: <?php

Potongan kode di atas menunjukan fungsi constructor yang menginisiasi database relational. Di bagian bawahnya ada method insert yang berfungsi memasukan data barang, di bawahnya update dan seterusnya, sering disebut dengan istilah Create, Read, Update, dan Delete (CRUD). Sebelumnya siapkan saja database MySql.

Objek

Jika kelas yang diibaratkan template sudah ada, sebuah objek dapat dibentuk. Jadi prinsipnya ketika ingin mengakses CRUD, aplikasi tidak langsung terhubung ke database, melainkan membentuk objek terlebih dahulu.

Pertama-tama impor kelas yang dibutuhkan dengan include ‘Barang.php’; yang sesuaikan dengan letak/path-nya. Sebaiknya dibuatkan dalam satu folder khusus, misalnya classes. Perhatikan bagaimana membuat sebuah objek barang. Standar-nya nama objek diawali huruf kecil, sementara nama kelas huruf besar. Di sini $ merupakan standar bahasa PHP sebagai variabel.

$barang = new Barang();

Ketika sudah terbentuk objek dari kelasnya (class Barang) maka kita dapat mengakses method yang dimiliki misalnya read, di sini contohnya membaca id_barang=1, yang jika dijalankan aplikasinya tampak seperti gambar di bawah. Sekian, mudah-mudahan tertarik dengan sistem berorientasi objek.

Systematic Literature Review (SLR) for Dummy

Rekan yang sedang study lanjut sudah pasti mengenal Systematic Literature Review (SLR) karena memang diwajibkan. Sementara rekan dosen lainnya yang biasanya fokus ke ngajar sebagian besar tidak cukup waktu untuk menjalankan aktivitas ini saat dituntut riset demi cairnya tunjangan BKD/LKD. Nah, manfaat kata ‘systematic’ adalah untuk mempermudah melakukan studi pustaka. Postingan ini sedikit sharing tentang trik menggunakan scopus untuk SLR.

Hal yang utama untuk mencari paper yang relevan adalah kata kunci yang tepat untuk mensortir naskah artikel yang beredar. Misalnya saya butuh artikel tentang spectral feature analysis dan NDVI. Walaupun ada pilihan advanced search, untuk gampangnya langsung searching seperti Google, nanti baru dilanjutkan dengan secara bertahap mensortir.

Kalau langsung digunakan jumlahnya cukup banyak, yaitu 594 dokumen. Karena syarat jurnal kebanyakan riset 5 tahun terakhir, ditambah proses publikasi misalnya 1 atau 2 tahun (tergantung nasib), kita ambil rentang 2020 sampai sekarang saja. Makin baru, paper makin sulit dicari karena scihub biasanya paper beberapa tahun yang lalu saja. Jika sudah cukup, langsung saja mensortir. Bisa dari yang terkini, atau berdasarkan sitasi tertinggi.

Klik saja Sort on pilih Cited by (highest) agar urut berdasarkan sitasi tertinggi pada rentang tahun tersebut. Dari judul biasanya terlihat apakah topik sesuai dengan riset yang dijalankan, jika ragu-ragu bisa klik View abstract untuk melihat isinya. Tampak yang disorot kuning merupakan kata kunci yang digunakan di searching tadi.

Nah, tunjukan kemampuan/skill reading Anda. Tapi jika pusing, kelamaan buka kamus, tinggal pakai bantuan saja yang saat ini sedang tren: ChatGPT. Ketik ‘apa metode dan hasil artikel ini:’ dilanjutkan dengan paste dari abstrak. Bisa juga dengan kata lain, misalnya ‘artikel ini membahas apa:’ dan seterusnya.

Langkah terakhir adalah mencari naskah lengkapnya. Walaupun bisa juga bertanya kelemahan artikel, tapi masih prediksi saja. Perlu membaca hasil dan kesimpulan untuk mengisi tabel, misalnya seperti ini (sesuaikan dengan kebutuhan atau permintaan promotor).

No

Author

Metode

Hasil

Kelemahan

         

Jika ada rekan yang tidak punya scopus, bisa diprint pdf. Sebaiknya disertai abstrak agar cepat menentukan apakah relevan atau tidak. Nah, pada tabel di atas, mengisi author sebaiknya menggunakan Mendeley dengan terlebih dahulu mengunduh sitasinya seperti berikut.

Nah, file bib yang diunduh tinggal di drag ke mendeley.

Oiya, buat satu folder khusus agar tidak berantakan di Mendeley kita. Sekian, semoga bisa sedikit mencerahkan.

Aplikasi Quillbot Untuk Parafrase Gratis

Saat ini mahasiswa yang membuat tugas akhir/skripsi sudah diwajibkan untuk cek plagiarisme, misalnya dengan Turnitin atau sejenisnya. Terkadang terjadi kemiripan, biasanya antara laporan akhir dengan artikel ilmiah yang akan dipublikasi di jurnal. Nah, untuk mengatasi hal tersebut, mahasiswa diharuskan melakukan parafrase tulisan yang mirip tersebut. Namun, jika terkendala dengan waktu dan tenaga yang sudah habis bolak-balik revisi saat bimbingan, ada aplikasi yang membantu, yaitu quillbot (https://quillbot.com/). Ok, postingan ini akan kita uji coba dengan bahasa Indonesia, mengingat kebanyakan mhs menggunakan bahasa Indonesia untuk tugas akhir/skripsinya. Kalau sudah berbahasa Inggris, tinggal langsung pakai saja.

Kita ambil contoh tulisan saya di pos yang lalu tentang interpolasi, curve fitting, proyeksi dan prediksi.

Kita coba cek plagiarisme lewat situs gratisan ini (Smallseotools). Copas dan klik cek plagiarisme, dan hasilnya tentu saja 100% nyontek.

Selanjutnya kita masuk ke aplikasi Quillbot. Copas lagi dan klik Rephrase dan lihat, di sebelah kanan sudah dibuatkan prafrase-nya, hanya saja dalam bahasa Inggris. Tinggal translate saja dengann Google Translate atau ChatGPT.

Kita coba lagi dengan Smallseotools. Setelah saya translate dengan ChatGPT tampak hasilnya seperti di bawah ini. Wow .. 0% plagiarisme. Bermanfaat bukan untuk mahasiswa yang sudah pontang-panting membantu orang tua untuk menyelesaikan studi-nya. Sekian, semoga sedikit membantu.

Untuk jelasnya lihat video berikut:

Eling lan Waspada

Saat tulisan ini dibuat, terjadi beberapa hal yang menghebohkan, misalnya kasus Sambo, Teddy, dan Rafael yang memiliki efek lanjutan. Pencucian uang konon menyebar ke beberapa orang, bahkan terindikasi ke artis ternama. Begitu juga kejadian Indonesia yang tidak jadi tuan rumah piala dunia U-20 karena masalah dengan penolakan Israel. Tulisan sederhana kali ini hanya sekedar mengingatkan agar berhati-hati di beberapa waktu ke depan.

Ketika jalan-jalan di Thailand waktu kuliah dulu, tampak beberapa rumah di depannya ada kolam ikan. Sempat bertanya dalam hati, kenapa tidak ada yang ambil ya? Mungkin kalau di Indonesia sudah ‘bablas angine ikannya”. Ternyata mereka percaya dengan karma, karena mayorias penduduknya Budha. Walau sudah minta ampun, tobat, dan sejenisnya, pasti akan menerima balasan. Bagi mereka tidak ada ritual yang membuat pengampunan instan, seperti terhapus dosanya selama setahun misalnya.

Jika ada kejadian yg dahulu baik-baik saja, tertutup rapat, dan sekarang sepertinya terbuka, berarti ada kekuatan tertentu yang bekerja, yang entah apa itu. Bayangkan saja ada statemen-statemen dari tokoh yang jika tidak ada korupsi di departemen x maka tiap kepala rakyat mendapat 20 juta. Bayangkan untuk seluruh departemen (lihat link ini). Jika perbuatan jahat langsung terbalas atau terbuka, pasti perbuatan baik pun demikian. Tentu saja terlepas dari itu, hidup bukan seperti dagang, berbuat x dapat 2x dan seterusnya. Berbuat baik ya berbuat baik, terlepas dapat balasan tertentu yang jelas jika di hati terasa nyaman, lanjutkanlah.

Berbagi informasi, menghibur orang, entah itu lewat blog, youtube, dan sejenisnya, jika terasa nyaman di hati, jalankan saja. Kalau fokus ke uang, endorse, adsens, takutnya malah bikin konten, tulisan, dan lain-lain yang heboh tapi meresahkan atau tidak mendidik. Walaupun memang ada yang menjadikan profesi (lihat link youtuber ternama ini) ya tidak apa-apa tapi tetap waspada karena ‘balasan’ pasti tiba. Tetap berkarya dan membuat orang dan semua makhluk berbahagia.

Mendeteksi Naskah Apakah Dibuat dengan ChatGPT

Banyak kekhawatiran dari para pengajar karena siswa menggunakan ChatGPT untuk membuat karya tulis. Bagaimana tidak, akurasi penulisan ChatGPT sangat baik dan konsisten. Bahkan beberapa alat cek plagiarisme tidak menemukan adanya plagiarisme. Banyak tools yang membantu mengecek apakah seseorang menggunakan ChatGPT ketika menulis, namun di sini akan kita bahas bagaimana menggunakan ChatGPT untuk mengetahui apakah suatu tulisan meminta bantuan ChatGPT.

Misal saya bertanya ke ChatGPT untuk membuatkan dua paragraf tentang data mining. Hasilnya akan tampak dan cukup baik.

Bagaimana cara mengeceknya? Mudah saja, kopi saja tulisan itu dan tanya ke ChatGPT: “apakah ini tulisan Anda: <paste>. Dan ternyata ChatGPT menjawan “Ya, itu benar” dan mengaku telah menulisnya. Siap-siap Anda dipanggil kepala sekolah.

Sebagai contoh kita uji dengan tulisan buatan sendiri, atau paragraf pertama di pos ini saja, lalu tanya apakah tulisan tersebut milik ChatGPT? Dan beliau (eh .. bukan manusia ya) menjawab: “No, that is not my writing”. Alhamdulillah, kalau kita membuat tulisan sendiri, aman dari plagiarisme berbasis AI.

Apakah ketika ditanya lagi ChatGPT konsisten? Repot juga kalo tulisan kita direkam dia dan diaku jadi tulisannya. Coba tanya lagi tulisan hasil ketikan sendiri tadi (kopi saja pertanyaan sebelumnya).

Ternyata jawabannya konsisten: “Tidak, tulisan tersebut bukanlah tulisan saya” (kata maaf, salah menjawab mungkin karena sebelumnya menggunakan bahasa Inggris). Lihat, kita bisa mengetahui apakah suatu tulisan minta bantuan ChatGPT atau tidak. Selain cara tersebut, info dari ChatGPT sendiri ketika ditanya: “bagaimana cara mendeteksi apakah suatu tulisan dibuat dengan bantuan ChatGPT?”. Ada 3 cara mendeteksinya:

  • Akurasi tinggi yang konsisten (mirip Chess.com mendeteksi pemain pakai engine atau tidak)
  • Gaya bahasa yang berbeda dengan gayanya (tiap orang memiliki gaya bahasa sendiri).
  • Plagiarism Checker

Sekian, semoga kita terhindar dari godaan minta dibikinin ChatGPT.

Tag Cloud dengan HTML

Tag cloud atau awan tag adalah representasi visual dari kata-kata kunci atau tag yang paling umum digunakan dalam suatu dokumen atau set dokumen. Tag cloud biasanya terdiri dari sekelompok kata-kata yang ditampilkan dalam ukuran yang berbeda-beda, dengan ukuran yang lebih besar menunjukkan bahwa kata-kata tersebut lebih sering muncul dalam dokumen atau set dokumen yang dianalisis. Tag cloud digunakan untuk membantu pengguna memperoleh pemahaman yang lebih cepat tentang topik atau konten dokumen yang dianalisis.

Berikut ini kita coba membuat tagcloud dari scrapping www.newsapi.org yang merupakan platform penyedia layanan berita berbasis web (lihat pos terdahulu). Layanan ini menyediakan akses ke ribuan artikel berita dari berbagai sumber terpercaya di seluruh dunia. NewsAPI.org adalah salah satu layanan terbaik untuk pengembang dan pembuat aplikasi yang ingin mengintegrasikan berita ke dalam aplikasi mereka. Berikut ini adalah contoh akses API:

https://newsapi.org/v2/top-headlines?country=id&apiKey=APIKEY

Untuk mendapatkan API Key dari NewsAPI.org, ikuti langkah-langkah berikut:

  • Kunjungi situs web NewsAPI.org di https://newsapi.org/.
  • Klik tombol “Get API Key” di sudut kanan atas halaman web.
  • Isi formulir pendaftaran yang tersedia dengan alamat email Anda dan kata sandi yang aman, kemudian klik “Get Started”.
  • Verifikasi alamat email Anda dengan mengklik tautan yang dikirimkan ke email Anda.
  • Login ke akun NewsAPI.org yang baru saja Anda buat.
  • Setelah login, klik “Dashboard” untuk melihat API Key Anda.
  • Salin API Key yang ditampilkan dan gunakan dalam permintaan API Anda.

Perlu diingat bahwa NewsAPI.org menyediakan berbagai paket layanan dengan harga yang berbeda-beda. Paket gratis memiliki batasan permintaan API per hari, sedangkan pada paket berbayar, batasan permintaan dan fitur yang lebih banyak tersedia. Pastikan untuk memilih paket yang sesuai dengan kebutuhan Anda. Berikut ini terapannya untuk membuat Tagcloud.

<!DOCTYPE html>
<html>
<head>
<title>Tag Cloud dari Scraping NewsAPI</title>
</head>
<body>
<h1>Tag Cloud dari Scraping NewsAPI</h1>
<?php
$apiUrl = “https://newsapi.org/v2/top-headlines?country=id&apiKey=API KEY“; // Ubah kode “id” menjadi kode negara yang ingin Anda scrap beritanya
$response = file_get_contents($apiUrl); // Ambil data dari NewsAPI dalam format JSON
$newsData = json_decode($response); // Ubah data JSON menjadi objek PHP
$tags = array(); // Buat array kosong untuk menyimpan tag yang diambil dari berita
foreach ($newsData->articles as $article) { // Loop setiap artikel dalam objek berita
$title = strtolower($article->title); // Ambil judul artikel dan ubah ke huruf kecil
$words = explode(” “, $title); // Pisahkan kata-kata dalam judul artikel ke dalam array
foreach ($words as $word) { // Loop setiap kata dalam array
if (strlen($word) > 3) { // Jika kata lebih panjang dari 3 karakter
array_push($tags, $word); // Tambahkan kata ke dalam array tag
}
}
}
$tagCounts = array_count_values($tags); // Hitung frekuensi kemunculan setiap tag
arsort($tagCounts); // Urutkan tag berdasarkan frekuensi kemunculan dari yang paling banyak
foreach ($tagCounts as $tag => $count) { // Loop setiap tag dan frekuensi kemunculannya
$tagSize = 15 + ($count * 4); // Tentukan ukuran tag berdasarkan frekuensi kemunculan
echo “<a href=’#’ style=’font-size: ” . $tagSize . “px;’>$tag</a> “; // Tampilkan tag dalam elemen anchor dengan ukuran yang ditentukan
}
?>
</body>
</html>
Tampilannya kira-kira seperti ini. Tampak Piala Dunia Indonesia U-20 memiliki frekuensi yang tertinggi di antara kata-kata lainnya. Selamat mencoba.

Cara Menjalankan Google Earth Engine

Google Earth Engine (GEE) adalah platform komputasi awan gratis yang disediakan oleh Google untuk mengakses, memanipulasi, dan menganalisis data geospasial dari berbagai sumber, termasuk citra satelit, peta, dan data lainnya. Platform ini dikembangkan oleh Google untuk membantu para peneliti, pengamat, dan praktisi di berbagai bidang ilmu, seperti lingkungan, penginderaan jauh, konservasi, pertanian, dan perubahan iklim, untuk melakukan analisis spasial yang cepat dan akurat menggunakan data yang besar dan kompleks.

Buka halaman Google Earth Engine di https://earthengine.google.com/. Klik tombol “Sign In” di sudut kanan atas halaman. Masukkan akun Google Anda untuk masuk ke Google Earth Engine. Setelah masuk, Anda akan diarahkan ke halaman beranda Google Earth Engine. Di sini, Anda dapat menemukan berbagai jenis data dan alat untuk memulai analisis geospasial Anda. GEE memungkinkan pengguna untuk mengakses data geospasial dalam jumlah besar dari berbagai sumber seperti Landsat, Sentinel, MODIS, dan banyak lagi, dan menyediakan berbagai alat analisis seperti penginderaan jauh, statistik, pemrosesan citra, dan pemodelan spasial.

Ikuti saja yang direkomendasikan yaitu dengan cloud project. Pilih saja yang without a cloud project. Isi data yang harus diisi, pastikan berhasil.

Sebagai langkah awal kode berikut coba Anda masukan di code editor yang dapat diakses di menu Platform.

// Mengambil citra Landsat 8
var image = ee.Image(‘LANDSAT/LC08/C01/T1_TOA/LC08_044034_20140318’);
// Menghitung indeks NDVI
var ndvi = image.normalizedDifference([‘B5’, ‘B4’]);
// Menambahkan layer NDVI ke peta
Map.addLayer(ndvi, {min: 0, max: 1, palette: [‘blue’, ‘white’, ‘green’]}, ‘NDVI’);
// Visualisasi citra Landsat 8
Map.addLayer(image, {bands: [‘B4’, ‘B3’, ‘B2’], max: 0.3}, ‘Landsat 8’);
Pastikan hasilnya muncul seperti gambar berikut. Sekian, selamat mencoba.

Kode tersebut terdiri dari beberapa bagian:

Variabel image digunakan untuk memuat citra Landsat 8 pada tanggal tertentu dengan memanggil fungsi ee.Image().

Fungsi addNDVI() digunakan untuk menghitung NDVI pada citra yang dimuat. NDVI dihitung dengan menggunakan fungsi normalizedDifference() yang membagi selisih antara band inframerah dan band merah dengan jumlah band inframerah dan band merah. Hasil perhitungan NDVI kemudian disimpan ke dalam variabel ndvi.

Fungsi visualizeRGB() digunakan untuk memvisualisasikan citra Landsat 8 dengan menampilkan komposisi warna merah, hijau, dan biru (RGB) dengan menggunakan fungsi image.visualize(). Citra Landsat 8 yang sudah dimuat ke dalam variabel image akan diolah dengan menggunakan fungsi visualizeRGB() dan ditampilkan pada layer di peta dengan menggunakan fungsi Map.addLayer().

Pastikan tampil output berupa citra RGB di lokasi tempat image berada. Sekian, selamat mencoba.

Cara Menggunakan CANVA Untuk Disain Roadmap

Canva adalah sebuah situs web yang memungkinkan penggunanya untuk membuat desain grafis dengan mudah tanpa harus memiliki keterampilan desain yang tinggi. Situs ini menyediakan berbagai macam template desain, termasuk desain presentasi, poster, undangan, kartu nama, brosur, dan banyak lagi. Selain itu, Canva juga menyediakan berbagai macam elemen desain seperti gambar, ikon, font, dan warna yang dapat digunakan untuk membuat desain yang lebih menarik. Canva tersedia secara gratis dengan beberapa fitur terbatas, namun untuk fitur lengkap dan lebih banyak template, pengguna bisa berlangganan dengan biaya bulanan atau tahunan. Canva sangat berguna bagi siapa saja yang ingin membuat desain grafis dengan cepat dan mudah tanpa harus memiliki keterampilan desain yang tinggi.

Buat akun atau masuk jika sudah memiliki akun. Pilih template roadmap: Pada halaman utama Canva, ketik “roadmap” di kolom pencarian. Akan muncul beberapa pilihan template roadmap yang dapat dipilih. Pilih salah satu template yang sesuai dengan kebutuhan.

Lanjutkan langkah-langkah berikut setelah memilih template:

  • Setelah memilih template roadmap, ubah desainnya agar sesuai dengan kebutuhan. Tekan tombol “Edit” untuk membuka template di editor Canva. Kemudian, pilih elemen yang ingin diubah seperti font, warna, dan gambar.
  • Tambahkan informasi: Tambahkan informasi yang diperlukan ke dalam roadmap, seperti milestone, tanggal, dan deskripsi. Gunakan fitur Canva seperti teks, gambar, dan ikon untuk memperjelas informasi yang ditampilkan.
  • Simpan dan bagikan: Setelah selesai mengedit roadmap, simpan desainnya dengan cara menekan tombol “Download” atau “Publish”. Jika ingin membagikan desain ke orang lain, klik tombol “Share” untuk membagikan tautan atau mengunduh file yang sudah selesai.
  • Revisi dan update: Revisi dan update roadmap sesuai dengan kebutuhan saat diperlukan. Gunakan Canva untuk membuat perubahan yang dibutuhkan dengan cepat dan mudah.

Beberapa elemen dapat ditambahkan (ingat pilih yang tidak pro yang tidak ada simbol mahkota). Setelah itu download dalam format jpg, png, atau pdf. Oiya, kalau ada yg pro kita tidak bisa mengunduh, ganti saja dengan elemen yang gratis.

Berikut hasil unduhannya, bagus bukan? Praktis, gratis, dan cepat. Sekian, semoga bermanfaat. Sekian, semoga bermanfaat.

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.

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.