Tentang Blog Ini

Isi dalam blog ini merupakan pendapat dan ungkapan pemahaman saya pribadi yang disediakan secara terbuka dan sebaik mungkin. Komentar dan koreksi bisa disampaikan melalui kontak yang diberikan. Blog ini menggunakan WordPress versi gratis sehingga jika ada iklan yang muncul bukanlah kehendak saya.

EPS dan Python

EPS (earning per share) dapat menjadi indikator profitabilitas emiten dan dinyatakan sebagai laba usaha emiten (company’s profit) dibagi jumlah saham beredar (outstanding shares). EPS merupakan salah satu indikator yang digunakan dalam analisis fundamental suatu emiten.

Python akan digunakan untuk mengolah data EPS yang diperoleh (secara harian) serta menampilkannya dalam quartal dan pertumbuhannya.

Otak-atik gathuk judulnya ….hehehe

EPS umumnya dihitung per-quartal setelah keluar laporan keuangan (LK) kuartalan yang memuat laba bersih perusahaan. Dan tiap emiten berbeda pengumuman LK-nya dan tidak mesti di awal bulan kuartal. Ini problemnya…

Sementara yang bisa dilakukan adalah mengambil data EPS tiap emiten setiap hari. Secara otomatis dan bersama data fundamental lainnya tentunya…

Ini contoh datanya: (sayangnya dia mulai dari bulan April 2023)

stock_id date eps_ttm
...
3 PGAS 2023-04-12 204.98
4 PGAS 2023-04-13 204.98
5 PGAS 2023-04-17 209.84
6 PGAS 2023-04-18 209.84
7 PGAS 2023-04-26 209.84
...

Continue reading “EPS dan Python”

Tuning Server MySQL (Ceritanya)

Ceritanya respons layanan web ejournal dengan OJS sangat lambat. Penyebabnya ndak paham pasti: bisa jadi jaringan, server, atau middle-ware (web proxy, firewall). Salah satunya mungkin karena server MySQL yang responsnya lambat.

Walaupun fungsionalnya jalan, namun performansinya terasa buruk, loading halaman web sangat lama, dan ini mengganggu. Penyebabnya perlu ditelusuri.

Sasaran pertama adalah tuning server MySQL. Server web Apache dengan MPM Prefork dan PHP-FPM akan disetel default dengan penambahan kapasitas server dan child yang terkontrol.

Perangkat bantu yang digunakan dalam tuning adalah htop dan mysqladmin. Status server web dipantau dengan apachectl status dan status php-fpm dari halaman status php dengan curl. Semuanya dilakukan dari konsol. Hehehe. Perintahnya kira-kira seperti ini:

$ htop
$ mysqladmin proc stat
$ watch -n 5 apachectl status
$ watch -n 5 curl https://<url_jurnal>/status.phtml --silent
Continue reading “Tuning Server MySQL (Ceritanya)”

Melihat TTFB di Console

TTFB (Time to First Byte) suatu halaman web dapat diamati dengan Developer Tools yang ada browser (misalnya Chrome) dari Timing Network. Diagram timing (waterfall) ini menunjukkan bahwa browser menunggu byte respons pertama dari server.

Bagaimana mendapatkan TTFB ini menggunakan console di Linux? Seringkali waktu ini digunakan untuk menguji performansi respons server web, misalnya Apache.

Curl dapat digunakan untuk mendapatkan informasi TTFB tersebut. Perintahnya adalah:

# curl -o /dev/null -w "Connect: %{time_connect} TTFB: %{time_starttransfer} Total time: %{time_total} \n" -s https://jtsiskom.undip.ac.id
Connect: 0,520179 TTFB: 7,689596 Total time: 12,632399

Waktu TTFB-nya terlalu lama sekitar 7 detik lebih. Hal ini bisa menunjukkan ada masalah dengan server dan mungkin aplikasi webnya. Bagaimana solusinya? Belum paham, hehehe.

Analisis Teknikal Saham

Hari ini membaca tulisan bagus untuk menambah pengetahuan tentang analisis teknikal saham. Tulisan tersebut mengulas tentang pengertian analisis teknikal saham, perbedaannya dengan analisis fundamental, prinsip dasar analisis teknikal saham, hal dasar dalam analisis (support dan resistance), dan indikator teknikal saham. Tulisan ini hanya merangkum berdasarkan pemahaman saya saja dan menambah beberapa catatan dari tulisan lain (lihat referensi).

Analisis teknikal (saham) digunakan untuk mengamati pola atau trend pergerakan saham (harga, volume, dll) berdasarkan data historisnya dari grafik harga saham, analisis trend, support, dan resistance. Hal ini berbeda dengan analisis fundamental yang digunakan untuk mengetahui dasar-dasar ekonomi, neraca, laporan laba rugi emiten dan sebagainya, berdasarkan kondisi maktro, sektor industri, dan fundamental perusahaan untuk investasi jangka panjang.

Continue reading “Analisis Teknikal Saham”

Missing Font di LinuxMint

Reinstalasi LinuxMint default kadang membuat dokumen-dokumen LibreOffice kita sebelumnya akan mempunyai tampilan yang berbeda, terutama format huruf yang tidak sesuai. Hal ini biasanya terjadi saat format huruf dalam dokumen disetel manual, misalnya menggunakan huruf Arial atau Calibri.

Huruf Arial ini termasuk dalam Ms Fonts yang secara default tidak terinstall di LinuxMint. Saat dokumen dengan huruf Arial ini dibuka, LibreOffice akan menggunakan font default untuk menggantikan font yang hilang (missing fonts) tersebut. Tampilan dokumen akan jauh berbeda karena font Calibri mempunyai space dan ukuran yang lebih besar daripada Arial.

Ms Fonts ini perlu diinstall di LinuxMint. Berikut langkahnya.

Install paket ttf-mscorefonts-installer dan fonts-crosextra-carlito:

$ sudo apt-get install ttf-mscorefonts-installer fonts-crosextra-carlito

Pengguna perlu menyetujui License Agreement untuk penggunaan font Microsoft ini. Klik OK setelah membaca lisensi ini dan pilih Yes untuk menyetujui lisensi ini.

Cek font-font yang telah terinstall:

ls /usr/share/fonts/truetype/msttcorefonts/

Font-font seperti Arial, Courier, dan Times New Roman telah terinstall dan dapat digunakan di aplikasi pengolah dokumen seperti LibreOffice.

Integrasi Whatsapp dengan Open Journal System

Sebenarnya ini bukan integrasi beneran… hehehe. Hanya menambahkan tautan untuk mengirimkan pesan WA berisi keputusan editor langsung kepada penulis.

Begini ceritanya.

Sebagai editor jurnal, sudah tentu ingin memanfaatkan segala media untuk berkorespondensi dengan penulis. Paling sering adalah untuk memberitahu hasil keputusan editor.

Saat ini, yang langsung terintegrasi di OJs adalah email. Nah, kadang email ini nyampe atau tidak ke penulis, dibaca atau tidak olehnya, editor tidak bisa memastikan.

Ada fasilitas WA nih. Bisa tidak dimanfaatkan? Bisa. Optimis saja… 🙂

Saya coba tambahkan tautannya di “Editor Decision”. Bagian keputusan inilah yang diperlukan… Untuk ‘ngejar’ penulis agar segera melakukan revisinya.. hahahaha.

Kalau ada yang penasaran tautannya lari ke mana, ini tautannya: https://wa.me/62811297123?text=%27Pesan%27. Idenya mengambil dari https://faq.whatsapp.com/general/chats/how-to-use-click-to-chat

Terus, nomor tujuannya ke mana? Nyetelnya bagaimana. Lebih lagi, ndak seru kalau pesannya statis. Yuk, sedikit ngoprek.

Continue reading “Integrasi Whatsapp dengan Open Journal System”

Update Plugins Index Copernicus International (ICI)

Plugins Index Copernicus International (ICI) yang saya buat untuk OJS 2.4x perlu diupdate.

Perubahan ini diperlukan karena ada isu format tanggal yang salah dan tidak sesuai dengan skema XML ICI. Tanggal ini meliputi tanggal publish issue dan artikel di issue yang di-export.

Semula format tanggal yang digunakan adalah YYYY-MM-DD hh:mm:ss dengan spasi diganti T dan tambahan akhiran Z. Misalnya: 2021-05-19T05:00:01Z. Format tanggal tersebut sekarang menimbulkan kesalahan saat import file XML tersebut ke ICI.

Format tanggal tersebut perlu diubah menjadi YYYY-MM-DD saja.

File yang berkaitan dengan format tanggal tersebut adalah classes/CopernicusExportDom.inc.php.

Berikut perubahan yang dilakukan.

@@ -52,7 +52,7 @@
 				if (!$selectedIssue) unset($selectedIssues[$key]);
                 // Issue node
                 $issue_elem = XMLCustomWriter::createChildWithText($doc, $records, 'issue', '', true);
-                $pub_issue_date = $selectedIssue->getDatePublished() ? str_replace(' ', "T", $selectedIssue->getDatePublished()) . 'Z' : '';
+                $pub_issue_date = $selectedIssue->getDatePublished() ? date('Y-m-d', strtotime($selectedIssue->getDatePublished())):'';
 
                 XMLCustomWriter::setAttribute($issue_elem, 'number', $selectedIssue->getNumber());
                 XMLCustomWriter::setAttribute($issue_elem, 'volume', $selectedIssue->getVolume());
@@ -105,10 +105,10 @@
             /* --- Article's publication date --- */
             
             if ($article->getDatePublished()) {
-                $publicationDate = $article->getDatePublished() ? str_replace(' ', "T", $article->getDatePublished()) . 'Z' : '';
+                $publicationDate = date('Y-m-d', strtotime($article->getDatePublished()));
             }
             else {
-                $publicationDate = $issue->getDatePublished() ? str_replace(' ', "T", $issue->getDatePublished()) . 'Z' : '';
+                $publicationDate = date('Y-m-d', strtotime($issue->getDatePublished()));
             }
             
             XMLCustomWriter::createChildWithText($doc, $lang_version, 'publicationDate', $publicationDate, false);

Perubahan tersebut telah diupdate di https://github.com/ekodidik/ojs2-ici-export-plugin. Petunjuk upgrade juga telah ditambahkan ke README.md.

Semoga bermanfaat.

Tautan lain: https://edwidianto.wordpress.com/2020/10/23/ici-export-plugins-for-ojs-2-4x/

Menulis Formula Panjang di Libreoffice Writer

Pas sedang membutuhkan cara menuliskan formula yang panjang di LibreOffice Writer. Kenapa LibreOffice? Ya karena program ini yang saya gunakan sejak jaman dulu sampai sekarang… 😀

Singkat cerita, saya harus menuliskan formula di format artikel yang menggunakan dua kolom. Parahnya, formulanya panjang yang jika dibiarkan akan memakan kolom sebelahnya.

Karakter newline atau ganti baris atau CR atau sejenisnya tidak berlaku di formula.

Dari Google ketemu ini: https://forum.openoffice.org/en/forum/viewtopic.php?f=12&t=39651. Langsung deh dicoba.

Ini contohnya:

min csub {β, γ}  δ  (S,I,R;β,γ )  = min csub {β, γ}   {1} over {T} sum from {t=0} to {T}
left lbrace stack {  (I_{data}(t)-I(t))^2 # "+" (R_{data}(t)-R(t))^2} right rbrace

Ini hasilnya:

Nah.. ini muat di satu kolom. Hehehe.

O iya. Catatan ini hanya digunakan untuk pengingat saya saja. Namun, kalau dapat bermanfaat bagi yang lain, Alhamdulillah.

Catatan tentang plagiarisme

Menulis naskah ilmiah, terutama artikel jurnal, merupakan salah satu sasaran dari mahasiswa, terutama mahasiswa Doktor. Satu hal yang perlu diperhatikan adalah tentang etika publikasi. Tulisan mahasiswa harus bebas dari pelanggaran etika ini, khususnya plagiasi.

Hehehe.. ini ceritanya sedang jadi mahasiswa S3.

Saya mendapatkan dua tulisan yang sangat menarik dan mudah-mudahan bisa bermanfaat tentang plagiasi dan cara menghindarinya. Saya coba beri highlight dan catatan tepi agar bisa lebih mudah memahami ide tulisan tersebut.

Tulisan pertama adalah tentang plagiarisme dan cara menghindarinya. Silahkan unduh di sini. Saya tidak bisa mendapatkan nama penulisnya. Pertama kali artikel ini diunduh dari laman web filsafat.ugm.ac.id/aw/Plagiat.doc. Namun, saat ini URL tersebut tidak dapat diakses.

Artikel tersebut membahas, selain tentang apa itu plagiarisme, juga teknik menghindarinya, yaitu dengan menggunakan kutipan dan parafrase.

Kutipan dapat dilakukan dengan kutipan pendek ataupun kutipan panjang. Dalam kutipan, kita dapat menghilangkan bagian kutipan yang tidak relevan (disebut elipsis) atau menyisipkan penjelasan dalam kutipan (disebut interpolasi).

Teknik parafrase juga dijabarkan dalam artikel ini, termasuk contoh-contohnya. Parafrase juga dapat dilakukan untuk mengurangi indeks similaritas :D.

Tulisan kedua adalah catatan tentang plagiarisme dari Sudigdo (2007). Silahkan unduh di sini. Artikel ini dimuat dalam Majalah Kedokteran Indonesia, vol. 57, no. 8, 2007.

Secara lebih detail, tipe-tipe plagiasi dibahas dalam artikel ini. Di dalamnya juga dibahas tentang fabrikasi dan falsifikasi data yang juga merupakan pelanggaran etika publikasi berat. Bagaimana dengan menyatakan common knowledge dalam naskah? Ini tidak perlu sitasi.

Monggo silahkan langsung ke TKP. Mudah-mudahan bisa bermanfaat. Mohon masukannya…