Skip to main content

Posts

Belajar Continuous Integration (CI) di Gitlab untuk Testing Flask Application

Setelah mencoba sedikit mempelajari mengenai testing, sekarang saya mencoba belajar apa itu Continuous Integration (CI) dalam suatu siklus pengembangan perangkat lunak ( software development ). Secara sederhana, CI (yang biasanya dikombinasikan dengan CD menjadi CI/CD, continuous integration/continuos delivery ) yaitu suatu upaya meng-otomasi pekerjaan rutin developer setelah kode selesai ditulis. Biasanya, developer akan melakukan push kode ke remote repository (biasanya di branch selain mater/main branch) untuk kemudian dilakukan merge dengan master branch. Nah, untuk memastikan bahwa kode yang akan di-merge (digabungkan) dengan kode utama adalah kode yang benar dan telah teruji biasanya developer akan melakukan test terlebih dahulu terhadap kode yang telah ditulis. Apabila dalam sehari seorang developer bisa melakukan puluhan kali update/push kode ke repo, maka bisa dipastikan dia akan melakukan "pekerjaan berulang" yang lumayan "membosankan" tapi perlu dilakukan

Cara Membuat fungsi/tombol download dengan Flask

Masih melanjutkan catatan sebelumnya, kali ini saya mendokumentasikan cara membuat fungsi/tombol download file dengan Flask. Kali ini saya belajar membuat tombol download file di Flask. Bagaimana caranya?  Masih ingat saat kita upload file ke server seperti ini? Ya, pada saat upload file maka dari file objek yang didapat, akan diekstrak filename dan juga original extension dari file tersebut. Di sini saya mengubah nama file yang akan disimpan ke folder upload dengan nama random supaya tidak mudah ditebak pattern nama filenya, sekaligus menggunakan filename yang random tersebut untuk membuat qrcode (sehingga nanti memudahkan retrieve file). (Di sini sy ternyata masih kurang dalam membuat perintah untuk melakukan cek apakah nama file tersebut sudah ada di dalam folder, karena jika ada semestinya fungsi akan membuat nama file random yang baru). Setelah itu, untuk downloadnya cukup mudah yaitu dengan kode seperti ini.  Oke.. semga bermanfaat! :)

Belajar Testing Flask Application dengan pytest dan pytest-cov

Kali ini saya belajar membuat dan melakukan test sederhana untuk web app berbasis Flask yang saya kembangkan. Sekedar merefresh kembali, saya mengembangkan sebuah aplikasi web sederhana berbasis Python dan Flask untuk unit UPPM di kampus tempat saya bekerja. Sebagai seorang newbie , novice , pemula atau apalah namanya, saya mencoba belajar melakukan kerja coding sesuai best practices yang ada di kalangan dunia pemrograman komputer/IT. Nah, salah satu komponen dalam best practices tersebut adalah software testing . Ini sama sekali baru untuk saya yang tidak berasal dari latar belakang pendidikan IT. Meskipun demikian Alhamdulillah dengan ikut bootcamp kemarin dan mengikuti berbagai forum diskusi online maupun offline tentang IT sedikit banyak cukup membantu mencari tahu apa saja komponen yang penting dalam tahapan software development. Karena aplikasi web yang saya buat berbasis Python dan Flask, maka setelah saya searching kesana kemari dan membandingkan library seperti unittest dan p

Cara Menampilkan QRCode di web app berbasis Flask dengan Flask-QRcode 3.0.0

Catatan ini juga merupakan catatan lanjutan dari catatan sebelumnya. Masih membahas web app yang sama, salah satu fungsi/fitur yang sempat saya coba adalah implementasi qr code. Library / Python module yang dipakai adalah Flask-QRcode 3.0.0. Case-nya adalah user melakukan pendaftaran proposal serta melakukan upload dokumen proposal. Sebagai tanda bukti bahwa user telah melakukan pengajuan proposal, user perlu mendapatkan tanda yang dilengkapi dengan qrcode untuk memberikan identitas unik. Solusi Solusi yang coba saya lakukan di web app yang saya buat adalah dengan memanfaatkan modul Flask-QRcode 3.0.0. Modul ini cukup simple pemakaiannya sehingga saya pilih. Setup awal dimulai dari Modelnya (models.py), dimana saya akan menyimpan urifile dan filename yang didapatkan dari form yang kita susun di forms.py, lalu di dalam routes.py urifile akan diproses untuk mendapatkan nama file dan ekstensi, kemudian file object dari urifile form juga akan disimpan dengan method save ke sebuah folder &#

Belajar Coding Intensive Bootcamp Online 300 ribuan selama Sebulan dapat apa saja?

Sekedar catatan sedikit tentang apa yang saya pelajari saat mengikuti online intensive coding bootcamp kelas project React Native selama sebulan kemarin. Pada umumnya cukup menantang karena setiap hari harus catch up dengan materi yang diberikan dan tugas harian (ya, tugasnya pun setiap hari, jadi peserta mau tidak mau harus coding tiap hari). Selain itu ada quiz tiap akhir pekan atau dalam kasus kelas project tiap akhir pekan harus menyelesaikan Mini Project yang merupakan bagian dari Final Project. Lalu apa saja yang dipelajari selama sebulan tersebut? (dengan biaya Rp 300 K itu? *atau Rp 200K karena saya dapat voucher 100rb). Beberapa hal yang saya pelajari: SplashScreen dan onBoarding  Register (dengan OTP)  Login (dengan JWT ke API Sanbercode, Google Sign In dengan firebase, serta local sign in dengan sidik jari / fingerprint)  Passing data dengan menggunakan route.params melalui navigation, passing data dengan konteks ({useContext}) serta melalui props  Home Page kekinian meman

Cara Upload File ke server dengan Flask-WTForm

Tulisan pendek ini membahas implementasi saya saat membuat aplikasi web untuk salah satu unit di kampus dimana saya diamanahi tugas tambahan. Saya mencoba membuat aplikasi sederhana untuk pendaftaran proposal penelitian dan PkM dengan teknik rapid prototyping menggunakan Flask. Salah satu problem yang harus dipecahkan yaitu bagaimana cara Upload File ke server dengan Flask-WTForm. Saya membangun web app tersebut dengan Flask. Alasannya sederhana, saya menyukai kesederhanaan yang dimiliki Flask micro-framework. Kalau digambarkan dengan 3 kata poin menarik yang dimiliki Flask itu: simplicity , straightforward , dan highly scalable . Setidaknya ini dari sudut pandang pemula seperti saya. Simple karena kodenya pendek tapi powerful. Aplikasi yang dibangun sudah bisa jalan dengan kode yang pendek. Straightforward karena pas coding ya to the point aja langsung ke problem yang mau diatasi. Flow data juga jelas karena pattern-nya MVC yang familiar (ini kalau saya bandingkan dengan di React Nati

Cara atau Solusi Mengatasi java.lang.OutOfMemoryError :app:mergeDexRelease FAILED saat Build APK di React Native

 Pernah mengalami error java.lang.OutOfMemoryError :app:mergeDexRelease FAILED saat Build APK di React Native? Ente nggak sendirian Ndan .. Saya juga pernah mengalami error serupa..   Cara mengatasi / solusi / obatnya ternyata cukup simple. Untuk memastikan bahwa pada saat build APK/AAB tidak terjadi OutofMemory error, kita bisa melakukan setting pada file gradle.     Nah, udah tenang kalau sudah ada build successfull hehe.. Semoga bermanfaat..