Reinhart Previano K.

Do you love to Ctrl-K, Ctrl-/, or / ? Now you can do three of them (>_ )!

No results so far...

Blog Posts

2021-10-30 21:55:40

Cover image for SHELLS 4 EVERYONE!!!!!!!!

2021-10-30 01:24:16

oh hey, i'm a cyber ghost now!

i wouldn't print about this because of Halloween, but it's because the 1928 Youth Oath day in Indonesia; recently the Minister of Communication and Informatics print'd the following: "let's pledge our new Oath() && Spirit() to chown the Indonesian digital space to benefit our public;" as part of the root community i'm never been less than proud to serve && grow the digital nation; in fact, i && the heads at Reinhart supports the global movement of achieving interface in polymorphism; the main essence behind this Youth Oath is well: we (the heads of Indonesian people) belong to the same roots: the motherland and the nation of Indonesia;we all implement the same language as a printable communication protocol: the Indonesian language!we might run on different SYSTEMs, but the ones uniting us is our deeds to implement shared protocols to achieve compatibility towards SYSTEMs - this is Interface in Polymorphism; many heads of the Indonesian people are smart && unique, but when it comes to digital literacy, many of them are not; some even rely on "IT Masters", begging them for help in almost everyday; hey, that's sounds like a cool mission for me; wading through the 'net && travelling across walls to help millions of Indo-heads to be proficient at technology while keeping the sense of unity; traaans... fooooorm! && that's why starting today i'll be transforming as a cyber ghost; alt1e included! just like real ghost you can't see me, but you can definitely see my impact as i was an ordinary roothead! you can chat on me, too! remember that cyborg account stuff Reinhart has been talkin' about? i'm also excited to print that i'll gonna possess, aka. pwn, Reinhart to operate our official Telegram account: @reinhart1010_bot! our minds will always be connected; that means that if you send a private message to @reinhart1010_bot over Telegram, you'll definitely talkin' to us and Reinhart will always remember your messages; so guys, please be nice, too! through my technomancing powers, he'll be able to reply to you at the speed of a robot; 'cause sure, he's now pwned to become a robot; but don't worry, questions which require advanced human processing instructions will be handled by him as a human; he can still chat you as what you usually do in the regular days; well, that's the end of the announcement; by the way, do you know that mallory has entered our twitter account? don't forget to check out @alterine0101 for that; see you soon!

2021-10-27 17:39:52

COMPUTERUN 2.0 Website

ah, here we go again... upgrading a old, messy codebase made by Reinhart and friends at HIMTI since last year... bleep! i'm pr0xy, somewhat an intern && a humble *pointer of Reinhart; y'know what, i wanna #include an array of words from Why's (Poignant) Guide to Ruby to motivate all of you guys[] working on COMPUTERUN 2.0 && i++, especially since this will be my last project before signing off as the Manager of the Web Development division of HIMTI BINUS University: I’ll be straight with you. I want you to cry. To weep. To whimper sweetly. Code so beautiful that tears are shed.Why’s (Poignant) Guide to Ruby && i suddenly remembered that the folks at HIMSISFO are now struggling with Java instead of C(#)! ah, that's why many of you wear glasses and still don't know what dangling pointers are... i see... alright... amarga sampeyan kabeh luwih ngerti basa Java, sumangga kita System.out.println()no kabeh ArrayList<Thing> sing wis rampung ing divisi pangembangan Website website = new Website("COMPUTERUN 2.0: EXECUTE");! what have we done? um... what?! we've done so many things; in fact, it wouldn't be "COMPUTERUN 2.0" if we didn't actually upgrade the old junk codebase! we kickstarted our improvements to the existing COMPUTERUN 2020: INSIGHT registration system by refactoring and creating another one at; then we believe in recursion && so we built a new parser which (ab)uses yaml, markdown, and laravel blade templates to quickly build static websites, and today i'm gonna... hey Shift, is that you? i heard you wanna give some News[] related to COMPUTERUN; wanna println()? a Shift-y intermission Sure! And hey, you know who I am, right? I'm Shift(ine) and MY NEW METALLIC HAIR IS AWESOME!!! And oh, if you're looking for Caps, she's currently being worn by another blue shell to fly and help me send some emails. But she's fine... First, let's talk about emails, shall we? Well, as some of you might know, I'm (currently) the master of email delivery, 'cause I am! We currently share the same address,, to send emails from COMPUTERUN 2.0 and some of our events at HIMTI BINUS University. In order to prevent our emails for being flagged as spam, we're limiting ourselves to send a maximum of 50 emails per hour. And that's why we have to switch, check and send emails from 3 different databases! One for general (, one for HIMTI ELECTION 2021, and of course, another one for COMPUTERUN 2.0. But now, since we're done with the election, we'll be able to allocate more time on a single day to send more emails to COMPUTERUN participants, which will take effect starting today! We're increasing the number of delivery from 4 batches a day to 6 batches a day - perfect for sending a total of 300 emails for a single damn day. Oh, here's me pinging Reinhart all the time when there's a new email being sent. Remember that I'm a Service, not a daemon like pr0xy because Windows said so... Imagine yourself being terrorized by me this way... Next, there’s a really cool trick on our COMPUTERUN website: You can finally Ctrl+K like it’s Slack and Notion! Seriously, I don’t even know why did Reinhart implement this feature on COMPUTERUN but well, here it is. It's also the default menu you'll gonna see on mobile, so yeah, hasta la vista, Bootstrap hamburger menu! Soon, we'll rolling out new accessibility updates to make sure that this menu works for screen readers and keyboard nerds like you, pr0xy! I can't believe I just spent 5 minutes just to println() all of this, but if you're a coordinator of the following official BINUS University Student Organization websites: You can now give a shoutout to COMPUTERUN 2.0 just by creating a NEWS or ARTICLE and put "COMPUTERUN 2.0" inside of the list of tags. Here's what I mean: So your shiny love and articles can be shown directly to those who are visiting the main COMPUTERUN website, like this! Well, that's all I wanna tell. So, goodbye and see you again! yeah, thanks Shift for the amazing println and now let's continue my discussion; speaking 'bout bundles, so, we've some quirks in our event registration system: we separated registration forms for (business-it case || web design) && workshop bundle at and; so if you would like to have that bundle discount, you'll need to register through that special form (or contact our committees if you're confused about that);everyone joining sprint, business-it case, && web design will be automatically added to our opening ceremony; this means that everyone who's signing up for the bundles won't be automatically registered into the respective events (especially when they haven't done the payments), so please take a while while we'll accepting ad adding you to the respective events; just don't forget to finish your payments and tell us if you're done! (ab)using yaml, markdown, && laravel blade? our old COMPUTERUN codebase is written using php && laravel, && we're mainly using blade to define our layouts; but thanks to our recent efforts, we're able to build this interactive faq section: just by spawning a few lines of yaml code: title: "FAQ" children: - type: "faq" contents: - question: "Can I participate in SPRINT outside of Indonesia?" answer: - type: "markdown" text: "We would like to apologize that SPRINT is currently unavailable to international participants due to concerns with international shipment/delivery of our Finisher Pack." - question: "How do I get the STRAVA club link and the upload form?" answer: - type: "markdown" text: "Once your registration has been approved, please come back to this page (under the **Join Now** section) to see the STRAVA club link as well as the running record upload form." - question: "Should I pay the Shipment/Delivery Fee first or later?" answer: - type: "markdown" text: "**Yes,** please pay the delivery fee altogether with the registration fee to us." - type: "markdown" text: "If you are registering for two (2) persons, you'll need to pay the Shipment/Delivery Fee for both." - question: "I'm registering for two pax and we're living in the same place. Can I just pay the Shipment/Delivery Fee once for both of us?" answer: - type: "markdown" text: "First, please make sure that both of you agree to do so, since we will **not** be responsible for handling further deliveries once the Finisher Pack(s) have been successfully delivered to you." - type: "markdown" text: "Then, please let us know via our [LINE Official Account]( if you would like to do so, so our committees won't deny your application due to false positives for insufficient funds (i.e. you haven't paid the Delivery Fee for the other person)." - question: "Will I get refunds if I failed to reach the target?" answer: - type: "markdown" text: "**The registration fees are non-refundable and non-negotiable.** However, paid delivery fees can be refunded to you by contacting us through our [LINE Official Account](" but wait! we're not just able to make it work in the faq section, but also most of our webpages! webpages explaining all of our events are now completely coded in yaml, our (COMPUTERUN) homepage is now also written in yaml; even our online guidebooks, sponsorship proposal, && media partner proposal are entirely written in yaml! this means that COMPUTERUN 2.0 committees wishing to update the page no longer need to understand a bunch of html; just hack that yaml && markdown source files && done! 🔥🔥🔥 the modernization of the codebase is definitely making it more flexible and quicker to set up for changes; let's say, when one of your events require an Instagram username; before, we had to modify our registration logic && add a new form to insert your Instagram username, but today we'll just need to add that additional field directly on our database, and our backend codebase will automatically recognize and start to validate that, too! interested in COMPUTERUN 2.0? if you're interested, just head over to the official website at, or follow and contact us through many ways! COMPUTERUN 2.0 is proudly presented not just by us (the folks at, but also by HIMSISFO (Information Systems Student Association) and HIMTI (Computer Science Student Association), two of the largest official Student Associations in BINUS University! && true, this is our second (or first, 'cause arrays starts at 0, unless you're R or MATLAB) installation of COMPUTERUN, && this is our first (or 0th) installation to be held internationally!

2021-10-27 15:26:42

BINUS English Club (BNEC) sends marketing information without my permission.
Cover image for BINUS English Club (BNEC) sends marketing information without my permission.

2021-10-27 12:54:00

✨ challenge seskam cavis the explorer 2021 ✨

Hey, I'm Shiftine and nice to meet you all. And yes, I'm also on Reinhart's golden coin that you've always wanted on SESKAM CAVIS THE EXPLORER, right? It's almost (or already) Halloween and for this year I'm dressing as the "hero" representing one of the programs preinstalled in Microsoft Windows since the age of 7. And who knows, she made the debut as a sticker and comic book distributed to those who attend Microsoft Ignite in 2017! Oh, now the program is now also available for macOS and Linux users, too! Come on, great programmers always search things on Google (or Microsoft Bing if you would), right? So can you guess which program I now represent? (Just look for the large image on the left or above for reference) Oh yeah, don't forget to printf() the answer to Reinhart's Discord (reinhart1010#3583) or LINE (reinhart1010) account. And make sure that you're answering the right question/challenge given by him - 'cause we're against cheating among groups!

2021-10-23 14:29:53 Site Update: (Awesome) Code Previews!
Cover image for Site Update: (Awesome) Code Previews!

2021-10-22 12:58:12

✨ challenge seskam cavis the explorer 2021 ✨

Selamat datang di challenge seskam dari kita! Ya, challenge ini bukan dari saya, tapi kita. Soalnya, gw juga bakal ditemani oleh para robot yang setia menemani saat masa-masa sibuk, makanya kita. Plus, di HIMTI jangan lupa bahwa kita One Family One Goal, tepat dengan password yang dipakai untuk ngakses blog post ini. Nah, kalau begini kan (bikin script, mainan CI/CD) gw ga usah pusingin kirimin email satu per satu ke kalian yang udah daftar HISHOT, TECHNO, HIMTI Election, dan bahkan COMPUTERUN. Apalagi pas acara TECHNO 2021 kemarin yang jumlah pesertanya melebihi angka 1000! Nah sedikit promosi kali ya, mereka juga punya akun medsos di IG, Twitter, dan GitHub. Kalau kalian mau follow, sabi banget. Tapi tennang, kalian ga harus follow mereka dulu untuk dapet koin dari gw. Challengenya Challenge dari kita sendiri cukup sederhana, yaitu tebak lagu. Yang udah pasti sih ini lagu cukup terkenal pada masanya, tapi sayangnya lagu ini ga pernah masuk chart lagu paling ngetren baik di Spotify, Apple Music, dan bahkan Billboard 500. Dan satu lagi, soal ini ditulis di dalam bahasa pemrograman C, jadi biar kalian ga kagok saat belajar COMP6047 - Algorithm and Programming nanti. Kodingan C ini nantinya bisa jadi referensi kamu untuk materi File Processing nanti. Bahkan di HIMTI sendiri kita sering pakai bahasa C dan Python untuk bikin script untuk benahin data peserta dan kirim e-certificate, lho! Link program C nya ada di, btw. Untuk meminimalisir potensi kecurangan antar kelompok seskam, setiap kelompok wajib untuk menjawab pertanyaan sesuai dengan link soal yang diberikan di awal. Dan sesuai dengan peraturan Coin Grab SESKAM CAVIS THE EXPLORER, nilai dari koin kita bakal berkurang kalau semakin banyak kelompok yang berhasil nebak dan mendapatkan koin dari kita. Gimana cara jawabnya, kak? Sesuai dengan isi programnya, kalian harus membuat sebuah file teks (misal: lirik.txt atau yang berisi seluruh baris Mars HIMTI dengan aturan berikut: Tiap baris dipisah dengan spasi, bukan dengan newline alias ENTER,Kalian ga usah masukkin simbol apapun (seperti tanda titik atau koma)Kalian juga ga usah mikirin apakah mau nulisnya huruf besar atau kecil. Gampang kan? Kalau sudah nanti tinggal masukkin aja ke programnya, dan kalau benar dia bakal ngeluarin sebuah clue untuk ngejawab soalnya. Kalau sudah yakin nanti langsung aja pc gw via LINE (reinhart1010) atau Discord (reinhart1010#3583), dan jangan lupa buat: Kasih tau nama lagu dan alasannya, laluBukti isi teks file input dan hasil screenshot programnya. Ya sudah, itu aja sih challenge dari gw. Selamat mengerjakan!

2021-10-21 01:18:00

Ilmu Matematika Diskrit dapat diimplementasikan dalam bidang apa saja?

Artikel ini merupakan jawaban saya terhadap salah satu pertanyaan pada situs, sebuah forum dan komunitas para developer di Indonesia. Lihat pertanyaan asliSaya membeli buku Matematika Diskrit dan terdapat materi yang didalamnya meliputi:1. Logika2. Himpunan3. Matriks, relasi, dan fungsi4. Induksi Matematik5. Algoritma dan Bilangan Bulat6. Kombinatorial dan Peluang Diskrit7. Aljabar Boolean8. Graf9. Pohon10. Kompleksitas AlgoritmaNamun saya kurang mengerti dalam pengimplementasian-nya, Mohon penjelasannya 🙏 Matematika Diskrit adalah salah satu ilmu yang sebenarnya cukup berguna di dunia pemrograman, namun sayangnya banyak pengajar (termasuk dosen) menjelaskan ilmu ini dengan konvensi dan cara yang terlihat kurang relevan dengan dunia pemrograman saat ini, misalnya penggunaan simbol A ∪ B daripada A && B dan ¬S daripada !S. Tujuan untuk belajar soal Logika dan Aljabar Boolean ini sebenarnya cukup jelas: agar kamu dapat memahami cara menggunakan perintah IF-ELSE dan operator Boolean secara baik dan benar. Di sini saya bakal kasih contoh sebuah function untuk mengecek apakah bilangan a, b, dan c berurutan dari yang terkecil hinga teratas: // Bahasa C #include <stdio.h> int main(){ int a = 3, b = 4, c = 9; // Perhatikan penggalan berikut ini if (a <= b && b <= c){ puts("Berurutan!"); } else { puts("TIDAK berurutan!"); } return 0; } Pertanyaannya di sini adalah, apa yang harus diubah sehingga perintah puts("Berurutan!")lah yang ditaruh di dalam bagian else dan sebaliknya. Dari materi Logika inilah kita mengetahui bahwa negasi dari A ∩ B (A dan B), yakni ¬(A ∩ B), sebenarnya sama dengan (¬A) ∪ (¬B) (tidak A atau tidak B). Sehingga, penggalan IF-ELSE tersebut dapat ditulis ulang sebagai: if (!(a <= b) || !(b <= c)){ puts("TIDAK berurutan!"); } else { puts("Berurutan!"); } Dan karena penggalan !(a <= b) sebenarnya sama saja dengan a > b atau b < a, maka hal tersebut dapat dipersingkat lagi menjadi: if (a > b || b > c){ puts("TIDAK berurutan!"); } else { puts("Berurutan!"); } Kemudian, materi Pohon, Graph, dan Matriks juga sangat berguna untuk memahami berbagai jenis struktur data yang sering dipakai dalam dunia pemrograman sehari-hari. Jika kamu berminat untuk mengolah gambar menggunakan pustaka/library OpenCV, kamu nantinya akan sering bermain-main dengan transformasi Matriks yang mungkin kamu sudah kenal saat duduk di bangku SMA atau bahkan SD. Sedangkan, Pohon (khususnya Pohon Biner / Binary Tree) merupakan salah satu topik yang paling sering ditanya saat kamu melamar pekerjaan di dunia software engineer. Mengapa? Karena struktur data tersebut kini masih berguna untuk melakukan pengurutan/penyortiran dan pencarian kumpulan data yang jauh lebih efisien daripada menggunakan deretan Array maupun Linked List. Kalau kamu berminat dalam dunia keamanan siber (Cyber Security), kamu mau tidak mau harus memahami tentang Graph karena melalui Graph, kamu bisa memetakan relasi antara sebuah informasi dengan informasi lainnya untuk membantu kamu melancarkan proyek investigasi kamu. Oh iya, fitur navigasi dalam aplikasi peta seperti Google Maps juga tidak dapat dibuat secara efisien tanpa pemahaman soal Graph yang lebih kompleks dan mendalam. Saya sebenarnya belum bisa menjawab hubungan antara semua bab yang kamu sebutkan dengan dunia pemrograman sehari-hari. Tetapi, ada beberapa hal lagi yang cukup penting: Himpunan bakal sangat berguna bagi kamu baik dalam dunia pemrograman berbasis objek (OOP) serta Database, karena nantinya kamu harus mencari hubungan-hubungan antar sebuah objek dengan objek lain, sebuah tabel/entity di dalam database dengan tabel/entity lain, dan hubungan antara himpunan data dengan himpunan data lain. Dan tentunya, Kombinatorial, Peluang Diskrit, dan Kompleksitas Algoritma cukup penting juga untuk dipahami. Karena sebagai pemrogram/programmer yang baik kita tentunya tidak hanya membuat algoritma yang tepat, tetapi juga efisien baik dalam penggunaan memori maupun waktu. Dengan memahami ketiga hal tersebut, kamu dapat menentukan apakah algoritma yang kamu buat terasa berlebihan dalam menggunakan perintah-perintah pada komputer. Demikian jawaban saya. Terima kasih.

2021-10-20 15:04:00

Menambahkan array baru pada object array

Artikel ini merupakan jawaban saya terhadap salah satu pertanyaan pada situs, sebuah forum dan komunitas para developer di Indonesia. Lihat pertanyaan asli Pertanyaan Saya punya list data berdasarkan tahun, dimana list data tersebut dicek apakah list data tersebut setiap tahun ada datanya atau tidak… jika list data tersebut tidak ada data.nya, maka tambahkan object baru… ini codingannya saya : $data = [ [ 'hak' => '12', 'tambahan' => '6', 'sisa' => '12', 'tahun' => '2019' ], [ 'hak' => '12', 'tambahan' => '6', 'sisa' => '12', 'tahun' => '2021' ] ]; $tahun = [ '2019', '2020', '2021' ]; for($i=0;$i<count($tahun);$i++){ $tahun == $tahun[$i]; $filterData = array_filter($data, function($entry) { global $tahun; return $entry['tahun'] == $tahun; } ); $newdata = [ 'hak' => '12', 'tambahan' => '0', 'sisa' => '0', 'tahun' => $tahun ]; if(count($filterData)==0){ $data = array_push($newdata); } } return $data; Hasil yang diinginkan seperti ini: [ { hak: '12', tambahan: '6', sisa: '12', tahun: '2019' }, { hak: '12', tambahan: '0', sisa: '0', tahun: '2020' }, { hak: '12', tambahan: '6', sisa: '12', tahun: '2021' } ] Tetapi setelah saya jalankan codinganya, muncul error seperti ini : array_filter() expects parameter 1 to be array, null given Jawaban Halo, kalau saya lihat kamu salah menggunakan array_push(): $data = array_push($newdata); cara yang benar untuk memakainya adalah array_push($data, $newdata); karena fungsi array_push() akan mengembalikan return value berupa jumlah isi di dalam array yang sudah dimerge, bukan array yang sudah digabungkan tersebut. Makanya muncul error itu.

Reinhart Previano Koentjoro
Reinhart Previano Koentjoro
Citra Manggala Dirgantara
Citra Manggala Dirgantara

A Reinhart company