Mufid Jamaluddin's Blog
Articles
Photo by Abubaker siddique on UnsplashPerlukah Istirahat Saat Stuck? Menemukan Keseimbangan antara Break dan Produktivitas Ketika kita merasa stuck — tidak bisa berpikir jernih, kehilangan fokus, atau tidak tahu harus melanjutkan dari mana — reaksi yang umum adalah mengambil istirahat sejenak (break). Istirahat memang bisa membantu menyegarkan pikiran, namun terlalu sering atau terlalu lama mengambil break justru bisa menurunkan produktivitas secara keseluruhan. Mengapa Istirahat Penting Saat Stuck? Penelitian menunjukkan bahwa otak manusia memiliki kapasitas fokus yang terbatas. Menurut studi dari University of Illinois (Ariga & Lleras, 2011), mengambil istirahat singkat selama tugas panjang bisa membantu meningkatkan konsentrasi. Ini karena perhatian kita mengalami habituation, yaitu penurunan respons terhadap rangsangan yang terus-menerus. Break membantu “mengatur ulang” otak agar bisa kembali fokus dengan segar. Selain itu, istirahat juga membantu memulihkan energi mental. Sebuah studi dalam jurnal Cognition (Ralph et al., 2016) menemukan bahwa perhatian yang berkelanjutan menurun secara bertahap, dan istirahat dapat mengembalikannya ke level optimal. Tapi, Terlalu Banyak Break Bisa Merugikan Namun, terlalu banyak istirahat atau menggunakannya sebagai pelarian dari tantangan justru bisa menurunkan disiplin kerja. Ini berisiko mengganggu flow atau aliran kerja yang produktif. Menurut Pomodoro Technique, metode manajemen waktu yang populer, idealnya seseorang bekerja selama 25 menit lalu mengambil istirahat 5 menit. Setelah 4 siklus, barulah ambil istirahat lebih panjang (15–30 menit). Ini membantu menjaga produktivitas tanpa over-break. Jika terlalu sering break setiap kali merasa stuck, kita berisiko menghindari masalah alih-alih menyelesaikannya. Ini dapat menyebabkan procrastination terselubung. Strategi Sehat: Break yang Seimbang Gunakan metode terstruktur — Seperti teknik Pomodoro atau time-blocking. Pilih jenis istirahat yang memulihkan — Jalan kaki, peregangan, atau meditasi ringan lebih efektif dibanding membuka media sosial. Kenali pola kerja pribadi — Jika kamu produktif di pagi hari, maksimalkan waktu tersebut sebelum mengambil break. Break bukan berarti menyerah — Gunakan istirahat untuk evaluasi pendekatan, bukan sekadar melarikan diri. Kesimpulan Break adalah alat penting untuk menjaga fokus dan kesehatan mental saat bekerja, terutama ketika merasa stuck. Tapi seperti halnya alat, ia harus digunakan dengan bijak. Keseimbangan adalah kunci: terlalu sedikit istirahat bisa menyebabkan burnout, tapi terlalu banyak istirahat bisa menurunkan momentum dan produktivitas. “Taking breaks is not a sign of weakness or laziness — it’s a scientifically backed strategy for enhancing performance.” — Dr. Alejandro Lleras, University of Illinois Referensi: Ariga, A., & Lleras, A. (2011). Brief and rare mental “breaks” keep you focused: Deactivation and reactivation of task goals preempt vigilance decrements. Cognition, 118(3), 439–443. https://doi.org/10.1016/j.cognition.2010.12.007 Ralph, B. C., Thomson, D. R., Cheyne, J. A., & Smilek, D. (2016). Media multitasking and behavioral measures of sustained attention. Cognition, 134, 63–76. https://doi.org/10.1016/j.cognition.2014.09.008 Cirillo, F. (2006). The Pomodoro Technique. https://francescocirillo.com/pages/pomodoro-technique Note Penulisan artikel ini dibantu AI 2025
Photo by Anders Krøgh Jørgensen on UnsplashDalam menyelesaikan masalah dengan C++, terdapat solusi umum yang sering di gunakan seperti pencarian (searching), pengurutan (sorting), transformasi, penghapusan dan partisi, penggabungan, dan algoritma kuantitatif. Pencarian Untuk pencarian, berikut ini merupakan nilai dalam rentang yang diperlukan: /* Mencari nilai dalam rentang */std::find(mulai, akhir, nilai);/* Mencari nilai dalam kontainer terurut */std::binary_search(mulai, akhir, nilai);/* Mencari elemen yang memenuhi kondisi tertentu */std::find_if(mulai, akhir, predikat); Pengurutan Untuk pencarian, berikut ini merupakan nilai dalam rentang yang diperlukan: /* Mengurutkan elemen dalam urutan menaik */std::sort(mulai, akhir);/* Seperti sort tetapi mempertahankan urutan relatif */std::stable_sort(mulai, akhir);/* Mengurutkan sebagian elemen */std::partial_sort(mulai, tengah, akhir); Contoh penggunaan: #include <iostream>#include <vector>#include <algorithm>int main() { std::vector<int> data = {1, 5, 3, 4, 2, 5}; std::sort(data.begin(), data.end()); auto it = std::find(data.begin(), data.end(), 3); if (it != data.end()) std::cout << "Angka 3 ditemukan pada indeks: " << std::distance(data.begin(), it) << std::endl; int count5 = std::count(data.begin(), data.end(), 5); std::cout << "Angka 5 muncul sebanyak: " << count5 << " kali" << std::endl; return 0;} Transformasi Untuk pencarian, berikut ini merupakan nilai dalam rentang yang diperlukan: /* Transformasi */std::transform(mulai, akhir, mulai_output, operasi_unary);/* Mengganti nilai tertentu */std::replace(mulai, akhir, nilai_lama, nilai_baru);/* Mengisi rentang dengan nilai tertentu */std::fill(mulai, akhir, nilai); Contoh penggunaan: #include <iostream>#include <vector>#include <algorithm>int main() { std::vector<int> v1 = { 2286, 3200, 4176, 5120 }; std::vector<int> v2(v1.size()); std::transform(input.begin(), input.end(), output.begin(), [](int x) { return x * x; }); for (auto i : v2) cout << i << " "; return 0;} Output: `2285 3199 4175 5199` #include <iostream>#include <vector>#include <algorithm>int main() { std::vector<int> v1 = {1, 2, 3}; std::vector<int> v2 = {4, 5, 6}; std::vector<int> result(v1.size()); std::transform(v1.begin(), v1.end(), v2.begin(), result.begin(), [](int a, int b) { return a + b; }); for (int n : result) std::cout << n << " ";} Output: 5, 7, 9 Penghapusan dan Partisi Berikut ini merupakan STD untuk penghapusan dan partisi /* Menghapus elemen nilai tanpa mengurangi ukuran kontainer */std::remove(mulai, akhir, nilai);/* Menghapus elemen berdasarkan kondisi predikat */std::remove_if(mulai, akhir, predikat);/* Memisahkan elemen berdasarkan kondisi predikat */std::partition(mulai, akhir, predikat); Penggabungan Set Operation /* Menggabungkan dua rentang urut */std::merge(mulai1, akhir1, mulai2, akhir2, output);/* Operasi himpunan pada rentang terurut */std::set_union();std::set_intersection(); Algoritma Kuantitatif /* Menghitung kemunculan nilai */std::count(mulai, akhir, nilai);std::count_if(mulai, akhir, predikat);/* Menjumlahkan elemen */std::accumulate(mulai, akhir, init); Referensi https://en.cppreference.com/w/cpp/algorithm
Photo by Vishnu Mohanan on UnsplashDalam pemrograman C++, kadangkala kita membutuhkan struktur data untuk menyimpan data dalam bentuk pasangan kunci-nilai (key-value pair) dimana nilai key-nya itu unik. STL yang umum digunakan untuk tujuan ini adalah std::map dan std::unordered_map. Meskipun keduanya menyimpan data dalam bentuk pasangan kunci-nilai, mereka memiliki perbedaan mendasar dalam hal struktur internal, performa, dan penggunaan. STD Map std::map adalah kontainer associative yang menyimpan elemen dalam urutan terurut berdasarkan kunci. Struktur internal dari map ini umumnya menggunakan Red-Black Tree [1]. Tidak perlu pusing terkait Red-Black Tree karena tinggal pakai library ini dengan mudah. Karena sifat Red-Black Tree, karakteristik penyimpanan data-nya terurut berdasarkan kunci, masing-masing kunci-nya unik, dan waktu akses yang logaritmik. Contoh penggunaannya sebagai berikut: #include <iostream>#include <map>int main() { std::map<std::string, int> umur; umur["Jhonny"] = 25; umur["Kidarsa"] = 30; for (const auto& [nama, usia] : umur) { std::cout << nama << " : " << usia << "\n"; } return 0;} STD Unordered Map std::unordered_map adalah kontainer yang menggunakan hash table untuk menyimpan elemen dimana penggunaan hash table ini menjamin pencarian, penambahan, dan pengurangan data memiliki rata-rata kompleksitas yang konstan dengan konsekuensi kunci-nya tidak terurut [2]. Contoh penggunaannya sebagai berikut: #include <iostream>#include <unordered_map>int main() { std::unordered_map<std::string, int> umur; umur["Jhonny"] = 25; umur["Kidarsa"] = 30; for (const auto& [nama, usia] : umur) { std::cout << nama << " : " << usia << "\n"; } return 0;} Referensi [1] Ordered Map: std::map — cppreference.com[2] Unordered Map: std::unordered_map — cppreference.com
Photo by Arcode ACD on UnsplashSpesial tanggal 23 Mei ini saya membahas vektor. Vektor STD (std::vector) adalah salah satu kontainer dalam Standard Template Library (STL) C++ yang digunakan untuk menyimpan sekumpulan data dalam bentuk array dinamis, yaitu ukuran vector bisa berubah-ubah, berbeda dengan array biasa (C-style array) yang ukurannya tetap dengan kelebihan dan kekurangan sebagai berikut. Kelebihan std::vector Mudah digunakan dan fleksibel, dinamis karena ukurannya dapat bertambah atau berkurang saat di tambah elemen baru atau di hapus salahsatu elemennya Akses cepat seperti array karena kontigu di memori, dimana elemen vector disimpan berurutan di memori Mendukung banyak fungsi dan algoritma STL, seperti iterasi dengan for, range-based for, dan fungsi STL seperti std::sort, std::find, dll. Aman: pengecekan batas dengan .at() Bersifat generik, dimana bisa menyimpan data dari tipe apapun dalam deklarasi, misalnya int, float, std::string, atau bahkan objek buatan sendiri. Kekurangan std::vector Alokasi ulang memori saat kapasitas habis bisa menyebabkan overhead. Tidak efisien untuk penambahan di tengah/depan (lebih cocok std::deque) Dan ini merupakan contoh penggunaannya: #include <iostream>#include <vector>int main() { std::vector<int> angka; angka.push_back(20); angka.push_back(30); angka.push_back(40); std::cout << "Isi vector: "; for (int a : angka) { std::cout << a << " "; } std::cout << "\nElemen pertama: " << angka[0] << std::endl; std::cout << "Jumlah elemen: " << angka.size() << std::endl; return 0;} Dimana outputnya: Isi vector: 20 30 40 Elemen pertama: 20Jumlah elemen: 3 Fungsi-Fungsi Penting Dari contoh di atas, kita dapat membuat kode dengan beberapa fungsi penting yakni: push_back(x)Menambahkan elemen x ke bagian akhir vector pop_back()Menghapus elemen terakhir dari vector size()Mengembalikan jumlah elemen saat ini di vector empty()Mengecek apakah vector kosong (true jika kosong, false jika tidak) clear()Menghapus semua elemen dari vector at(index)Mengakses elemen di posisi index dengan pengecekan batas (out-of-range) arr[]Mengakses elemen di posisi index tanpa pengecekan batas front()Mengembalikan elemen pertama back()Mengembalikan elemen terakhir begin() / end()Mengembalikan iterator ke awal dan akhir vector (digunakan dalam looping) insert(pos, val)Menyisipkan elemen val di posisi pos erase(pos)Menghapus elemen di posisi pos resize(n)Mengubah ukuran vector menjadi n elemen reserve(n)Meminta alokasi kapasitas minimal sebanyak n elemen capacity()Mengembalikan kapasitas alokasi saat ini Referensi cppreference.com dengan bantuan AI 2025

Mengenal Istilah-Istilah Finansial: Panduan Dasar Dunia Keuangan [Bag 1] Visualisasi DataDalam dunia keuangan, banyak istilah yang sering digunakan baik dalam konteks pribadi, bisnis, maupun investasi. Memahami istilah-istilah ini sangat penting agar dapat mengambil keputusan finansial yang bijak. Berikut adalah beberapa istilah finansial dasar sebagai berikut: Aset Segala sesuatu yang dimiliki oleh individu atau perusahaan yang memiliki nilai ekonomi dan dapat memberikan manfaat baik sekarang maupun masa depan [1]. Liabilitas Kewajiban seperti utang yang harus dibayar oleh individu atau perusahaan kepada pihak lain [2]. Ekuitas Selisih antara aset dan liabilitas, tetapi dalam konteks perusahaan ekuitas menunjukkan kepemilikan pemegang saham terhadap perusahaan [3]. Cash Flow Pergerakan uang masuk dan keluar dari suatu entitas. Arus kas positif berarti lebih banyak uang masuk daripada keluar [4]. Laba Bersih Pendapatan tersisa setelah dikurangi semua biaya termasuk pajak dan bunga [5]. Referensi [1] Investopedia: What Is an Asset? Definition, Types, and Examples[2] Investopedia: Liability: Definition, Types, Example, and Assets vs. Liabilities[3] Investopedia: Equity — Definition, Example, Market Value, Estimiate[4] https://hbr.org/2004/11/cash-flow-101[5] Investopedia: Net Income (NI): Definition, Uses, and Formula