Pernah denger kalau sekitar 70% celah keamanan kritis software modern itu asalnya dari bahasa C? Iya, bahasa yang udah jadi fondasi internet ini 😅. Yuk, kita bedah duel filosofi Rust vs Zig dan cari tahu mana yang pas buat proyek kalian!
Daftar Tulisan
Jelajahi semua tulisan yang ada.
Udah tahu kenapa rate limiting itu wajib, tapi masih bingung beda Token Bucket, Leaky Bucket, Fixed Window, dan Sliding Window? Yuk, kita adu empat algoritma ini bareng-bareng dan cari tahu mana yang paling pas buat API kalian!
Pernah nggak kalian lihat pesanan udah masuk database, tapi email konfirmasinya nggak pernah kekirim? Itu gejala dual-write problem. Yuk, kita bedah Transactional Outbox Pattern biar data dan event kalian nggak lagi berselisih paham!
Pernah nggak sih, worker kalian nolak satu pesan terus-terusan sampai CPU melonjak 100%? Itu namanya poison message loop, jebakan klasik di RabbitMQ. Yuk, kita bahas cara pasang retry policy dan dead letter queue yang bener!
Semua pod kalian hijau Running, tapi pengguna malah disambut 502 Bad Gateway? Atau seluruh pod restart barengan gara-gara database lagi lambat? Salah kaprah soal probe bisa jadi biangnya. Yuk, kita bongkar bareng!
Klaster Elasticsearch kalian rakus RAM dan boros storage, ya? Padahal nggak semua kata di log perlu diindeks, lho. Yuk, kita kenalan sama duet Grafana Loki dan Vector yang jauh lebih ramah kantong!
Satu klik Checkout di backend kalian bisa memicu puluhan network call antar-service, tapi pas ada yang lambat, service mana sebenernya yang salah? Log aja nggak cukup buat njawab itu. Yuk, kita bedah Distributed Tracing!
Tabel transaksi kalian udah nembus miliaran baris dan tiap query laporan bikin CPU melonjak 100%? Sebelum asal pecah data, yuk kita pahami dulu beda sharding sama partitioning!
Seribu orang ngeklik "Beli Sekarang" di detik yang sama buat rebutan 1 tiket terakhir. Kira-kira apa yang bakal terjadi di server kalian? Yuk, kita banding pessimistic sama optimistic locking!
Pernah nggak sih, abis kalian nge-deploy backend, beberapa detik kemudian monitoring malah banjir alert 502 Bad Gateway dari pengguna? Saldo udah kepotong tapi status order belum keburu ter-update di database. Yuk, kita bahas kenapa graceful shutdown itu wajib banget!
Pernah nggak sih, satu fitur minor di aplikasi kalian mendadak lelet, eh malah bikin halaman checkout dan login ikut down total? Itu namanya cascading failure. Yuk, kita bahas gimana circuit breaker pattern (pemutus arus) nyelametin arsitektur kalian!
Pernah internet kalian ngadat pas lagi nekan tombol Bayar, terus panik ngekliknya tiga kali? Kalau endpoint-nya nggak idempotent, saldo bisa kepotong berkali-kali. Yuk, kenalan sama Idempotency Key!
Pernah kena error Too many connections padahal CPU server masih santai di angka 30%? Masalahnya bukan di query kalian, tapi di cara aplikasi ngobrol sama database. Yuk, kenalan sama Connection Pooling!
Pernah nggak sih kalian klik Bayar Sekarang dan notifikasi suksesnya muncul seketika, padahal email konfirmasi baru nyampe beberapa detik kemudian? Rahasianya ada di satu kurir tak terlihat. Yuk, kita kenalan sama RabbitMQ!
Pernah nggak kalian ngulang-ngulang perintah docker run cuma buat nyalain web, database, dan cache satu-satu? Capek, kan? Yuk, kita rapikan semuanya jadi satu file dan satu perintah!
Masih nganggep Redis cuma buat caching? Padahal dia bisa jadi leaderboard, message broker, sampai rate limiter lho. Yuk, kita bedah semua kemampuannya!
Kok bisa sih Go yang masih muda ini jadi bahasa andalan Docker sampai Kubernetes? Yuk, kita kenalan sama Goroutine, Channel, dan alasan dia hemat memori luar biasa!
Query kalian mulai lelet padahal data baru nembus jutaan baris? Sebelum buru-buru upgrade server, yuk cek dulu index-nya. Yuk, kita bedah gimana database indexing sebenernya kerja!
Pernah bikin endpoint yang cuma nampilin 50 postingan beserta nama penulisnya, tapi response-nya lambat banget? Bisa jadi kalian kena N+1 Query. Yuk, kita bedah penyebabnya dan cara memberantasnya!
Pernah nggak sih kalian klik Daftar Akun lalu halaman loading muter sampai 15 detik tanpa kepastian? Penyebabnya klasik banget. Yuk, kita bahas kenapa proses berat nggak boleh dijalanin di request HTTP!
Pernah nggak sih sistem mikroservis kalian mulai kerasa berat padahal cuma tuker-tukeran data internal? Belum tentu masalah servernya. Yuk, kita bahas kapan REST + JSON masih juara dan kapan gRPC jadi jawabannya!
Pernah klik tombol Beli Sekarang dan notifikasi suksesnya muncul dalam sekejap, padahal di belakang layar ada invoice, email, sampai push notification yang harus dibuat? Rahasianya Event Queue. Yuk, kita bedah!
Pernah nggak sih endpoint login kalian diserbu bot yang nyoba nembak ribuan password cuma dalam semenit? Yuk, kita bahas kenapa Rate Limiting itu wajib, plus cara masangnya di FastAPI!
Sering dengar FastAPI tapi masih bingung kenapa dia bisa ngebut kayak NodeJS dan Go? Yuk, kita bedah bareng rahasia ASGI, sihir Pydantic, sampai dokumentasi otomatisnya!
Nuxt 3 hadir membawa perubahan arsitektur besar-besaran untuk menyelaraskan dengan Vue 3. Penasaran apa saja peningkatan performa dan fitur barunya?
Pernah pusing gara-gara runtime error di JavaScript? Yuk, kenalan dengan TypeScript yang bawa fitur static typing biar kode kalian makin rapi dan aman!
Tailwind CSS v3.0 resmi dirilis dengan segudang peningkatan performa yang bikin proses coding makin asyik. Apa aja sih fitur andalan yang wajib dicoba?
Pernah bingung kenapa di Java tipe data harus dideklarasikan, sementara di Python tinggal pakai aja? Yuk, cari tahu perbedaan static typing dan dynamic typing di sini!
Bingung menentukan pilihan di antara React, Angular, dan Vue untuk proyek web kalian berikutnya? Tenang, yuk kita bandingkan kelebihan masing-masing di sini!
Sering dengar istilah asynchronous dan multithreading pas ngoding tapi masih bingung bedanya? Yuk, kita bedah perbedaannya lewat analogi bikin mi instan yang gampang dipahami!
Pengen bikin server Express di Node.js tapi pakai fitur-fitur keren TypeScript? Yuk, intip cara setup lengkapnya dari nol di sini!
Pernah bingung pas mau install Linux tapi malah disuguhi puluhan pilihan distro? Tenang, kalian nggak sendirian. Yuk, cari tahu kenapa distro Linux bisa sebanyak itu dan apa bedanya!
Mau belajar ngoding Java tapi spek laptop pas-pasan buat buka IDE berat? Yuk, cari tahu cara setup VS Code biar ngoding Java tetap lancar dan enteng!
Tertarik migrasi dari Windows ke Linux tapi masih ragu? Yuk, pelajari kelebihan, kekurangan, dan persiapan penting sebelum kamu benar-benar pindah!
Bosen sama tampilan PowerShell yang hitam putih dan kaku? Yuk, sulap terminalmu jadi lebih interaktif, estetik, dan berwarna pakai Starship!
Survei State of JS 2022 resmi dirilis dengan lonjakan responden yang luar biasa! Framework dan build tool apa saja yang berhasil mencuri perhatian tahun ini?
Pernah bingung kapan harus pakai fungsi dan kapan pakai prosedur pas lagi ngoding? Yuk, bongkar rahasia dan bedanya di sini biar kode kamu makin rapi!
Pernah ngerasa capek nulis baris kode yang sama berulang kali? Gimana caranya nyuruh komputer buat ngerjain itu secara otomatis?
Sering bingung kapan harus pakai if-else dan kapan switch-case? Kenapa switch-case kadang bisa lebih ngebut? Yuk, bongkar rahasianya di sini!
Variabel itu ibarat “tokoh utama” di sebuah program. Nggak peduli bahasa pemrograman apapun, pasti semua punya konsep variabel.
Inti dari pemrograman adalah memberi instruksi alias menyuruh komputer untuk melakukan sesuatu yang kita inginkan.
Bosen sama AI yang cuma jago nebak kata atau ngafalin pixel? Kenalan sama JEPA, arsitektur revolusioner yang ngajarin mesin punya "akal sehat" secara super efisien. Yuk intip jeroan teknisnya!
AI biasanya cuma jago nebak piksel, tapi JEPA coba belajar lewat konsep abstrak di ruang laten. Ternyata, cara ini bisa sampai dipakai buat baca gelombang otak.
AI sering 'halu' karena cuma nebak probabilitas data tanpa paham realita. Arsitektur JEPA mencoba mengubah itu dengan membangun model dunia di kepalanya.
LLM kayak ChatGPT itu jago ngerangkai kata, tapi nggak beneran paham realitas. Yann LeCun bilang arsitektur ini bakal mentok dan butuh solusi baru.
AI generatif sering 'halu' karena cuma jago nebak pola kata. JEPA coba ngerombak itu dengan ngajarin AI cara kerja dunia nyata kayak otak manusia.
Default argument merupakan argument fungsi yang memiliki nilai asal, dengan ini kita bisa membuat argument opsional
Float atau floating point merupakan tipe data yang dapat menampung literal bilangan desimal dan pecahan.
Integer, sesuai namanya merupakan tipe data yang hanya bisa menampung bilangan bulat saja (negatif, nol, dan positif)
Tipe data adalah atribut yang menempel pada sebuah data untuk menentukan perlakuan terhadap data tersebut.
Pada bahasa Java, sistem input dilayani oleh objek yang bernama Scanner. Objek ini memiliki banyak method yang dapat digunakan untuk sistem input.
Literal dan variabel merupakan komponen yang penting, karena 2 hal ini berhubungan langsung dengan data dan manipulasinya.
Fungsi atau dalam istilah pemrograman disebut dengan “function” merupakan blok kode yang digunakan untuk menyelesaikan masalah spesifik.
Ketika membuat program "Hello World" kita sudah melihat method System.out.println. Selain method tersebut masih ada method lainnya, mari kita bahas.
Java memiliki beberapa jenis komentar yaitu komentar satu baris, banyak baris, dan komentar dokumentasi.
Ibarat menulis skripsi, membuat program ternyata juga ada strukturnya. Dan struktur ini harus sesuai supaya tidak ditolak oleh sang komputer.
Java merupakan bahasa pemrograman tingkat tinggi dengan paradigma OOP. Bahasa ini punya slogan “write once, run anywhere”
Pada kesempatan kali ini kita akan membuat kode pertama kita, yaitu Hello World pada bahasa Java.
pass statement pada python merupakan statement spesial yang hanya bisa digunakan di dalam compound statement
Return statement memungkinkan kita mengembalikan nilai yang sudah diproses pada fungsi ke pemanggil.
list comprehension merupakan ternary operator pada Python untuk mempersingkat proses inisialisasi variable list
Pada Python ternary operator untuk mempersingkat assignment yang melibatkan kondisi IF ELSE.
Python memiliki statement break dan continue untuk mengatasi kasus-kasus khusus pada struktur kontrol.
Berbeda dengan perulangan for, dengan while kita akan menggunakan kondisi boolean sebagai pengendalinya.
for loop merupakan perulangan yang sudah diketahui kapan mulainya dan kapan selesainya.
Conditional statement bertugas untuk menjalankan perintah sesuai kondisi. Pada python, hal ini ditangani oleh if statement.
Beberapa fungsi seperti print() dan input(), merupakan fungsi standar yang banyak digunakan untuk melakukan I/O.
Sub program yang tidak mengembalikan nilai dinamakan PROCEDURE, sedangkan yang mengembalikan nilai dinamakan FUNCTION.
Bagian utama dari sebuah PROCEDURE adalah nama dan tubuh PROCEDURE. Ada juga bagian opsional yaitu parameter dan deklarasi lokal.
Pemrograman peosedural merupakan salah satu paradigma pemrograman dimana beberapa perintah digabungkan menjadi satu dalam sebuah prosedur.
Script python merupakan file berisi kode dengan bahasa Python yang biasanya memiliki ekstensi .py
Pada Python, list merupakan tipe data yang dapat memuat banyak nilai. Dalam bahasa lain mungkin lebih familiar dengan sebutan array.
Boolean adalah tipe data yang hanya dapat memuat 2 nilai yaitu true dan false. Tipe data ini berguna saat kita berurusan dengan struktur kontrol.
String pada Python merupakan tipe data yang memuat sebuah atau sekumpulan karakter. String ditandai dengan tanda petik.
Pada python ada beberapa tipe data numerik. Seperti int, float, dan complex. Mari kita bahas lebih lanjut.
Tipe data merupakan atribut yang menandakan perlakuan apa saja yang dapat dilakukan terhadap variabel tersebut.
Saking simpelnya, bahasa python tidak memiliki aturan khusus untuk membuat variable. Variabel otomatis terbuat ketika melakukan assignment.
Penulisan kode python tidak sembarangan, ada beberapa aturan sintaks yang harus kita ikuti agar program tidak error.
Python punya interpreter interaktif yang dapat kita gunakan untuk mengeksekusi kode python secara langsung di terminal.
Python 3 ini fungsinya sebagai interpreter dari script python agar kode yang kita buat bisa dijalankan.
Python didesain sedemikian rupa sehingga sintaksnya mudah terbaca dan sangat manusiawi. Tidak seperti bahasa lain yang punya banyak simbol asing.
Sebuah variable yang bertipe pointer nantinya hanya dapat berisi sebuah alamat dari variable lain.
ARRAY merupakan struktur data yang berisi sekumpulan data dengan tipe data yang sama. Data dalam ARRAY ini dapat diakses dengan menggunakan index.
RECORD merupakan tipe data terstruktur pada bahasa Pascal yang terdiri dari kumpulan tipe data standar dan bentukan.
Tipe data bentukan atau User defined data types terbagi menjadi 2, yaitu Enumerated dan Subrange
CASE OF pada Pascal merupakan percabangan yang menggunakan variable dan nilainya untuk menentukan sebuah kondisi
Pada REPEAT UNTIL loop, pengecekan kondisi dilakukan pada akhir perintah dan perulangan akan terus berjalan selama kondisi masih bernilai false.
WHILE DO loop merupakan perulangan pada Pascal yang menggunakan kondisi berupa ekspresi boolean sebagai penanda perulangannya.
Pada FOR loop kita menginstruksikan komputer untuk menjalankan suatu perintah sebanyak berapa kali secara explisit.
Pada kesempatan kali ini kita akan membahas sebuah kondisi percabangan dengan menggunakan keyword IF ELSE.
Dalam penyusunan algoritma pemrograman, perlu yang namanya expresi boolean. Expresi boolean dapat berupa operasi logika dan perbandingan.
Pascal merupakan bahasa pemrograman dengan sintaks sederhana, ekspresif, dan mudah dibaca. Ini membuatnya menjadi bahasa pemrograman yang baik untuk pemula.
Pada kesempatan kali ini kita akan belajar tentang proses masukan dari keyboard dengan menggunakan perintah read dan readln pada Bahasa Pascal.
Setelah tahu tentang apa itu tipe data, sekarang kita akan coba belajar tentang operasi apa saja yang dapat dilakukan pada setiap tipe data dalam bahasa Pascal.
Variable, konstanta, dan tipe data merupakan jantung dari pemrograman yang akan kita gunakan untuk melakukan manipulasi data.
Sistem output merupakan suatu yang sangat penting dalam pemrograman. Bukan cuma pemrograman, bahkan semua hal pasti berorientasi pada output.
Kali ini kita akan membahas tentang penulisan komentar pada bahasa Pascal. Komentar adalah bagian dar kode yang tidak akan dibaca oleh komputer.
Ibarat menulis surat mulai dari kepala surat sampai tanda tangan, kode Pascal juga memiliki aturan penulisan dan struktur yang harus dipenuhi. Mari kita bahas lebih lanjut.
Setelah melakukan instalasi Free Pascal baik pada windows atau linux, kali ini kita akan belajar untuk membuat program pertama kita. Sekaligus kenalan sedikit dengan Program Free Pascal.
Untuk menjalankan kode Pascal pada sistem operasi Windows kita perlu compiler. Kali ini kita akan mengunakan Free Pascal sebagai compiler sekaligus code editor kita.