<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.10.0">Jekyll</generator><link href="https://whdzera.com/feed.xml" rel="self" type="application/atom+xml" /><link href="https://whdzera.com/" rel="alternate" type="text/html" /><updated>2026-09-29T13:45:22+00:00</updated><id>https://whdzera.com/feed.xml</id><title type="html">whdzera</title><subtitle>Temukan berbagai tulisan menarik seputar teknologi. Blog ini dibuat sebagai ruang berbagi ide, pengalaman, dan pengetahuan yang bisa bermanfaat untuk siapa saja. Yuk, jelajahi dan temukan sesuatu yang baru di setiap postingannya!</subtitle><entry><title type="html">Rails vs Django vs Laravel - Siapa yang lebih baik?</title><link href="https://whdzera.com/blog/rails-django-laravel" rel="alternate" type="text/html" title="Rails vs Django vs Laravel - Siapa yang lebih baik?" /><published>2026-04-17T00:00:00+00:00</published><updated>2026-04-17T00:00:00+00:00</updated><id>https://whdzera.com/blog/rails-django-laravel</id><content type="html" xml:base="https://whdzera.com/blog/rails-django-laravel"><![CDATA[<p>Halo guys, kali ini kita akan adu framework antara Rails, Django, dan Laravel.
mana yang lebih cocok untuk situasi dan kebutuhan spesifik kamu.</p>

<hr />

<h2 id="perbandingan-langsung">Perbandingan Langsung</h2>

<table>
  <thead>
    <tr>
      <th>Aspek</th>
      <th>Rails (Ruby)</th>
      <th>Django (Python)</th>
      <th>Laravel (PHP)</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><strong>Bahasa</strong></td>
      <td>Ruby</td>
      <td>Python</td>
      <td>PHP</td>
    </tr>
    <tr>
      <td><strong>Gaya Penulisan</strong></td>
      <td>Opinionated, konvensi kuat</td>
      <td>Opinionated, baterai included</td>
      <td>PHP modern, flexible</td>
    </tr>
    <tr>
      <td><strong>Ekosistem</strong></td>
      <td>Solid, mature</td>
      <td>Sangat besar (Python)</td>
      <td>Besar (PHP ecosystem)</td>
    </tr>
    <tr>
      <td><strong>Learning Curve</strong></td>
      <td>Sedang-Tinggi</td>
      <td>Rendah-Sedang</td>
      <td>Rendah</td>
    </tr>
    <tr>
      <td><strong>Startup Speed</strong></td>
      <td>Lambat</td>
      <td>Cepat</td>
      <td>Cepat</td>
    </tr>
    <tr>
      <td><strong>Performance</strong></td>
      <td>Baik</td>
      <td>Baik</td>
      <td>Cukup Baik</td>
    </tr>
    <tr>
      <td><strong>Deploy</strong></td>
      <td>Mudah</td>
      <td>Mudah</td>
      <td>Mudah</td>
    </tr>
  </tbody>
</table>

<hr />

<h2 id="rails---untuk-yang-ingin-produktivitas-maksimal">Rails - Untuk Yang Ingin Produktivitas Maksimal</h2>

<p><strong>Kapan pilih Rails:</strong></p>

<ul>
  <li>Kamu ingin membangun MVP atau startup dengan cepat</li>
  <li>Kamu menghargai Convention over Configuration (CoC)</li>
  <li>Kamu nyaman dengan “Rails Way”</li>
</ul>

<p><strong>Kapan hindari Rails:</strong></p>

<ul>
  <li>Tim kamu sudah expert di Python/PHP</li>
  <li>Kamu tidak nyaman dengan Ruby syntax</li>
</ul>

<p><strong>Kesimpulan Rails:</strong>
Rails adalah framework yang sangat opinionated. Kalau kamu mengikuti Rails Way, semuanya terasa magical. Kalau tidak, frustrasi.</p>

<hr />

<h2 id="django---untuk-yang-ingin-python-power">Django - Untuk Yang Ingin Python Power</h2>

<p><strong>Kapan pilih Django:</strong></p>

<ul>
  <li>Kamu sudah proficient di Python</li>
  <li>Kamu butuh built-in admin panel</li>
  <li>Kamu membangun project berbasis data science/ML</li>
</ul>

<p><strong>Kapan hindari Django:</strong></p>

<ul>
  <li>Kamu butuh real-time features berat</li>
  <li>Kamu tidak suka ORM Django (meski ada alternatif)</li>
  <li>Project kamu sederhana dan tidak butuh “batteries included”</li>
</ul>

<p><strong>Kesimpulan Django:</strong>
Django sangat Pythonic eksplisit, readable, dan pragmatis. Admin panel built-in-nya adalah killer feature yang tidak ada duanya di Rails atau Laravel.</p>

<hr />

<h2 id="laravel---untuk-yang-ingin-php-modern">Laravel - Untuk Yang Ingin PHP Modern</h2>

<p><strong>Kapan pilih Laravel:</strong></p>

<ul>
  <li>Kamu familiar dengan PHP</li>
  <li>Kamu butuh ekosistem PHP yang massive</li>
  <li>Kamu mau sintaks yang elegan dan modern</li>
</ul>

<p><strong>Kapan hindari Laravel:</strong></p>

<ul>
  <li>Kamu punya trauma dengan PHP lawas</li>
  <li>Kamu butuh performa sangat tinggi untuk realtime apps</li>
  <li>Kamu benci dependency manager PHP (Composer) yang berat</li>
</ul>

<p><strong>Kesimpulan Laravel:</strong>
Laravel mengambil hal terbaik dari Rails dan mengemasnya dalam PHP. Eloquent ORM-nya elegant, Blade templating-nya powerful. Tapi performance-nya memang di bawah Rails dan Django.</p>

<hr />

<h2 id="pertanyaan">Pertanyaan</h2>

<p>Sebelum memilih, jawab pertanyaan ini:</p>

<ol>
  <li>
    <p><strong>Bahasa apa yang sudah kamu kuasai?</strong> Ini faktor terbesar. Framework terbaik adalah yang bahasanya kamu kuasai.</p>
  </li>
  <li>
    <p><strong>Seberapa cepat kamu perlu launch?</strong> Rails dan Laravel menang di sini untuk startup.</p>
  </li>
  <li>
    <p><strong>Apakah kamu butuh ML/Data integration?</strong> Django obvious winner.</p>
  </li>
  <li>
    <p><strong>Seberapa opinionated kamu?</strong> Rails paling strict, Laravel paling flexible.</p>
  </li>
  <li>
    <p><strong>Siapa target user kamu?</strong> Jika PHP hosting masih relevan untuk client, Laravel wins.</p>
  </li>
</ol>

<hr />

<h2 id="kesimpulan">Kesimpulan</h2>

<table>
  <thead>
    <tr>
      <th>Kebutuhan</th>
      <th>Winner</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Startup cepat + MVP</td>
      <td>Rails atau Laravel</td>
    </tr>
    <tr>
      <td>Data science / ML integration</td>
      <td>Django</td>
    </tr>
    <tr>
      <td>Legacy PHP migration</td>
      <td>Laravel</td>
    </tr>
    <tr>
      <td>Clean code + maintainability</td>
      <td>Django</td>
    </tr>
    <tr>
      <td>Maximum convention</td>
      <td>Rails</td>
    </tr>
    <tr>
      <td>PHP ecosystem familiarity</td>
      <td>Laravel</td>
    </tr>
  </tbody>
</table>

<p><strong>Pilih berdasarkan kebutuhanmu, bukan hype atau popularitas.</strong></p>

<p>Semua tiga framework capable untuk membangun aplikasi web kelas dunia. GitHub (Rails), Instagram (Django), dan banyak enterprise apps (Laravel) proof bahwa ketiganya production-ready.</p>

<p>Jadi, daripada debat “mana terbaik,” lebih baik mulai bangun dan lihat sendiri mana yang paling nyaman untuk workflow kamu.</p>

<hr />

<blockquote>
  <p><em>Tidak ada winner absolut. Ada context yang tepat untuk masing-masing.</em></p>
</blockquote>]]></content><author><name>whdzera</name></author><summary type="html"><![CDATA[Halo guys, kali ini kita akan adu framework antara Rails, Django, dan Laravel. mana yang lebih cocok untuk situasi dan kebutuhan spesifik kamu.]]></summary></entry><entry><title type="html">Redis di Rails</title><link href="https://whdzera.com/blog/redis-di-rails" rel="alternate" type="text/html" title="Redis di Rails" /><published>2026-01-03T00:00:00+00:00</published><updated>2026-01-03T00:00:00+00:00</updated><id>https://whdzera.com/blog/redis-di-rails</id><content type="html" xml:base="https://whdzera.com/blog/redis-di-rails"><![CDATA[<p>Halo guys, apa kalian tahu redis?
Redis (<em>Remote Dictionary Server</em>) adalah salah satu <em>in-memory data store</em> yang sangat populer dan sering digunakan bersama Ruby on Rails untuk meningkatkan performa dan skalabilitas aplikasi. Pada artikel ini, kita akan membahas Redis, kenapa sering dipakai di Rails, serta contoh penggunaan umumnya.</p>

<p>Redis ini berbasis <em>key-value</em> yang berjalan di memori (RAM). Karena bekerja di memori, Redis sangat cepat dibandingkan database relasional seperti MySQL atau PostgreSQL.
Redis biasanya digunakan untuk Cache data, Session stor, Background job queue, Real-time data (counter, leaderboard, rate limiting)
Walaupun berbasis memori, Redis juga mendukung <em>persistence</em> ke disk, sehingga data bisa disimpan jika server direstart.</p>

<h2 id="kenapa-redis-populer-di-rails">Kenapa Redis Populer di Rails?</h2>

<p>Rails dikenal produktif, tapi performa bisa menjadi tantangan ketika aplikasi sudah besar. Redis hadir sebagai solusi untuk beberapa masalah umum di Rails.</p>

<p>Beberapa alasannya:</p>

<ol>
  <li>
    <p><strong>Performa Tinggi</strong>
Redis sangat cepat karena data disimpan di RAM. Cocok untuk mengurangi query berulang ke database.</p>
  </li>
  <li>
    <p><strong>Integrasi Mudah</strong>
Rails sudah menyediakan dukungan bawaan untuk cache menggunakan Redis.</p>
  </li>
  <li>
    <p><strong>Ekosistem Gem yang Kuat</strong>
Banyak gem Rails populer yang bergantung pada Redis, seperti Sidekiq dan Action Cable.</p>
  </li>
  <li>
    <p><strong>Skalabilitas</strong>
Redis membantu Rails menangani traffic tinggi dengan lebih efisien.</p>
  </li>
</ol>

<hr />

<h2 id="penggunaan-redis-di-rails">Penggunaan Redis di Rails</h2>

<h3 id="cache-di-rails">Cache di Rails</h3>

<p>Redis sering digunakan sebagai <em>cache store</em> untuk menyimpan hasil query atau proses berat.</p>

<p>Contoh penggunaan:</p>

<ul>
  <li>Cache hasil query ActiveRecord</li>
  <li>Cache halaman atau fragment</li>
</ul>

<p>Dengan cache, Rails tidak perlu menghitung ulang atau query ulang data yang sama.</p>

<h3 id="session-store">Session Store</h3>

<p>Secara default, Rails menyimpan session di cookie. Untuk aplikasi skala besar, session bisa disimpan di Redis agar:</p>

<ul>
  <li>Lebih aman</li>
  <li>Tidak membebani client</li>
  <li>Mudah dibagi antar server</li>
</ul>

<p>Ini sangat berguna untuk aplikasi yang menggunakan banyak server (load balancer).</p>

<h3 id="background-job-sidekiq">Background Job (Sidekiq)</h3>

<p>Sidekiq adalah background job processor populer di Rails dan <strong>wajib menggunakan Redis</strong>.</p>

<p>Contoh use case:</p>

<ul>
  <li>Kirim email</li>
  <li>Proses data besar</li>
  <li>Integrasi API pihak ketiga</li>
</ul>

<p>Dengan Redis, job bisa diproses secara asynchronous tanpa mengganggu request utama user.</p>

<h3 id="action-cable-websocket">Action Cable (WebSocket)</h3>

<p>Untuk fitur real-time seperti chat atau notifikasi, Rails menggunakan Action Cable.</p>

<p>Redis digunakan sebagai:</p>

<ul>
  <li>Pub/Sub adapter</li>
  <li>Media komunikasi antar server</li>
</ul>

<p>Tanpa Redis, fitur real-time akan sulit diskalakan.</p>

<hr />

<h2 id="kapan-sebaiknya-menggunakan-redis">Kapan Sebaiknya Menggunakan Redis?</h2>

<p>Gunakan Redis jika:</p>

<ul>
  <li>Aplikasi mulai lambat karena query berulang</li>
  <li>Membutuhkan background job</li>
  <li>Memiliki fitur real-time</li>
  <li>Traffic mulai tinggi</li>
</ul>

<p>Tidak wajib menggunakan Redis untuk aplikasi Rails kecil, tapi sangat disarankan ketika aplikasi mulai berkembang.</p>

<h2 id="kapan-tidak-perlu-redis">Kapan Tidak Perlu Redis?</h2>

<p>Redis mungkin belum diperlukan jika:</p>

<ul>
  <li>Aplikasi masih kecil</li>
  <li>Traffic masih rendah</li>
  <li>Belum ada kebutuhan async job atau real-time</li>
</ul>

<p>Menambahkan Redis terlalu dini bisa menambah kompleksitas.</p>

<hr />

<h2 id="kesimpulan">Kesimpulan</h2>

<p>Redis adalah pasangan yang sangat kuat untuk Ruby on Rails. Dengan Redis, aplikasi Rails bisa menjadi Lebih cepat, scalable, dan siap untuk traffic besar
Jika kamu membangun aplikasi Rails serius untuk production, Redis hampir pasti akan menjadi bagian dari arsitektur aplikasimu.</p>

<hr />

<p>Semoga artikel ini membantu memahami Redis ya :)</p>]]></content><author><name>whdzera</name></author><summary type="html"><![CDATA[Halo guys, apa kalian tahu redis? Redis (Remote Dictionary Server) adalah salah satu in-memory data store yang sangat populer dan sering digunakan bersama Ruby on Rails untuk meningkatkan performa dan skalabilitas aplikasi. Pada artikel ini, kita akan membahas Redis, kenapa sering dipakai di Rails, serta contoh penggunaan umumnya.]]></summary></entry><entry><title type="html">Halaman Error Lebih Baik dengan Gem better_errors di Rails</title><link href="https://whdzera.com/blog/tutorial-gem-better-errors-di-rails" rel="alternate" type="text/html" title="Halaman Error Lebih Baik dengan Gem better_errors di Rails" /><published>2025-04-21T00:00:00+00:00</published><updated>2025-04-21T00:00:00+00:00</updated><id>https://whdzera.com/blog/tutorial-gem-better-errors-di-rails</id><content type="html" xml:base="https://whdzera.com/blog/tutorial-gem-better-errors-di-rails"><![CDATA[<p>Halo!
Saat kalian mengembangkan web dengan Rails, tampilan error default seringkali terasa kurang spesifik error nya ada dimana. Untuk pengalaman debugging yang lebih baik, kita bisa menggunakan <strong>gem <a href="https://github.com/BetterErrors/better_errors">better_errors</a></strong>.</p>

<p>Dengan gem ini, halaman error akan jauh lebih interaktif, lengkap dengan stack trace, preview variabel, hingga akses konsol Rails langsung dari browser.</p>

<p>Berikut adalah cara penggunaan better_errors</p>

<hr />

<h2 id="1-tambahkan-gem-ke-gemfile">1. Tambahkan Gem ke Gemfile</h2>

<p>Buka file <code class="language-plaintext highlighter-rouge">Gemfile</code> lalu tambahkan:</p>

<div class="language-ruby highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">group</span> <span class="ss">:development</span> <span class="k">do</span>
  <span class="n">gem</span> <span class="s1">'better_errors'</span>
  <span class="n">gem</span> <span class="s1">'binding_of_caller'</span>
<span class="k">end</span>
</code></pre></div></div>

<blockquote>
  <p><code class="language-plaintext highlighter-rouge">binding_of_caller</code> opsional tapi sangat disarankan, karena memungkinkan kita membuka IRB console langsung di halaman error.</p>
</blockquote>

<h2 id="2-install-dependensi">2. Install Dependensi</h2>

<p>Jalankan perintah:</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>bundle <span class="nb">install</span>
</code></pre></div></div>

<h2 id="3-konfigurasi-opsional">3. Konfigurasi (Opsional)</h2>

<p>Secara default, <strong>better_errors</strong> hanya aktif di <strong>environment development</strong>.<br />
Kalau kamu ingin mengakses error page ini dari mesin lain (misalnya di jaringan lokal), tambahkan konfigurasi di <code class="language-plaintext highlighter-rouge">config/environments/development.rb</code>:</p>

<div class="language-ruby highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="no">BetterErrors</span><span class="o">::</span><span class="no">Middleware</span><span class="p">.</span><span class="nf">allow_ip!</span> <span class="s2">"0.0.0.0/0"</span>
</code></pre></div></div>

<blockquote>
  <p>Hati-hati! Jangan mengaktifkan ini di <strong>production</strong>, karena bisa di eksploitasi orang jahat.</p>
</blockquote>

<h2 id="4-coba-trigger-error">4. Coba Trigger Error</h2>

<p>Untuk menguji, buat error sederhana di salah satu controller:</p>

<div class="language-ruby highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">def</span> <span class="nf">index</span>
  <span class="k">raise</span> <span class="s2">"Test Better Errors"</span>
<span class="k">end</span>
</code></pre></div></div>

<p>Akses halaman tersebut, maka kamu akan melihat tampilan error yang jauh lebih informatif dibandingkan default Rails.</p>

<h2 id="5-fitur-utama">5. Fitur Utama</h2>

<ul>
  <li>Tampilan error dengan syntax highlight.</li>
  <li>Stack trace yang bisa diklik dan ditelusuri.</li>
  <li>Preview nilai variabel di setiap level stack.</li>
  <li>IRB console langsung di browser (butuh <code class="language-plaintext highlighter-rouge">binding_of_caller</code>).</li>
</ul>

<p>Bagaimana? mudah bukan.
Menggunakan <strong>better_errors</strong> membuat debugging di Rails jauh lebih cepat dan menyenangkan.<br />
Dengan informasi error yang lebih jelas, kita bisa lebih mudah menemukan dan memperbaiki bug.</p>

<p>Kalau kamu sering bekerja dengan Rails, gem ini adalah salah satu yang <strong>wajib</strong> dipasang di environment development.
jika ada yang ditanyakan kalian bisa tulis di komentar.</p>]]></content><author><name>whdzera</name></author><summary type="html"><![CDATA[Halo! Saat kalian mengembangkan web dengan Rails, tampilan error default seringkali terasa kurang spesifik error nya ada dimana. Untuk pengalaman debugging yang lebih baik, kita bisa menggunakan gem better_errors.]]></summary></entry><entry><title type="html">Pagination pakai Gem Kaminari di Rails</title><link href="https://whdzera.com/blog/pagination-pakai-gem-kaminari-di-rails" rel="alternate" type="text/html" title="Pagination pakai Gem Kaminari di Rails" /><published>2025-03-06T00:00:00+00:00</published><updated>2025-03-06T00:00:00+00:00</updated><id>https://whdzera.com/blog/pagination-pakai-gem-kaminari-di-rails</id><content type="html" xml:base="https://whdzera.com/blog/pagination-pakai-gem-kaminari-di-rails"><![CDATA[<p>Halo!
kali ini kita akan bahas tentang pagination, kalau kalian belum tau apa itu pagination. pagination adalah teknik untuk membagi data atau konten yang jumlahnya sangat banyak menjadi beberapa halaman. di rails sebenarnya ada banyak gem untuk pagination, tapi kali ini kita bahas khusus gem kaminari saja karena gem favorit author.
jadi Kaminari adalah sebuah gem Ruby untuk melakukan pagination pada ActiveRecord, Mongoid, dan berbagai ORM lainnya.
penggunaan gem kaminari di rails sebenarnya sangat mudah loh.</p>

<p>Berikut ini cara memakai Gem Kaminari di Ruby on rails.</p>

<h4 id="1-instalasi">1. Instalasi</h4>

<p>Tambahkan Kaminari ke file <code class="language-plaintext highlighter-rouge">Gemfile</code>:</p>

<div class="language-ruby highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">gem</span> <span class="s1">'kaminari'</span>
</code></pre></div></div>

<p>Kemudian jalankan perintah:</p>

<div class="language-ruby highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">bundle</span> <span class="n">install</span>
</code></pre></div></div>

<h4 id="2-setup-pagination-di-controller">2. Setup Pagination di Controller</h4>

<p>Misalkan kamu punya model Post, dan ingin menampilkan daftar postingan yang dipaginasi.</p>

<p>Di <code class="language-plaintext highlighter-rouge">posts_controller.rb</code>, ubah action index seperti berikut:</p>

<div class="language-ruby highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">def</span> <span class="nf">index</span>
  <span class="vi">@posts</span> <span class="o">=</span> <span class="no">Post</span><span class="p">.</span><span class="nf">order</span><span class="p">(</span><span class="ss">created_at: :desc</span><span class="p">).</span><span class="nf">page</span><span class="p">(</span><span class="n">params</span><span class="p">[</span><span class="ss">:page</span><span class="p">]).</span><span class="nf">per</span><span class="p">(</span><span class="mi">10</span><span class="p">)</span>
<span class="k">end</span>
</code></pre></div></div>

<p><code class="language-plaintext highlighter-rouge">page(params[:page])</code> Menentukan halaman saat ini berdasarkan parameter URL <code class="language-plaintext highlighter-rouge">?page=</code></p>

<h4 id="3-tampilkan-pagination-di-view">3. Tampilkan Pagination di View</h4>

<p>Di file <code class="language-plaintext highlighter-rouge">app/views/posts/index.html.erb</code>, tambahkan kode berikut setelah daftar item:</p>

<div class="language-erb highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="cp">&lt;%</span> <span class="vi">@posts</span><span class="p">.</span><span class="nf">each</span> <span class="k">do</span> <span class="o">|</span><span class="n">post</span><span class="o">|</span> <span class="cp">%&gt;</span>
  <span class="nt">&lt;div</span> <span class="na">class=</span><span class="s">"post"</span><span class="nt">&gt;</span>
    <span class="nt">&lt;h2&gt;</span><span class="cp">&lt;%=</span> <span class="n">post</span><span class="p">.</span><span class="nf">title</span> <span class="cp">%&gt;</span><span class="nt">&lt;/h2&gt;</span>
    <span class="nt">&lt;p&gt;</span><span class="cp">&lt;%=</span> <span class="n">truncate</span><span class="p">(</span><span class="n">post</span><span class="p">.</span><span class="nf">content</span><span class="p">,</span> <span class="ss">length: </span><span class="mi">100</span><span class="p">)</span> <span class="cp">%&gt;</span><span class="nt">&lt;/p&gt;</span>
  <span class="nt">&lt;/div&gt;</span>
<span class="cp">&lt;%</span> <span class="k">end</span> <span class="cp">%&gt;</span>

<span class="cp">&lt;%=</span> <span class="n">paginate</span> <span class="vi">@posts</span> <span class="cp">%&gt;</span>
</code></pre></div></div>

<h4 id="4-kustomisasi-tampilan-paginasi">4. Kustomisasi Tampilan Paginasi</h4>

<p>Kaminari menyediakan generator untuk membuat file partial yang bisa kamu modifikasi:</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>rails g kaminari:views default
</code></pre></div></div>

<p>Ini akan menghasilkan file-file ERB di <code class="language-plaintext highlighter-rouge">app/views/kaminari/</code>. Kamu bisa mengedit tampilan tombol pagination sesuai selera, atau menambahkan class Tailwind, Bulma, Bootstrap, dsb.</p>

<p>Contoh kustomisasi tombol:</p>

<div class="language-erb highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nt">&lt;li</span> <span class="na">class=</span><span class="s">"page-item </span><span class="cp">&lt;%=</span> <span class="s1">'active'</span> <span class="k">if</span> <span class="n">current_page?</span> <span class="cp">%&gt;</span><span class="s">"</span><span class="nt">&gt;</span>
  <span class="cp">&lt;%=</span> <span class="n">link_to</span> <span class="n">page</span><span class="p">,</span> <span class="n">url</span><span class="p">,</span> <span class="ss">class: </span><span class="s2">"page-link"</span> <span class="cp">%&gt;</span>
<span class="nt">&lt;/li&gt;</span>
</code></pre></div></div>

<h4 id="5-contoh-url-paginasi">5. Contoh URL Paginasi</h4>

<p>Setelah setup di atas, kamu bisa membuka URL seperti:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>http://localhost:3000/posts?page=2
</code></pre></div></div>

<p>Dan Rails akan menampilkan halaman ke-2 dari daftar Post</p>

<p>Dengan gem Kaminari, proses pagination di aplikasi Rails menjadi sangat mudah dan fleksibel. kalian bisa menggunakannya di berbagai model, mengkustom tampilan, serta menggabungkannya dengan AJAX atau infinite scrolling untuk pengalaman UX pengguna.</p>

<p>Semoga tutorial ini bermanfaat! Jika ada pertanyaan atau saran, silakan tinggalkan komentar di bawah ya.</p>]]></content><author><name>whdzera</name></author><summary type="html"><![CDATA[Halo! kali ini kita akan bahas tentang pagination, kalau kalian belum tau apa itu pagination. pagination adalah teknik untuk membagi data atau konten yang jumlahnya sangat banyak menjadi beberapa halaman. di rails sebenarnya ada banyak gem untuk pagination, tapi kali ini kita bahas khusus gem kaminari saja karena gem favorit author. jadi Kaminari adalah sebuah gem Ruby untuk melakukan pagination pada ActiveRecord, Mongoid, dan berbagai ORM lainnya. penggunaan gem kaminari di rails sebenarnya sangat mudah loh.]]></summary></entry><entry><title type="html">Cara Pasang Tema di jekyll</title><link href="https://whdzera.com/blog/cara-pasang-tema-di-jekyll" rel="alternate" type="text/html" title="Cara Pasang Tema di jekyll" /><published>2025-02-12T00:00:00+00:00</published><updated>2025-02-12T00:00:00+00:00</updated><id>https://whdzera.com/blog/cara-pasang-tema-di-jekyll</id><content type="html" xml:base="https://whdzera.com/blog/cara-pasang-tema-di-jekyll"><![CDATA[<p>Halo!<br />
Kalau kamu sedang membangun blog statis pakai Jekyll dan pengen tampil beda, kamu bisa mulai dengan mengganti <strong>tema Jekyll-nya</strong>. Di artikel ini, gw akan tunjukin langkah-langkah simpel buat pasang tema di Jekyll, sekaligus promosi dikit tema buatanku sendiri (:v hehe) : <strong><a href="https://github.com/whdzera/jekyll-niri">Niri Theme Jekyll</a></strong>.</p>

<hr />

<h4 id="1-instalasi-jekyll-lewati-jika-sudah">1. Instalasi Jekyll (Lewati Jika Sudah)</h4>

<p>Kalau kamu belum install Jekyll, jalankan perintah ini:</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>gem <span class="nb">install </span>jekyll
</code></pre></div></div>

<p>Lalu buat proyek Jekyll baru (atau lewati jika kamu sudah punya):</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>jekyll new nama_app
</code></pre></div></div>

<h4 id="2-tambahkan-tema-ke-proyek-jekyll">2. Tambahkan Tema ke Proyek Jekyll</h4>

<p>Untuk menggunakan tema Niri, edit file <code class="language-plaintext highlighter-rouge">Gemfile</code> kamu dan tambahkan:</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>gem <span class="s2">"niri"</span>, <span class="s2">"~&gt; 1.4"</span>
</code></pre></div></div>

<p>Setelah itu jalankan:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>bundle
</code></pre></div></div>

<p>Selanjutnya, buka file <code class="language-plaintext highlighter-rouge">_config.yml</code> dan tambahkan:</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>theme: niri
</code></pre></div></div>

<h4 id="3-jalankan-proyekmu">3. Jalankan Proyekmu</h4>

<p>Saatnya lihat hasilnya! Jalankan Jekyll server:</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>bundle <span class="nb">exec </span>jekyll s
</code></pre></div></div>

<p>Buka browser dan arahkan ke:</p>

<p><code class="language-plaintext highlighter-rouge">http://localhost:4000</code></p>

<p>Voila! Tema baru kamu sudah tampil.</p>

<h4 id="4-untuk-github-pages">4. Untuk Github Pages</h4>

<p>Jika kamu ingin deploy ke GitHub Pages, kamu perlu menggunakan <code class="language-plaintext highlighter-rouge">remote_theme</code> karena GitHub Pages tidak mengizinkan semua gem pihak ketiga. Tambahkan ini di <code class="language-plaintext highlighter-rouge">_config.yml</code>:</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>remote_theme: whdzera/jekyll-niri
</code></pre></div></div>

<h4 id="5-cari-tema-jekyll-lainnya">5. Cari Tema Jekyll Lainnya</h4>

<p>Kalau kamu ingin eksplorasi tema-tema lain, cek beberapa situs berikut:</p>

<ul>
  <li><a href="http://jekyllthemes.org/">jekyllthemes.org</a></li>
  <li><a href="https://jekyllthemes.io/">jekylltheme.io</a></li>
  <li><a href="https://jamstackthemes.dev/ssg/jekyll/">jamstackthemes</a></li>
  <li>Github kata kunci search ‘jekyll theme’</li>
</ul>

<table>
  <tbody>
    <tr>
      <td>Tips: Selalu cek dokumentasi masing-masing tema untuk cara instalasi yang tepat ya!</td>
    </tr>
  </tbody>
</table>]]></content><author><name>whdzera</name></author><summary type="html"><![CDATA[Halo! Kalau kamu sedang membangun blog statis pakai Jekyll dan pengen tampil beda, kamu bisa mulai dengan mengganti tema Jekyll-nya. Di artikel ini, gw akan tunjukin langkah-langkah simpel buat pasang tema di Jekyll, sekaligus promosi dikit tema buatanku sendiri (:v hehe) : Niri Theme Jekyll.]]></summary></entry><entry><title type="html">Install Ruby dan Rails di Linux Ubuntu</title><link href="https://whdzera.com/blog/install-ruby-on-rails-di-linux" rel="alternate" type="text/html" title="Install Ruby dan Rails di Linux Ubuntu" /><published>2019-04-18T00:00:00+00:00</published><updated>2019-04-18T00:00:00+00:00</updated><id>https://whdzera.com/blog/install-ruby-on-rails-di-linux</id><content type="html" xml:base="https://whdzera.com/blog/install-ruby-on-rails-di-linux"><![CDATA[<h3 id="alasan">Alasan</h3>

<p>mengapa ruby on rails ? karena framework ruby on rails , MVC dan bahasa ruby sangat elegan dan enak dipandang, mungkin :) . tenang, gampang kok instal ruby dan ruby on rails di Ubuntu</p>

<p>jadi gak usah banyak kata, langsung aja kita mulai :</p>

<h3 id="persiapan">Persiapan</h3>

<p>-Koneksi Internet Stabil</p>

<p>-Akses Root</p>

<p>-Sudah terinstal Curl</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span><span class="nb">sudo </span>apt-get <span class="nb">install </span>curl
</code></pre></div></div>

<h3 id="instal-ruby-dengan-rvm">Instal Ruby dengan RVM</h3>

<p>rvm adalah ruby version manager . fungsinya untuk memanage versi dari ruby dan rails.
keuntunganya kita bisa berganti versi dari ruby dan rails dengan mudah dan gak ribet</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span><span class="se">\c</span>url <span class="nt">-L</span> https://get.rvm.io | bash <span class="nt">-s</span> stable <span class="nt">--ruby</span>
</code></pre></div></div>

<p>update rvm dan instal ruby, disini saya menggunakan ruby versi 2.4.0</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span>rvm get stable <span class="nt">--autolibs</span><span class="o">=</span><span class="nb">enable</span>
</code></pre></div></div>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span>rvm <span class="nb">install </span>ruby
</code></pre></div></div>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span>rvm <span class="nt">--default</span> use ruby-2.4.0
</code></pre></div></div>

<p>cek ruby sudah terinstal</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span>ruby <span class="nt">-v</span>
</code></pre></div></div>

<p>cek gem</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span>gem <span class="nt">-v</span>
</code></pre></div></div>

<p>update gem</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span>gem update <span class="nt">--system</span>
</code></pre></div></div>

<p>set rvm global gemset dan gem yg ada</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span>rvm gemset use global
</code></pre></div></div>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span>gem list
</code></pre></div></div>

<p>instal rails dengan ruby gems</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span>gem <span class="nb">install </span>rails
</code></pre></div></div>

<p>cek rails sudah teinstal</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span>rails <span class="nt">-v</span>
</code></pre></div></div>

<p>selesai . kita sudah menginstal ruby dan ruby on rails :)
kita sudah bisa buat project atau aplikasi dengan ruby on rails</p>

<h3 id="buat-project-baru">Buat project baru</h3>

<p>buat direktori baru</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span><span class="nb">mkdir </span>project_rubyonrails
</code></pre></div></div>

<p>masuk direktori project_rubyonrails</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span><span class="nb">cd </span>project_rubyonrails
</code></pre></div></div>

<p>buat project baru ruby on rails</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span>rails new appku
</code></pre></div></div>

<p>masuk direktori project appku</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span><span class="nb">cd </span>appku
</code></pre></div></div>

<p>test server</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span>rails s
</code></pre></div></div>

<p>buka browser dan ketik di address bar</p>

<p><code class="language-plaintext highlighter-rouge">http://localhost:3000</code></p>

<p>jika tidak ada masalah . akan seperti gambar dibawah</p>

<p><img src="https://s3.gifyu.com/images/eNjSzlZ8UOw.jpg" alt="sucess" /></p>]]></content><author><name>whdzera</name></author><summary type="html"><![CDATA[Alasan]]></summary></entry></feed>