Blog

  • Log Api Request di Java

    Logging merupakan hal yang mudah dan mendasar di bahasa pemrograman apapun. Meskipun terkesan sepele, seringnya logging sangat membantu di berbagai situasi, terutama debugging. Umumnya, kita panggil fungsi log di titik titik yang penting, seperti error, atau case case tertentu. Informasi yang di log juga bermacam – macam. Bisa kalimat tertentu, error, dan lainnya.

    Kali ini, saya ingin membagikan cara logging api request. Api request di sini yang dimaksud adalah http request yang masuk dan juga keluar ke sistem kita.

    Caranya, tinggal pasang dependency logbook. Logbook ini merupakan library yang diperuntukkan untuk log http request. Library ini bisa log request secara komplit, lengkap dengan header, body request, durasi, dll. Pemasangannya pun sebetulnya mudah, ada basic setup seperti lokasi log, masking data, dll.

    Audit log seperti ini cukup penting jika sistem kita perlu berhubungan dengan sistem lain, misal payment gateway, ERP , atau apapun itu. Kita bisa melihat secara utuh sebetulnya request dan responsenya seperti apa.

  • Cara Kill Java Service

    Langkah – langkah kill / stop java service.

    1. Gunakan command jps atau jcmd untuk melihat service apa yang sedang jalan.
    2. Eksekusi stop dengan kill -15 pid, misal

  • Deploy Flutter Web di Jagoan Hosting

    Deploy Flutter Web di Jagoan Hosting

    Salah satu fitur Flutter yang menarik adalah membuat aplikasi web. Secara singkat, kita dapat melakukan kompilasi source code kita yang biasanya menjadi menjadi aplikasi mobile, kini menjadi aplikasi web. Tentunya dengan sedikit modifikasi di beberapa tempat.

    Aplikasi web yang dihasilkan termasuk Single Page Application atau yang biasa disebut SPA. Outputnya juga sebetulnya html dan beberapa file js dan assets ( image , font dll). Sehingga proses deploymentnya juga tidak berbeda jauh dengan proses deployment SPA pada umumnya.

    Di tulisan kali ini akan membahas bagaimana langkah – langkah deployment aplikasi web Flutter ke Jagoan Hosting. Jagoan Hosting merupakan penyedia layanan jasa hosting, domain dan vm. Beberapa tautan merupakan tautan afiliasi Jagoan Hosting. Saya akan mendapat komisi jika Anda menggunakan jasa Jagoan Hosting dalam syarat dan kondisi berlaku.

    Untuk menyederhanakan pembahasan, beberapa hal tidak saya bahas di tulisan kali ini, dan saya berasumsi pembaca mengetahui atau mempunyai beberapa hal berikut

    1. Aplikasi Flutter yang siap dideploy ke web
    2. Paham mengenai konsep hosting
    3. Pembaca masih awam dalam menggunakan Flutter atau menggunakan Flutter dalam skala hobby atau belajar.
    4. Mempunyai akun Jagoan Hosting, jika belum bisa daftar di sini. Harga dimulai dari Rp. 15.000 / bulan !

    Time needed: 15 minutes

    Secara konsep, deployment aplikasi web Flutter sama dengan deployment aplikasi SPA. Kita hanya perlu mengupload file yang dihasilkan langsung ke hosting

    1. Build aplikasi web

      Jalankan command flutter build web dan tunggu sampai selesai build. Hasil dari build akan tersimpan di folder /build/webterminal build aplikasi web flutter

    2. Compress File

      Compress semua file dan folder yang terbentuk. Compress ke dalam satu file zip. Untuk aplikasi sederhana, kira – kira akan berukuran belasan mb.

    3. Login ke Cpanel di Jagoan Hosting

      Login ke dashboard kemudian pilih menu layanan dan buka Cpanel

    4. Buka File Manager

      Buka menu File Manager. File Manager akan terlihat di menu sisi kiri.

    5. Upload File Zip

      Pilih folder yang akan kita tuju. Sebagai contoh saya akan deploy ke https://qrtool.mahaat.id/ sehingga saya perlu upload file zip ke folder qrtool.mahaat.id . Kemudian extract seperti pada gambar.

    6. Verifikasi File Terdeploy

      Sekarang aplikasi web yang Anda buat seharusnya sudah terdeploy, langkah terakhir adalah akses lewat domain Anda, apakah sudah terdeploy dengan baik atau belum

    Cukup singkat bukan langkah – langkah deploymentnya ? Akhir kata terima kasih sudah menyimak tutorial singkat ini. Semoga berguna untuk Anda.

  • Tips Belajar Programming untuk Non IT

    Tips Belajar Programming untuk Non IT

    Programming kian hari menjadi salah satu skill yang sangat berharga. Bahkan untuk orang – orang yang bekerja tidak di dunia IT, kemampuan programming dapat membantu dalam bekerja. Misalnya saja, membuat macros di excel atau google sheet.

    Belakangan banyak juga perusahaan IT yang membuka bootcamp untuk orang – orang non IT. Bootcamp itu semacam kursus singkat yang tujuannya mencetak digital talent. Semacam software developer, atau data scientist dll. Memasuki dunia IT serta belajar programming tentunya suatu tantangan yang cukup berat. Apalagi untuk orang yang tidak bersekolah atau kuliah di jurusan yang berbau IT. Tidak jarang dalam bootcamp tersebut materi tidak terpahami dengan baik atau malah tereliminasi karena tidak sanggup mengerjakan tugas atau ujian.


    Berbekal pengalaman pernah ikut bootcamp dan sudah beberapa tahun bekerja sebagai software engineer, berikut ada beberapa tips buat kamu.

    Beli Laptop atau PC

    person using black laptop computer
    Selain buat ngoding, laptop bagus bisa juga buat flexing

    Mempunyai laptop atau pc yang mumpuni secara performa ini sangat penting sih menurutku. Okelah sekarang bisa code lewat mobile app ataupun browser, tp banyak hal yang ga didapat dari sana, misalnya belajar cara setup environment, IDE yang lebih bagus, belajar koneksi dengan database, dll.

    Laptop atau pc yang bagus tentu ada harganya. Tips dari saya, kalau belum punya dan berencana untuk beli, pastikan saja dulu spek cpu, ram dan hardisknya sesuai kebutuhan. Kalau menurutku spek cpu i5, ram 16gb dan hardisk ssd (512 gb ke atas) itu sudah cukup. Kalau dikurangi speknya, berarti kesabaran kamu yang perlu ditambah. Sebagai contoh, jika kamu belajar java, baik untuk backend atau mobile app, semakin bagus cpu maka semakin cepat pula compile aplikasinya. Ga jarang ketika nanti bekerja, aplikasi yang dicompile bisa cukup memakan waktu.

    Baru atau bekas, ya menurut saja tergantung budget sih. Kalau laptop bekas masih ada di range sekitar 6 – 7 jutaan, masih ok lah untuk belajar. Terus, apakah harus mac ? ya enggak juga sih.

    Kenali Cara Belajarmu

    bible page on gray concrete surface

    Setiap orang punya cara masing – masing buat belajar. Beruntungnya, kalau materi tentang programming itu banyak dan tersebar di berbagai media. Paling banyak tentu youtube, ebook, blog, kursus – kursus, serta grup atau komunitas. Media – media tersebut sebetulnya punya karakteristik sendiri – sendiri, ada kelebihan dan kekurangannya.

    Youtube

    Di youtube, umumnya video tutorial tentang membuat sesuatu. Biasanya sih yang dibahas hanya pengantar saja, misalnya seperti How to Install Python on Mac, Learn tailwind css in 10 minutes, Functional programming in Java dst. Konten – kontennya cukup ringan dan tutorial instruksinya pun cukup enak dipahami. Kalau yang sedikit berat itu biasanya video tentang konferensi, semacam GOTO Conference, React Conf dst

    Ebook & Blog

    Kalau ebook ini biasanya suatu topik dikupas secara mendalam. Aku sangat menyarankan kalau sudah merasa nyaman dengan programming, bisa mendalami dengan baca buku. Banyak sekali wisdom – wisdom terkait programming yang bisa kita aplikasikan untuk bekerja. Jika merasa beli buku terlalu mahal (harga umumnya 700 ribuan) bisa subscribe saja. Aku punya tips, subscribe lewat ACM, bayar membership 25$ pertahun, nanti dapat akses ke oreilly.

    Kursus

    Kursus ini biasanya berisi video instruksional. Ini sangat bagus kalau bisa mengikuti dengan rajin. Biasanya orang beli kursus tp tidak dipelajari, atau hanya kuat beberapa video aja. Kursus ini sudah banyak sih, ada udemy, atau dicoding kalau indonesia. Bagusnya dari kursus sebetulnya instruksinya sangat rinci dan di akhir pembelajaran ada outputnya.

    Grup dan Komunitas

    Kalau kamu tipe orang yang suka berinteraksi sosial, grup dan komunitas itu sudah banyak di Indonesia. Paling mudah buat mencari grup itu di facebook dan telegram. Selain belajar, di grup dan komunitas juga umumnya ada loker untuk full time atau free lance. Hal yang harus digaris bawahi adalah komunitas itu punya aturan. Kita harus ikuti aturan yang ada, jangan sembrono. Jangan cuma posting error saja tanpa code, karena di grup itu isinya programmer, bukan dukun.

    Nah, dari sekian media di atas, sekarang kamu setidaknya bisa memilah milah mana yang sesuai dengan komitmen finansial dan waktu kamu. Semisal memang maunya gratis dan ga lama, bisa youtube atau grup aja. Kalau memang ada dana dan cukup waktu, bisa kursus atau baca buku.

    Programming Challange

    Cobalah daftar di situs programming challange seperti hackerrank. Di situ nanti akan ada berbagai soal, dari algoritma, struktur data, sql, tentang bahasa dan kita diminta membuat code untuk jawabannya. Biasanya kita bisa bebas memilih mau menggunakan bahasa apa saja.

    Cari Best Practice

    Best practice itu sebuah kebiasaan yang secara umum diterima dan menghasilkan hal yang terbaik. Misalnya gini, kamu sedang belajar bahasa Java. Best practice nya adalah pakai IDE. Ya sebetulnya pakai text editor seperti notepad atau vs code saja bisa, tapi lebih mudah menggunakan IDE. Apakah pakai IDE itu udah terbaik ? ya mostly, kalau pakai text editor nanti akan kehilangan fitur – fitur seperti auto import, intellisense, dst.

    Hal – hal seperti ini biasanya dicari lewat interaksi dengan teman atau senior. Juga biasanya ketemu di komunitas.

    Jangan Takut Error

    text
    Error itu yang merah – merah

    Error ketika sedang coding itu sudah umum terjadi. Jadi ga perlu takut dengan adanya error itu, lebih baik belajar cara mencari akar permasalahannya kenapa error itu muncul. Biasanya awal – awal belajar programming akan sering muncul error dan bingung bagaimana harus menghadapi. Kalau sedang mengikuti tutorial, ikutilah dengan teliti. Bisa jadi erornya itu sederhana karena typo saja, atau ada step yang terlewat.

    Kalau error muncul, cara paling cepat ya baca stacktracenya, ada urutan kejadian kenapa error bisa muncul. Kedua, googling, umumnya error itu orang lain sudah mengalami, jadi sudah ada solusinya.


    Programming itu luas, apalagi perkembangan teknologi yang semakin cepat. Bisa jadi kita sudah matang dengan cara programming kita saat ini, tapi 5 tahun kedepan jadi usang, tergantingan yang lain. Bagaimanapun, kemampuan untuk belajar itu jadi kunci untuk saat ini dan kemudian hari.

    Semoga tulisan kali ini membuka wawasan kamu tentang apa saja yang perlu diperhatikan untuk belajar. Semoga sukses dalam belajarnya. Terima kasih.

  • Menggunakan Method Filter Array Javascript

    Menggunakan Method Filter Array Javascript

    Filter array merupakan salah satu method array pada Javascript. Method tersebut digunakan untuk ‘menyaring’ isi array dengan suatu kondisi. Maksudnya, kita bisa mengambil data dari array dengan kondisi tertentu. Return dari method ini adalah array baru, dan tidak mengubah isi array yang lama. Biasanya, method filter mudah digunakan dengan method map dan reduce.

    Di kesempatan kali ini saya akan memberikan contoh – contoh penggunaan method filter array tersebut.

    Contoh 1

    Misalkan kita ingin mengambil data dari array berisi number, kita ambil hanya data yang bernilai genap. Dengan method .filter, kita bisa code seperti ini :

    const example1 = [1, -3, 5, -12, 20, 88, 69 , -121]
    
    const odd = example1.filter( v => {
      const remainder = v % 2
      return Math.abs(remainder) === 1
    })
    
    console.log(odd)
    // return [ 1, -3, 5, 69, -121 ]

    Ingat, agar method filter bisa benar berjalan, argumen yg diberikan harus function yang memiliki return value. Kalau return value tersebut bernilai truthy, maka object saat iterasi lolos dan masuk ke array yang di return oleh method filter. Contohnya, saat nilai v = 5, maka function mereturn true, maka di hasilnya ada angka 5.

    Contoh 2

    Melanjutkan contoh di atas, sekarang kita coba callback function nya dengan argument index.

    const odd2 = example1.filter( (v, idx) => {
      const remainder = v % 2
      return Math.abs(remainder) === 1 && idx > 3
    })
    
    console.log(odd2)
    // [ 69, -121 ]

    Dari contoh di atas, argumen callback functionya adalah v, idx. v itu currentValue, sedangkan idx itu index. Ya argumenya bisa kamu ganti dengan nama yang lain. Sebenarnya method filter punya 3 argumen, currentValue, index, dan array.

    Cukup sekian tips kali ini. Kamu bisa mengakses contoh di atas langsung dari browser di replt.it . Saya lanjutkan lain waktu.

  • Cara Menambahkan Padding pada String

    Kali ini saya akan membagikan tutorial bagaimana cara menambahkan padding pada string di Javascript. Biasanya, kasus ini terjadi di penomoran. Kasusnya, kira – kira seperti ini, misalkan ada sebuah surat dengan nomor 32, tetapi harus ditampilkan 6 digit, dengan digit lainnya 0, jadi 000032. Nah untuk kasus seperti itu, bisa kita gunakan method padStart.

    Untuk kasus di atas, kita bisa menyelesaikan dengan cara seperti ini

    const nomor = '32'
    const padded = nomor.padStart(6, '0')
    // padded bernilai '000032'

    Method padStart merupakan method dari string. Parameter pertama adalah panjang string yg diinginkan, yg kedua adalah character yg akan ditambahkan. Untuk parameter kedua, jika dikosongkan, akan bernilai default, yaitu spasi.

    const nomor = '32'
    const padded = nomor.padStart(6)
    // padded bernilai '    32'

    Kalau variable nomor tersebut merupakan number, maka kita perlu ke string dahulu.

    const nomor = Number(32).toString()
    const padded = nomor.padStart(6,'0')

    Method padStart merupakan method dari string, jika tipe data variable nomor di atas masih number, akan terjadi runtime error.

    Sekian tutorial singkat ini, semoga bermanfaat.

  • Cara Mencari Object di Array Javascript

    Seringkali di dalam flow program kita, kita diharuskan mencari object tertentu di dalam sebuah array. Mencari sebuah object di dalam javascript sebetulnya mudah dengan adanya method .find . Di sini saya akan tunjukkan bagaimana caranya.

    Misalkan ada data seperti ini.

    const people = [
      {
        id: 1,
        name: 'Andi',
        location: 'Jakarta'
      },
      {
        id: 2,
        name: 'Budi',
        location: 'Jakarta'
      },
      {
        id: 3,
        name: 'Ani',
        location: 'Yogyakarta'
      },{
        id: 4,
        name: 'Boby',
        location: 'Bandung'
      }
    ]

    Kalau kita butuh data location dari array people dengan id bernilai 4, maka codenya begini

    const person = people.find( v => v.id == 4)

    Person akan bernilai,

    {
        id: 4,
        name: 'Boby',
        location: 'Bandung'
      }

    Nah, kalau data yang mau kita cari ga ada, nanti person akan bernilai undefined . Perlu cek setelah find, apakah datanya ada atau tidak.

    Ingat, di code saya menuliskan function v => v.id == 4 . Variable v itu cuma sekedar nama aja biar ga kepanjangan, kalau mw lebih meaningful, ya tulis person juga gapapa.

    Pertanyaan selanjutnya, bisa ga kita find berdasarkan property name ? Tentu kalau name itu unik, bisa. Kodenya jadi begini

    const person1 = people.find( v => v.name == 'Ani')

    Kira kira seperti itu cara untuk mencari object di array. Mungkin lain waktu saya akan berikan contoh pencarian yang lebih kompleks.

  • Typing.com : Belajar Ngetik Sepuluh Jari

    Kebanyakan orang, kalau ngetik itu ya sebelas jari. Seringnya, kalau orang jarang pegang komputer pasti kalau ngetik, tanganya kayak akrobat gitu di atas keyboard. Ga efisien, ga bisa kepakai semua jari, yang kepakai ya jari2 yang itu2 aja, nah yang model begitu namanya ngetik sebelas jari. Udah bikin capek, diliat enggak enak, ngetiknya juga salah – salah. Beda lah sama yang bisa sepuluh jari. Orang – orang yang bisa ngetik sepuluh jari itu biasanya terkenal lho. Terkenal cupu, terkenal bisa ngetik 10 jari. Tapi ya jangan dipikir sebaliknya, kalau mau bisa ngetik sepuluh jari kudu cupu. Saya contohnya, hehehe

    Kalau dipikir- pikir yah, jaman sekarang banyak banget pekerjaan yang butuh ngetik di komputer. Bukan cuman pekerjaan yang bidang IT aja yang ketemu komputer terus, tp yang non IT ya ngga ? . Seenggaknya nulis skripsi deh, pasti ngetik panjang dan lama kan.

    Hal yang lucu, adalah orang itu sering banget aware kalau dirinya itu ga bisa ngetik sepuluh jari. Katrok lah ngetiknya tapi ya tetep ga berusaha gitu buat belajar ngetik yang baik. Ujung – ujungnya, kalau lagi ngetik terus diliatin temenya , ntar bilang “Ngetikku masih sebelas jari, hehehe”.

    Cara Belajar Ngetik 10 Jari

    Waktu awal – awal mulai kerja, saya punya banyak waktu kosong. Meskipun saya developer, ngetik saya juga ampas. Nah di sela – sela waktu yang kosong itu, saya kadang main type racer sama temen. Type racer itu situs buat nguji seberapa cepet ngetikmu, dengan cara dibalapin sama – orang – orang. Ya gampangnya game balapan ngetik. Nerd bgt ya wwkowkwkwo.

    Singkat cerita, gue dikasi tau soal situs typing.com . Typing.com itu situs kursus buat ngetik. Nah gue coba – coba lah. Setelah gue coba – coba, ternayata gue baru sadar cara ngetik gue sekatrok itu. Ternyata ada teorinya, kayak semacem huruf G itu pakai telunjuk kiri, huruf N pakai telunjuk kanan, terus gunanya shift kiri dan shift kanan. Banyak ternyata.

    Home Page Typing.com

    Fitur Typing.com

    Ada beberapa fitur dari typing.com yang menurut gue pribadi pas bgt buat kursus ngetik kayak gini. Beberapa diantaranya :

    • Ada animasi cara ngetik yang bener
    • Kursus dibagi dari level Beginner sampe Advanced
    • Bisa ngetrack progress kita
    • Ada fitur kursus, ada yang game juga
    • Ada halaman statistik kemampuan.
    Tampilan Task

    Pengalaman Belajar di Typing.com

    Strategi belajar gue waktu itu sebenernya sederhana aja, kerjain beberapa tasknya setiap hari. Dalam waktu 10 – 15 menit tuh gue bisa lah dapet sekitar 5 task gitu. Terus, gue juga ambil dari level paling bawah, yaitu yang level beginner. Gue lakuin kira – kira sampe sebulan apa ya. Gue pokoknya ngerjain semua tasknya kecuali sampai numpad (karena laptop gue ga da numpad). Pokoknya gue konsisten tiap hari ngerjain itu tasknya.

    Hal yang gue rasain pas ngerjain tasknya sih, yang jelas awalnya aneh banget karena pas kerja, jadi keinget teori – teorinya. Inget harus ini inget harus ite, jadi malah lambat. Tapi lama – kelamaaan enggak sih, terbiasa gitu.

    Profi Gue yang ga bagus – bagus banget

    Alhasil, ngetik gue sekarang ya ga kayak dulu lagi. Seenggaknya udah ga geser – geser liar lagi kek dulu, udah lumayan ga capek juga. soal kecepatan, ngetik gue malah ga cepet sih sebenernya. Jadi jangan harap abis lo bisa ngetik 10 jari terus sok ide mw ikut typing competition dan berharap menang. Kursus kek typing.com itu bukan buat kecepatan, tapi daya tahan, biar lo kuat ngetik dari jam 9 ampe jam 5.

    Gue bkin tulisan ini karena gue kasian ama mereka yang ngetik aja tangannya lompat – lompat. Gue harap lo bisa lah lancar juga.

    See you next time 🙂

  • Quick Tips : Cara Menghapus console.log di VsCode

    Quick Tips : Cara Menghapus console.log di VsCode

    Kebetulan di kantor gue lagi ngerjain website. Pakai Angular ceritanya. Nah karena orangnya pada males (termasuk gue) kodinganya jadi kayak gini nih

    if (oo.noGaji != sppBackup.noGaji) {
              let listAllUpdate = new Array<ExtSpmRgjWrapper>();
              this.currentSPP.noGaji = oo.noGaji;
              if (this.currentSPP.kdJnsPegawai === PembayaranConstants.JenisPegawai.PNS) {
                await this.resetWrapperGaji(oo);
    
                console.log('oo ubah akun pengeluaran ', oo);
    
                this.list = await this.rgjUtils.generateAkunPengeluaran(oo, this.currentSPP.kdJnsPegawai);
    
                if (!this.isKoreksi) {
                  console.log('current list pengeluaran : ', this.currentSPP.listAkunPenerimaan);
                  if (this.currentSPP.listAkunPengeluaran != null && this.currentSPP.listAkunPengeluaran.length > 0 ) {
                    this.currentSPP.listAkunPengeluaran = [];
                    console.log('masuk list pengeluaran tidak null');
    
                  }
    
                  if (this.list != null && this.list.length > 0 ) {
                    for (const distribusiCoaWrapper of this.list) {
                      this.currentSPP.listAkunPengeluaran.push(distribusiCoaWrapper);
                    }
                  }
                }
                console.log('list init ubah : ', this.list);

    Keliatan ga ? Yups nyepam console.log. Ini ga di satu file, tapi semuanaya banyak yang pakai model ginian. Jeleknya, belum ada class loggernya, jadi loggernya masih manual kaya gitu, hehehe.

    Nah karena emang ada tuntutan untuk ngehapus logger, ya mau ga mau dihapus dong, sebanyak apapun juga.

    Berhubung pakai VsCode, ini ada sedikit trik dari gue buat ngehapus logger yang bejibun itu, yaitu hapus pakai find.

    Kayak gini

    Masukkan pattern dan find all

    Hapusnya lewat find terus pilih opsi regex. Masukan patternnya ini : console.log((.+));{0,1}

    Setelah di replace all

    Sekali klik replace all, langsung kehapus semua loggernya, hehehe

    Ya, itu aja untuk postingan pertama ini. Have a nice day 🙂