Desktop-Based Python Application

Aplikasi komputer dapat berjalan lewat desktop, web, maupun mobile. Masing-masing memiliki kelemahan dan kelebihan. Postingan kali ini membahas bagaimana membuat aplikasi desktop pada Python.

Computer applications can run on desktop, web, or mobile platforms. Each platform has its own strengths and weaknesses. In this post, we will discuss how to create a desktop application using Python.

Pada dasarnya Python seperti Java, PHP, dan lain-lain merupakan interpreter, dimana untuk menjalankan suatu aplikasi dengan terlebih dahulu menginstal sejenis runtime. Untuk Python tentu saja menginstal Python terlebih dahulu, baik versi 2 maupun 3. Dan ketika menjalankan lewat instruksi di terminal:

Basically, Python, like Java, PHP, and others, is an interpreter where running an application requires installing a runtime of a similar kind. For Python, you need to install Python itself first, either version 2 or 3. When running it through instructions in the terminal:

python <nama_aplikasi>.py

Walaupun itu merupakan jenis desktop, tetapi masih memerlukan instalasi Python di dalamnya. Nah, bagaimana membuat aplikasi desktop yang berjalan tanpa requirements yang harus dipasang terlebih dahulu? Caranya adalah jika dengan platform Windows lewat executable program yang berekstensi .exe atau .com. Bagaimana caranya? Seperti postingan yang lalu, dengan library pyinstaller pada Python. Jika pada postingan tersebut kita hanya mengkonversi menjadi exe saja, kali ini kita coba membuat aplikasi berbasis GUI.

Even though it’s a desktop application, it still requires installing Python within it. Now, how can we create a desktop application that runs without any pre-installation requirements? The approach is to use an executable program with the .exe or .com extension, specifically for the Windows platform. How can we do that? Just like the previous post, we can use the PyInstaller library in Python. While in the previous post, we only converted it into an exe file, this time we’ll try to create a GUI-based application.

A. Kivy

Salah satu library pada Python untuk membuat GUI yang baik adalah Kivy. Library ini walaupun dapat dikonversi menjadi mobile lewat library buldozer ternyata bermasalah ketika menjadikannya executable (.exe). Hal ini karena kompleksitasnya, ditambah lagi sejatinya memang untuk linux.

One of the libraries in Python for creating good GUIs is Kivy. Although this library can be converted for mobile use through the Buldozer library, it turns out to have issues when making it executable (.exe). This is due to its complexity, compounded by the fact that it is primarily designed for Linux.

B. TKinter

Nah, library lain yang dapat digunakan adalah TKinter. Library ini dapat membuat GUI untuk interface aplikasi Python. Walaupun kurang lengkap dibanding Kivy yang saat ini kian terkenal, TKinter memiliki kemampuan untuk dikonversi menjadi executable program.

Well, another library that can be used is Tkinter. This library allows you to create GUIs for Python applications. Although it may be less feature-rich compared to the increasingly popular Kivy, Tkinter has the ability to be converted into an executable program.

C. Pyinstaller

Ini merupakan library yang cukup baik untuk mengkonversi .py menjadi .exe. Saingan yang lain saya coba banyak gagalnya, misalnya py2exe, dan kawan-kawannya. Untuk menggunakannya instal terlebih dahulu:

This is a quite good library for converting .py files to .exe. Other competitors that I’ve tried had many failures, such as py2exe and its counterparts. To use it, you need to install it first:

pip install pyinstaller

Jika sudah siapkan aplikasi dengan TKinter, misalnya menjumlahkan secara sederhana dua angka. Untuk gampangnya silahkan tanya saja ChatGPT untuk samplenya.

If you have already prepared the application with Tkinter, for example, a simple addition of two numbers. To make it easier, feel free to ask ChatGPT for a sample.

Berikutnya kita tinggal mengetikan pada terminal di folder yang sama dengan kode python. Misal kode Python di atas diberi nama tesgui.py.

Next, you just need to type the following command in the terminal, assuming that the Python code is saved with the name “tesgui.py” in the same folder:

pyinstaller –onefile -w gui2.py

Tergantung besar atau kecilnya file py, pyinstaller akan mengkonversi menjadi exe. Hasilnya adalah sebuah file tesgui.exe yang terletak di folder dist.

The conversion of the .py file to an .exe file by PyInstaller depends on the size of the Python file. The result will be a tesgui.exe file located in the “dist” folder.

Jalankan saja file hasil kompilasi tersebut, tinggal dobel klik saja. Hasilnya akan muncul seperti berikut ini. Sederhana bukan? Silahkan coba model yang lebih kompleks, untuk tensorflow sepertinya perlu perlakuan khusus, karena sempat saya coba tidak muncul hasil eksekusi-nya, hanya GUI saja.

Just run the compiled file by double-clicking on it. The result will appear as follows. Simple, isn’t it? Feel free to try more complex models. For TensorFlow, it may require special treatment because when I tried it, the execution results didn’t appear, only the GUI.

Iklan

Editing with ChatGPT

Salah satu kelemahan yang dimiliki kebanyakan peneliti berbasis pembuatan sistem, aplikasi, dan sejenisnya adalah membuat laporan yang lengkap. Hal ini dapat dimaklumi karena mereka sudah menghabiskan banyak waktu dalam merakit/mendevelop sistem. Biasanya ada asisten yang mensuport dalam pembuatan laporan, tapi jika tidak ada, salah satu andalan adalah ChatGPT. Alat berbasis AI ini tentu saja tidak boleh langsung digunakan untuk menulis otomatis, karena beberapa plagiarism check sudah bisa mendeteksinya. Postingan ini sedikit memberi informasi manfaat apa saja.

One of the common challenges faced by researchers involved in system development, application creation, and similar fields is the task of producing comprehensive reports. This can be understood considering the significant amount of time they have invested in building and developing the systems. While there are usually assistants available to support in report writing, if they are not accessible, one reliable option is to rely on ChatGPT. However, it is important to note that this AI-based tool should not be directly used for automatic writing, as plagiarism checks are capable of detecting such attempts. This post provides some information on the benefits it offers instead.

A. Translate

Saya sudah lama mengenal translate Google, bahkan di awal-awal, sudah pernah mencoba dan sempat heran ketika mentranslate “my name is jack” menjadi “nama saya dongkrak”. Namun saat ini sudah cukup baik, hanya saja terkadang istilah yang digunakan kurang tepat. Untuk ChatGPT tinggal menambahkan “translate ke inggris:<paste kalimat>” saja. Untuk translate berikutnyat terkadang tidak perlu menulis translate sudah langsung mentranslate.

I have known Google Translate for a long time, even in the early days, I have tried it and was surprised when it translated “my name is jack” to “nama saya dongkrak”. However, it has improved now, although sometimes the terms used are not quite accurate. For ChatGPT, you just need to add “translate to English: <paste sentence>”. Sometimes, for subsequent translations, you don’t need to write “translate” as it automatically translates the text.

Selain translate, bisa juga dengan menulis “revise: <paragraf>” untuk mengecek salah ketik, tenses, dan sejenisnya.

In addition to translation, you can also use “revise: <paragraph>” to check for typos, tenses, and similar errors.

B. Inserting Text

Selain malas menulis, terkadang software developer hanya menyajikan tabel, gambar, dan sejenisnya tanpa menambahkan informasi yang terkadang perlu diketahui oleh pembaca. Misalnya rentetan tabel atau gambar seperti berikut. Biasanya jurnal tidak menyukai style ini.

Apart from being lazy to write, sometimes software developers only present tables, images, and the like without adding information that readers may need to know. For example, a series of tables or images like the following. Usually, journals do not prefer this style.

Blok saja satu tabel di atas, lalu tulisakan “Buat satu kalimat tentang ini: <paste>” pada ChatGPT. Hasilnya adalah sedikit informasi tentang tabel yang dimaksud.

Block only one table above, then write “Create a sentence about this: <paste>” on ChatGPT. The result is a brief information about the mentioned table.

Jika terlalu ‘norak’, bisa dengan mengganti “Table 4, referred to as …” menjadi nama tabel saja. Sehingga dihasilkan bentuk seperti ini.

If it’s too ‘tacky’, you can change “Table 4, referred to as …” to just table name. So it will result in a format like this.

Masih banyak fasilitas-fasilitas lain yang diberikan ChatGPT. Tentu saja, namanya tool, sebaiknya hanya sebagai alat bantu saja. Terima kasih.

There are still many other features provided by ChatGPT. Of course, as its name suggests, it’s best to use it only as a tool. Thank you.

Buldozer for developing Python applications on Android

Mobile applications saat ini merupakan aplikasi yang paling banyak dipakai. Sebagai contoh, hampir jarang pengguna Facebook dengan browser. Mulai dari taxi online, hingga pembarayan menggunakan handphone. Kemudahan karena bentuk yang mudah dibawa menuntuk aplikasi-aplikasi (desktop dan website) disiapkan juga versi mobile-nya. Postingan kali ini hanya mengilustrasikan bagaimana mengkonversi aplikasi berbasis python yang kita buat menjadi aplikasi mobile, salah satu yang terkenal adalah berbasis Android.

Mobile applications are currently the most widely used applications. For example, it is rare to find Facebook users accessing it through a browser. From online taxis to mobile payments, smartphones have made it convenient to access various applications. As a result, many applications (both desktop and website-based) have prepared mobile versions. This post will illustrate how to convert a Python-based application into a mobile application, specifically focusing on the popular Android platform.

A. Kivy

Salah satu library python yang banyak digunakan untuk membuat aplikasi Python agar bisa berjalan di mobile app adalah Kivy, lihat post terdahulu untuk lengkapnya. Masih menggunakan aplikasi pada post sebelumnya sebagai ilustrasi. Berikut tampilan GUI dengan Kivy setelah dirunningl.

One of the widely used Python libraries for creating Python applications that can run on mobile apps is Kivy, as mentioned in the previous post. Continuing with the application from the previous post as an illustration, here is the GUI appearance with Kivy after running it.

B. Buldozer

Buldozer merupakan satu paket berbasis Python untuk membuat apk dari bahasa Python yang dibuat dengan library kivy. Kira-kira tampilannya sebagai berikut. Silahkan lihat di google colab ini. Uniknya, buldozer dapat dijalankan lewat Google Colab, sehingga hanya membutuhkan browser saja. Metode lainnya lihat postingan ini.

Bulldozer is a Python-based package for creating APK files from Python code built with the Kivy library. Here is an example of its appearance. Please refer to this Google Colab link for more details. The unique feature of Bulldozer is that it can be executed through Google Colab, requiring only a web browser. For alternative methods, please refer to this post.

C. File Buldozer.spec

Perhatikan setiap instalasi pada cell di colab jangan sampai ada error (berwarna merah). Ketika inisialisasi, buldozer.spec muncul dan siap dijalankan, juga dengan Google Colab. Ganti nama aplikasi, tampilan splash dan icon. Untuk requirements di baris ke 40 tambahkan library-library yang digunakan, beserta versinya, misalnya kivy==2.2.0. Library lain tambahkan jika ada di impor pada header python, misal pillow, tensorflow, dll.

Please ensure that there are no errors (in red color) during the installation process in each cell in Colab. When initializing, the bulldozer.spec file will appear and is ready to be executed, even in Google Colab. You can rename the application, customize the splash screen, and change the icon. In line 40, add the required libraries along with their versions to the requirements, for example, kivy==2.2.0. If there are any additional libraries imported in the Python header, such as Pillow, TensorFlow, etc., please include them as well.

Jangan lupa menghilangkan hastag # jika akan digunakan. Please remember to remove the ‘#’ symbol if you intend to use the code.

D. Menjalankan (running) File Apk

Nah, repotnya adalah proses kompilasi yang hampir setengah jam. Jika sudah tinggal dipindah apk yang dihasilkan untuk diinstal di handphone. Lokasi apk ada di folder bin. Pastikan Android paket sudah selesai terbentuk di bagian akhir google colab.

Well, the inconvenience lies in the compilation process which takes nearly half an hour. Once it’s done, you just need to transfer the generated APK file to your mobile device for installation. The APK file can be found in the ‘bin’ folder. Make sure that the Android package has been successfully created towards the end of Google Colab.

Tampilannya kira-kira seperti ini, mirip dengan versi Kivy python.

The appearance would be something like this, similar to the Kivy Python version.

Sekian, video youtube dapat dilihat di link berikut, terima kasih.

That’s all, the YouTube video can be viewed at the following link. Thank you.

Kivy, a Python-based Object-oriented Application Interface

Perkembangan teknologi software development saat ini sangat pesat. Ditambah lagi saat ini ada ChatGPT yang cukup membantu. Dengan kata kunci “buatkan kode python untuk menjumlahkan dua angka dengan interface menggunakan kivy agar bisa jalan di android” responnya cukup baik, yaitu berupa source code yang diinginkan.

The current software development technology is advancing rapidly, and with the availability of helpful tools like ChatGPT, the process becomes even smoother. By providing the keywords “create Python code to add two numbers with an interface using Kivy to run on Android,” a satisfactory response is generated in the form of the desired source code.

Berikutnya kita coba jalankan kode tersebut dengan Visual Studio Code. Oiya, install terlebih dahulu library kivy.

Next, let’s try running the code using Visual Studio Code. Oh, and don’t forget to install the Kivy library beforehand.

pip install kivy

Problem di atas hanya ilustrasi saja (penjumlahan dua inputan). Untuk yang lebih kompleks dapat menggunakan cara tersebut, yang penting mengetahui teknik input, memproses dan mengeluarkan outputnya.

The problem above is just an illustration (summing two inputs). For more complex tasks, you can use the same approach, as long as you understand the techniques for handling input, processing it, and producing the desired output.

Jalankan kode tersebut dengan masuk ke Run – Run Without Debugging. Atau jika menggunakan editor lain, masuk ke command window dilanjutkan mengetik:

To run the code, follow these steps: Open your preferred editor (e.g., Visual Studio Code), navigate to the “Run” menu and select “Run Without Debugging”. This will execute the code. If using a different editor, access the command window and type the following command:

python penjumlahan.py

Perhatikan, sebuh GUI muncul dengan input dan output yang bisa dikonversi lebih lanjut menjadi aplikasi mobil lewat library buldozer.

Note that a GUI will appear with input and output, which can be further converted into a mobile application using the Kivy library’s “Buildozer”.

Convert Python file to Exe File

Mahasiswa jaman dulu sudah mengenal kompilasi program menjadi file executable. File jenis ini tidak bisa langsung dilihat kode programnya, sehingga lebih aman dari ‘penggunaan kembali’ oleh orang lain. Postingan ini khusus untuk pengguna windows, platform yang bisa menjalankan langsung dile EXE.

Pertama-tama siapkan dahulu file python yang akan dikonversi dilanjutkan dengan menuju ke lokasi foldernya. Klik kanan dan pilih Open in Terminal. Atau bisa masuk langsung ke Command lalu arahkan ke folder aplikasi.

In the past, students were already familiar with compiling programs into executable files. This type of file cannot be directly viewed as source code, making it safer from being reused by others. This post is specifically for Windows users, a platform that can directly run EXE files.

First, prepare the Python file that will be converted, then navigate to its folder location. Right-click and select “Open in Terminal.” Alternatively, you can directly go to the Command Prompt and navigate to the application folder.

A. Install Pyinstaller

Setelah masuk ke command prompt, install library untuk konversi ke executable, yakni pyinstaller. Ketik kode:

After entering the Command Prompt, install the library for converting to an executable, which is pyinstaller. Type the following code:

pip install pyinstaller

B. Run Pyinstaller

Setelah pyinstaller terinstall, jalankan untuk mengkonversi file py menjadi exe. Ketikan instruksi:

After pyinstaller is installed, run it to convert the .py file to .exe. Type the following command:

pyinstaller –onefile -w process.py

Proses kompilasi berjalan dengan lama tergantung kompleksitasnya. Untuk program contoh, cukup lama prosesnya (sepeminuman the). Setelah selesai, pada folder dist tampak process.exe sudah terbentuk. Selanjutnya saya pindahkan ke folder tempat akan dieksekusi. Ukurannya fantastis, 500-an Mb, dibanding dengan sebelumnya yang 1 Kb. Mungkin akibat memasukan library-library yang digunakan. Salah satunya adalah tensorflow.

The compilation process takes time depending on its complexity. For the example program, it took quite a while (around a few minutes). Once it’s done, you will see that the process.exe file is created in the “dist” folder. Next, you can move it to the folder where you want to execute it. The size of the executable file is significantly larger, around several hundred megabytes, compared to the original file size of 1 KB. This increase in size is likely due to the inclusion of the libraries used in the program. One of them is TensorFlow.

C. Cek Hasil Konversi

Berikutnya kita uji dengan menjalankan file EXE. Kebetulan di sini file exe akan diakses oleh file PHP (maaf, rumit ya). Sebelumnya diakses dengan kode pada process.php sebagai berikut:

Next, we will test the executable file by running the EXE file. In this case, the EXE file will be accessed by a PHP file (apologies for the complexity). Before accessing it, use the following code in process.php:

Kemudian di sini process.py akan kita ganti dengan process.exe yang baru saja kita konversi. Ganti menjadi sebagai berikut.

Then, here we will replace process.py with the newly converted process.exe. Change it as follows:

Untuk memastikan bukan file process.py yang dipakai, ganti saja (rename), misalnya xprocess.py. Setelah itu jalankan file phpnya dengan kode:

To ensure that the file being used is not process.py, simply rename it, for example, to xprocess.py. After that, run the PHP file with the following code:

php -S localhost:8000

Atau gunakan cara biasa dengan XAMPP setelah memindahkan file aplikasi ke htdocs (lihat pos yang lalu).

Alternatively, you can use the conventional method with XAMPP after moving the application files to the htdocs directory (as mentioned in the previous post).

Dengan memasukan 4 input, file html tersebut menjalankan file process.php yang menangkap inputan, selanjutnya mengakses file process.exe yang sebelumnya python. Jadi, jika ingin kode rahasia Anda tidak bisa dibuka karena file .py maka dengan .exe akan lebih aman. Lebih jelasnya lihat video youtube berikut:

By entering 4 inputs, the HTML file executes the process.php file, which captures the inputs and then accesses the previously Python file, process.exe. So, if you want to protect your secret code from being easily accessed, using .exe files instead of .py files will provide more security. For more clarity, please refer to the following YouTube video:

XAMPP Cannot be Run

XAMPP merupakan aplikasi terkenal yang mengintegrasikan server web Apache dengan server Database MySQL. Kendala yang menyebalkan saat menggunakannya adalah XAMPP control panel tidak bisa menghidupkan MySQL.

XAMPP is a popular application that integrates the Apache web server with the MySQL database server. An annoying issue encountered while using it is that the XAMPP control panel is unable to start MySQL.

Jika kita mengalami hal tersebut, langkah pamungkas adalah instal ulang XAMPP. Tentu saja tidak ada masalah jika MySQL masih kosong atau baru sedikit, jika sudah banyak tentu saja merepotkan. Postingan ini sedikit berbagi pengalaman bagaimana menyelesaikan hal tersebut ketika problem terjadi.

If you encounter such an issue, the final step would be to reinstall XAMPP. Of course, this is not a problem if your MySQL database is empty or contains only a few entries, but it can be quite troublesome if there is a large amount of data. This post shares a little experience on how to resolve such a situation when the problem occurs.

1. Backup

Sebagai langkah awal backup database kita, bernama ‘data’, yang berlokasi di xampp/mysql. Simpan di lokasi baru, misalnya old_data.

As an initial step, let’s backup our database named ‘data’, which is located in xampp/mysql. Save it to a new location, for example, ‘old_data’.

2. Restore

Buka folder ‘backup’ di xampp/mysql lalu copy seluruh isi ke folder ‘data’. Hal ini bermaksud membuat mysql seperti baru kembali. Pastikan XAMPP control panel bisa menjalankan MySQL.

Open the ‘backup’ folder in xampp/mysql and then copy all its contents to the ‘data’ folder. This is intended to make MySQL start fresh. Make sure the XAMPP control panel can run MySQL.

Kemudian di folder ‘old_data’ pindahkan folder berisi database yang akan dijalankan (jika semua ingin diaktifkan, berarti seluruh folder-folder databasenya). Copy ke folder data.

Next, in the ‘old_data’ folder, move the folder containing the database that needs to be run (if you want to activate all of them, it means moving all the database folders). Copy them to the ‘data’ folder.

3. Run

Di sini jika kita buka PhpMyAdmin tampak database kita berhasil dibuka. Tetapi terkadang ada kendala karena tidak bisa diakses. Oleh karena itu timpa saja file ‘ibdata1’ yang berlokasi di xampp/mysql/old_data ke folder xampp/mysql/data. Oiya, pastikan confirm untuk replace ketika muncul jendela konfirmasi. Restart kembali MySQL kita lewat XAMPP Control Panel, kemudian cek kembali, dan pastikan database bisa dibuka di PhpMyAdmin. Sekian, semoga bermanfaat.

Here, if we open PhpMyAdmin, it appears that our database has been successfully accessed. However, sometimes there may be issues with accessing it. Therefore, simply overwrite the ‘ibdata1’ file located in xampp/mysql/old_data with the one in the xampp/mysql/data folder. Oh, and make sure to confirm the replacement when prompted. Restart MySQL through the XAMPP Control Panel, then check again and ensure that the database can be opened in PhpMyAdmin. That’s all, hope it’s helpful.

Tanda Peringatan Dini Dari Artificial Intelligence

Tidak dipungkiri, Artificial Intelligence (AI) merupakan pendukung Industri 4.0. Manfaatnya sudah banyak terasa karena mempermudah pekerjaan manusia. Tapi berita berikut menunjukan hal yang lain, yaitu ‘warns of danger‘ dari AI.

Munculnya ChatGPT membuat Google khawatir, dan berusaha memasukan AI ke mesin pencarinya tersebut. Sebelumnya, kehadiran AI membuat dunia pendidikan sedikit kerepotan karena siswa terlihat cerdas secara instan, padahal meminta bantuan dari AI. Untuk plagiasi, saat ini sudah bisa dideteksi namun muncul kekhawatiran dari sisi penggunaan internet.

Mirip Alfred Nobel yang menemukan mesiu dan kecewa melihat dampak dari temuannya, ahli AI juga merasakan hal yang sama. Namun tidak dapat dicegah, “Jika saya tidak melakukannya, orang lain akan melakukannya,” kata Hinton, pionir kecerdasan buatan. Kekhawatiran merayapi banyak insider industri adalah bahwa mereka sedang melepaskan sesuatu yang berbahaya ke dunia. Kecerdasan buatan generatif saat ini bisa menjadi alat untuk penyebaran informasi yang salah. “It is hard to see how you can prevent the bad actors from using it for bad things,”, katanya lagi.

Ketika ChatGPT release, sekitar 1000 peneliti membuat moratorium agar perusahaan itu melakukan freeze terhadap pengembangan lebih lanjut. Gimana, Anda ikut pihak yang mana?

How to Fix ‘Zoom Failed to Save’ Issue

Ketika mengadakan acara via zoom terkadang ketika save ke local PC mengalami kegagalan. Salah satunya adalah ketika save zoom sebelumnya belum selesai sudah menyimpan yang baru. Namun jangan khawatir, postingan berikut ini mencoba share pengalaman yang terjadi menimpa saya yang sudah zoom 40-an menit (dibatasi karena gratisan).

When hosting an event via Zoom, sometimes there are failures when saving to the local PC. One of them is when trying to save a new Zoom session before the previous one has finished saving. However, don’t worry, the following post tries to share the experience that happened to me when I had been on Zoom for around 40 minutes (limited due to the free version).

Ok, buka lokasi zoom default, biasanya di /documents/zoom dan pastikan tanggal hari ini. Ternyata ada sekitar 500-an Mb yang minta dilakukan ‘double_click’ untuk mengkonversi menjadi file video/audio.

Ok, open the default Zoom location, usually in /documents/zoom, and make sure it’s the current date. Apparently, there are around 500 MB that need to be ‘double-clicked’ to convert them into video/audio files.

Setelah dobel klik, pastikan zoom mengkonversi menjadi file recording yang siap anda nikmati. Tunggu beberapa saat hingga selesai.

After double-clicking, make sure Zoom converts it into a recording file that you can enjoy. Wait for a few moments until it’s finished.

Akhirnya video bisa terekam dengan baik. Semoga postingan ini bermanfaat.

Finally, the video has been successfully recorded. May this post be useful.

Cara Mengunduh Audio Music Resolusi Tinggi – Dari Youtube

Tahukah Anda jika format MP3 menghilangkan sekitar 20% dari asilinya? Untuk yang seumuran dengan saya pasti pernah mengalami beli CD music dimana hanya sekitar 10 lagu saja, tiap lagu berukuran puluhan (hampir seratus) megabyte. Ketika mendengarkan MP3, jika telinga Anda tajam pasti tidak puas karena ada yang hilang dibandingkan format aslinya (biasanya WAV). Apalagi jika pernah mendengar dari kaset yang memang asli (tidak digital). Postingan ini mencoba membantu bagaimana mendapatkan format non-lossless yang dikenal dengan istilah FLAC, yang ekstensi filenya nanti *.flac.

Beberapa alat pengunduh, seperti https://ontiva.com/en/9f349 memiliki kemampuan mengunduh file FLAC. Caranya copas aja link dari Youtube, misalnya lagu cover aku takut repvblik berikut. Lalu paste di situs pengunduh tersebut.

Pilih AUDIO (jangan MP3) jika ingin tidak ada yang dihilangkan karena kompressi. Pilih HQ, misalnya FLAC. Pilihan lain, bisa Anda pilih, misalnya WAV. Lalu tunggu sesaat setelah tombol Download ditekan. NOTE: oiya, terkadang tidak tersedia audio HQ, pastikan unduh dari original channelnya, misal SONY, atau cannel resminya.

Tekan Download Now untuk mengunduhnya. Untuk AUDIO yang diunduh dari youtube tersebut ada sekitar 48 MB yang harus diunduh. Jadi pastikan kuota Anda cukup. Hasilnya, buka dengan pemutar, misalnya Winamp, ternyata Ok kualitas suaranya karena tidak ada yang dihilangkan akibat kompressi.

Tentu saja kalau ingin murni tanpa ada yang dihilangkan ya dengar lewat kaset atau piringan hitam. Tapi tentu saja ada noise yang ikut terekam. Silahkan dengarkan sambil mengendarai mobil setelah diunduh di flashdisk. Silahkan lihat video short berikut. Sekian semoga bermanfaat.

Belanja Doktor itu Perlu

Ada tiga akreditasi yang telah berlangsung di tempat saya mengajar, dua dari mesin dan satu sipil. Lima tahun yang lalu tidak ada masalah dan mendapat nilai yang baik, namun saat ini dikejutkan dengan kewajiban pada butir kualifikasi akademik DTPS dengan doktor maksimal ¼ dari total dosen homebase (4 dari 16 DTPS). Oiya, DTPS = Dosen Tetap Program Studi.

Yang uniknya adalah, rekomendasi tersebut diminta dipenuhi dalam waktu enam bulan. Jika hal-hal lain seperti kurikulum, alat praktikum, sepertinya tidak jadi masalah. Nah, untuk doktor bagaimana mungkin memenuhi hal tersebut dalam waktu enam bulan? Tidak ada cara lain selain membajak. Ini yang jurusan satunya lagi (2 dari 7 DTPS). Sementara satu lagi aman, karena Diploma 3. Ternyata tidak mensyaratkan doktor.

Tahun 2013 yang lalu di tempat saya terjadi pergantian rektor dengan programnya 9 doktor per tahun. Nah, karena ada program kerja tersebut lancarlah saya berangkat studi lanjut “walau halangan, rintangan membentang. Tak jadi masalah dan tak jadi beban pikiran” (kayak lagu kera sakti) halangan itu datang baik dari pihak DIKTI (wawancara pertama gagal) maupun penghalang di internal (siapa lagi kalau bukan temen sendiri).

Banyak sih kejadian-kejadian unik ketika itu. Misalnya, karena uang DIKTI belum cair, kampus meminjamkan uang 70jt yang langsung saya tukar dolar per dolar Rp 10.300,-. Berangkatlah saya ke kampus LN untuk bayar registrasi, dan ternyata untuk beasiswa DIKTI tidak perlu bayar dulu, bisa menyusul menunggu DIKTI cair, tentu saja tanpa bunga. Baliklah saya kembali ke Indonesia untuk urus visa pelajar, pembekalan, dan hal-hal wajib lainnya. Ternyata rupiah melemah, dalam waktu 2 minggu turun menjadi Rp 11.500,- per dollar. Ketika saya tukar kembali (waktu itu di depan hotel Horison Bekasi), dan ternyata jadi 78jt. Jadi dalam 2 minggu dapat duit ‘aneh’ Rp. 8 juta, (rejeki anak soleh).

Kejadian unik lainnya, atau lebih tepatnya ‘aneh’ adalah, si rektor digulingkan. Mungkin karena terlalu keras program-program kerjanya. Bagi yang santai tentu saja ‘gerah’. Akibatnya terjadilah kondisi seperti saat ini yang dipaksa menyediakan beberapa doktor dalam 6 bulan saja. Pengalaman memang harus dijalani, sempat berantakan di semester 1 saya pakai taktik catur dengan pindah jurusan dari computer science ke information management, soalnya males mengulang matkul dulu gara-gara telat sebulan tiba di kampus karena harus urus tetek bengek di Indonesia (visa, pembekalan, dan lain-lain).

Tahun 2010 ada film ‘Imaginarium of Doctor Parnassus’. Waktu itu tidak sengaja 1 fakultas nonton itu, dan lumayan menginspirasi. Ya, memang akademisi tidak bisa tidak harus mencapai level tertinggi dari bidang ilmu yang sesuai. Kata-kata berikut biasa diucapkan ketika rektor akan melantik/mewisuda mahasiswa doktoral.

“Doctoral is the highest academic degree that can be achieved by an individual in the world of education, where the individual makes original and significant contributions to knowledge in their chosen field through in-depth and critical research.”

NOTION as an alternative to ChatGPT

Hebohnya ChatGPT pasti akan memunculkan AI-AI lainnya, salah satunya adalah Notion. Fasilitasnya ada yang mirip ChatGPT, tapi agak sedikit ribet. Postingan ini hanya mencoba fasilitas yang seperti ChatGPT, alias sarana untuk menjawab problem-problem kita. Silahkan buka situsnya:

(The buzz around ChatGPT will surely give rise to other AIs, one of which is Notion. Some of its features are similar to ChatGPT, but it’s a bit more complicated. This post only explores its ChatGPT-like feature, which is a means to answer our problems. Please visit the site:)

Siapkan login dengan email Anda, misalnya Gmail. Berikutnya Anda akan masuk ke menu utama Notion AI. Perhatikan bagian ‘Press ‘ space for AI ‘/’ for commands …’ coba ketik ‘/‘ untuk membuat command/perintah. Atau bahasa ilmiahnya prompts.

(Prepare to log in with your email, such as Gmail. Next, you will enter the Notion AI main menu. Pay attention to the ‘Press ‘ space for AI ‘/ for commands …’ section and try typing ‘/’ to create a command. Or scientifically called prompts.)

Pilih Ask AI to Write lalu ketika pertanyaan Anda. Misalnya perbedaan Antara LSTM dengan RNN pada Deep Learning.

(Choose Ask AI to Write and then ask your question. For example, the difference between LSTM and RNN in Deep Learning.)

Tampak, Notion AI akan langsung memberi jawaban dalam satu paragraf. Coba iseng tekan Make longer di jendela yang muncul.

(As you can see, Notion AI will immediately give an answer in one paragraph. Try clicking Make longer in the window that appears.)

Silahkan explore fasilitas-fasilitas lainnya yang dapat kita manfaatkan. Cocok untuk negara kita, negara berkembang yang harus ‘berlari’ mengejar ketertinggalan tanpa perlu mengeluarkan ongkos yang besar agar bisa sejajar dengan negara maju dari sisi pengetahuan.

(Please explore other features that we can use. It is suitable for our country, a developing country that needs to ‘run’ to catch up with advanced countries in terms of knowledge without having to spend a lot of money.)

Ketika diminta mencari jawaban dalam bentuk gambar ternyata belum tersedia. Atau mungkin suatu saat nanti tersedia. Sekian, semoga bermanfaat.

(When asked to find answers in the form of images, they are not yet available. Or maybe someday they will be. That’s all, I hope it’s useful.)

Pulling Grade Data from Google Classroom

Walau perkuliahan sebagian besar sudah tatap muka saat ini, terkadang alat bantu, seperti Google Classroom (GC) masih menjadi andalan mempercepat proses penilaian. Untuk mahasiswa yang banyak siswanya termasuk juga nilai harian yang banyak, ada kalanya perlu waktu untuk memberi nilai. Nah, GC memiliki fasilitas untuk secara otomatis mengunduh seluruh nilai (grade) dalam bentuk CSV untuk diolah lebih lanjut.

(Although most of the classes have been conducted face-to-face, sometimes tools such as Google Classroom (GC) are still relied upon to speed up the assessment process. For students who have a large number of classmates and also have many daily grades, there are times when it takes time to give grades. Well, GC has a feature to automatically download all grades in CSV format for further processing.)

Menu yang ada adalah setting yang memiliki simbol ‘gear’, tapi letaknya bukan di menu grades melainkan di menu Stream perkuliahan (bukan di Classwork). Klik saja salah satu week, lalu tekan simbol ‘gear’ di bagian kanan atas. Tinggal pilih seluruh grade atau these grade (minggu yang dipilih saja). Untuk jelasnya lihat video short berikut.

(The menu in question is the “Settings” menu, which has a “gear” symbol, but it is not located in the “Grades” menu, but rather in the “Stream” menu of the class (not in “Classwork”). Simply click on one of the weeks, then press the “gear” symbol in the upper right corner. Just select all grades or those grades (only the selected week). For more details, please see the following short video.)

Running Python within PHP

Beberapa framework menyediakan fasilitas server untuk bahasa Python misalnya Flask, Django, Pyramid, Bottle, dan CherryPy. Namun karena kebanyakan website telah menggunakan server berbasis PHP, misalnya Apache, Nginx, Microsoft IIS, Lighttpd, dan Caddy, beberapa pengembang memanfaatkan fasilitas PHP untuk menjalankan Python di server. Pada prinsipnya ada dua metode mengakses Python dalam PHP.

(Several frameworks provide server facilities for the Python language, such as Flask, Django, Pyramid, Bottle, and CherryPy. However, since most websites have been using PHP-based servers such as Apache, Nginx, Microsoft IIS, Lighttpd, and Caddy, some developers leverage PHP facilities to run Python on servers. In principle, there are two methods to access Python in PHP).

1. Kode Python dijalankan di web server (Python code is executed on the web server)

Kalau pada flask, style Python dijalankan dengan format HTML dengan %% (format jinja-2) PHP membutuhkan setting terlebih dahulu agar server mampu membaca format *.py agar dijalankan server. Agak sedikit rumit untuk Ubuntu seperti video berikut.

(In Flask, Python code is run using HTML format (with jinja-2), while in PHP, the server needs to be configured first to read the *.py format and execute it on the server. The configuration process may be a bit complicated for Ubuntu, as shown in the following video).

Di sini program *.py diintegrasikan denan html lewat mekanisme print seolah-olah mencetak string style HTML. Tentu saja header perlu ditambahkan.

(Here, the *.py program is integrated with HTML through the print mechanism, as if printing an HTML-style string. Of course, the header needs to be added).

Untuk yang versi Windows sedikit lebih mudah, dengan format header yang berbeda pula. Misalnya video singkat ini untuk XAMPP.

(For the Windows version, it is slightly easier with a different header format. For example, this short video for XAMPP).

Kelemahan metode ini adalah karena load ke web server maka membebankan web server.

(The drawback of this method is that it can burden the web server due to the load it creates).

2. Kode Python dijalankan oleh file PHP (Python code is executed by a PHP file)

Metode ini merupakan metode yang lazim dipakai karena file Python dijalankan di terminal server tanpa melibatkan secara realtime web server, dan jauh lebih cepat. Apalagi jika disertakan tambahan multitasiking dengan pooling processor.

(This method is commonly used because the Python file is run on the terminal server without involving the web server in real-time, making it much faster. Moreover, if multitasking with processor pooling is added, it can be even faster).

Dengan fungsi exec file Python dipanggil dengan input dengan library sys untuk mempermudah. Di sini seolah-olah file php dimanfaatkan untuk menjalankan file Python via terminal biasa, seperti menjalankan file Python dengan mengetik python <file *.py>. Kedua pernah saya gunakan. Jika ada metode lain silahkan beri masukan di komentar. Sekian, semoga bermanfaat.

(The Python file is called with the input using the sys library to make it easier using the exec function. Here, it is as if the PHP file is used to run the Python file via the regular terminal, like running a Python file by typing python <file *.py>. I have used both methods before. If there are other methods, please provide feedback in the comments. That’s all, hope it’s useful).

Generating a Dataset with ChatGPT

Whether it is Data Mining, Machine Learning, or Deep Learning, they all depend on datasets in any implementation domain. Sometimes, obtaining datasets can be very challenging due to their large size, rarity, strict permission requirements, and so on. This post will provide information on how to use ChatGPT to create datasets.

Alright, let’s try for a Natural Language Processing (NLP) case where a dataset is needed for text classification (sometimes referred to as text categorization). For example, with COVID, there are four variants: alpha, beta, gamma, and delta. Now, the system is asked to detect news that discusses which variants. Therefore, five classes are needed: alpha, beta, gamma, delta, and others.

Just ask ChatGPT: Can you give me a news paragraph about the “Alpha” COVID-19 variant?. Then, a paragraph of information will appear. Now, we just need to type again: Can you add 9 similar paragraphs? (if you want to get 10 articles for the “Alpha” class)..

Next, you can transfer the information to a CSV file that will be used for the training process. Of course, you can add as much data per class as possible. That’s all, I hope it’s useful.

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.