<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:media="http://search.yahoo.com/mrss/"><channel><title><![CDATA[Aldi.dev]]></title><description><![CDATA[Aldi.dev]]></description><link>https://aldi.dev/</link><image><url>https://aldi.dev/favicon.png</url><title>Aldi.dev</title><link>https://aldi.dev/</link></image><generator>Ghost 5.88</generator><lastBuildDate>Fri, 17 Apr 2026 04:39:43 GMT</lastBuildDate><atom:link href="https://aldi.dev/rss/" rel="self" type="application/rss+xml"/><ttl>60</ttl><item><title><![CDATA[Catatan Belajar NATS Bagian 3 Queue Groups]]></title><description><![CDATA[Mencoba Queue Groups]]></description><link>https://aldi.dev/catatan-belajar-nats-bagian-3-queue-groups/</link><guid isPermaLink="false">671abcbeb5650f18581dd9eb</guid><category><![CDATA[Distributed System]]></category><category><![CDATA[NATS]]></category><dc:creator><![CDATA[Aldi Nugraha]]></dc:creator><pubDate>Wed, 04 Sep 2019 17:00:00 GMT</pubDate><media:content url="https://images.unsplash.com/photo-1628557960762-0d884fd31ea0?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDMzfHxxdWV1ZXxlbnwwfHx8fDE3Mjk4MDU1NjR8MA&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=2000" medium="image"/><content:encoded><![CDATA[<ul><li><a href="https://aldi.dev/catatan-belajar-nats-bagian-1-pengenalan/" rel="noreferrer">Catatan Belajar NATS Bagian 1 Pengenalan</a></li><li><a href="https://aldi.dev/catatan-belajar-nats-bagian-2-simple-publish-subscribe-dengan-docker-dan-nodejs/" rel="noreferrer">Catatan Belajar NATS Bagian 2 Simple Publish Subscribe dengan Docker dan Nodejs</a></li></ul><img src="https://images.unsplash.com/photo-1628557960762-0d884fd31ea0?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDMzfHxxdWV1ZXxlbnwwfHx8fDE3Mjk4MDU1NjR8MA&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=2000" alt="Catatan Belajar NATS Bagian 3 Queue Groups"><p>Setelah kita melakukan praktek simple publish subscribe menggunakan&#xA0;<strong>NATS</strong>.&#xA0;<strong>NATS</strong>&#xA0;juga menyediakan fitur&#xA0;<strong>Queue Groups</strong>&#xA0;yang digunakan biasanya untuk kebutuhan replika clustering. Jika suatu service mempunyai replika lebih dari satu, maka pesan tidak akan di kirimkan kesemua service yang sama karna akan mengakitbatkan duplikat. Maka dari itu&#xA0;<strong>Queue Groups</strong>&#xA0;di sini berfungsi untuk menyeimbangkan (Seperti load balancer) semua data yang dikirim ke suatu kelompok service yang sama.</p><figure class="kg-card kg-image-card"><img src="https://aldinp16.github.io/images/catatan-belajar-nats-bagian-3/queue-groups.png" class="kg-image" alt="Catatan Belajar NATS Bagian 3 Queue Groups" loading="lazy" width="521" height="203"></figure><p>diambil dari https://nats-io.github.io/docs/developer/concepts/queue.html</p><p>Untuk pengimplementasian di&#xA0;<strong>NATS.js</strong>&#xA0;nya pun cukup mudah, kita hanya butuh menambahkan&#xA0;<code>{ queue: &apos;&lt;namaGroup&gt;&apos; }</code>. di parameter kedua di fungsi&#xA0;<code>nats.subscribe()</code>. contoh:</p><pre><code>nats.subscribe(&apos;foo&apos;, {&apos;queue&apos;:&apos;job.workers&apos;}, function() {
  received += 1;
});
</code></pre><p>Untuk langsung mencoba mari kita ubah subscriber yang postingan sebelumnya kita buat lalu tambahkan queue groupsnya.</p><pre><code>nats.subscribe(TOPIC, {&apos;queue&apos;: &apos;job.workers&apos;}, handleBandungSuhuTopic)
</code></pre><p>Lalu kita coba test jalankan 2 subcriber dengan queue groups yang sama, dan satu publisher. Jika berhasil, makan pesan tidak akan di terima oleh semua subscriber. Tetapi akan di bagi2 ke semua subscriber. seperti berikut:</p><figure class="kg-card kg-image-card"><img src="https://aldinp16.github.io/images/catatan-belajar-nats-bagian-3/contoh-queue-groups.png" class="kg-image" alt="Catatan Belajar NATS Bagian 3 Queue Groups" loading="lazy" width="1228" height="690"></figure><p>Repo catatan hasil belajar ini bisa diliat di github:&#xA0;<a href="https://github.com/aldinp16/learn-nats/">https://github.com/aldinp16/learn-nats/</a></p>]]></content:encoded></item><item><title><![CDATA[Catatan Belajar NATS Bagian 2 Simple Publish Subscribe dengan Docker dan Nodejs]]></title><description><![CDATA[Instalasi nats-server menggunakan Docker dan Nodejs Sebagai client]]></description><link>https://aldi.dev/catatan-belajar-nats-bagian-2-simple-publish-subscribe-dengan-docker-dan-nodejs/</link><guid isPermaLink="false">671abb24b5650f18581dd9c7</guid><category><![CDATA[Distributed System]]></category><category><![CDATA[NATS]]></category><dc:creator><![CDATA[Aldi Nugraha]]></dc:creator><pubDate>Sun, 18 Aug 2019 17:00:00 GMT</pubDate><media:content url="https://images.unsplash.com/photo-1722609776872-302d72933add?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDF8fGJsdWUlMjBjb250YWluZXJ8ZW58MHx8fHwxNzI5ODA1MTI4fDA&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=2000" medium="image"/><content:encoded><![CDATA[<ul><li><a href="https://aldi.dev/catatan-belajar-nats-bagian-1-pengenalan/" rel="noreferrer">Catatan Belajar NATS Bagian 1 Pengenalan</a></li></ul><img src="https://images.unsplash.com/photo-1722609776872-302d72933add?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDF8fGJsdWUlMjBjb250YWluZXJ8ZW58MHx8fHwxNzI5ODA1MTI4fDA&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=2000" alt="Catatan Belajar NATS Bagian 2 Simple Publish Subscribe dengan Docker dan Nodejs"><p>Setelah pengenalan tentang NATS, disini saya akan memulai praktek belajar simple Publish Subscribe menggunakan&#xA0;<a href="https://github.com/nats-io/nats.js">NATS.js</a>&#xA0;sebagai client dan instalasi nats server menggunakan Docker.</p><p>Pertama pull docker image NATS di&#xA0;<a href="https://hub.docker.com/_/nats">dockerhub</a></p><pre><code>$ docker pull nats:latest
</code></pre><p>Lalu jalankan nats-server menggunakan perintah&#xA0;<code>docker run</code>. disini kita melakukan expose port&#xA0;<code>4222</code>&#xA0;dan&#xA0;<code>8222</code>&#xA0;dari container agar dapat di akses di mesin lokal kita. nats berjalan di port&#xA0;<code>4222</code>&#xA0;sementara port&#xA0;<code>8222</code>&#xA0;di gunakan untuk monitoring server nats via http.</p><pre><code>$ docker run -d --name nats-server -p 4222:4222 -p 8222:8222 nats
</code></pre><p>Lalu cek apakah server nats telah siap digunakan atau tidak menggunakan docker logs</p><pre><code>$ docker ps
$ docker logs -f &lt;container-id&gt;
</code></pre><p>Jika nats server siap di gunakan akan mengeluarkan log kurang lebih sebagai berikut</p><figure class="kg-card kg-image-card"><img src="https://aldinp16.github.io/images/catatan-belajar-nats-bagian-2/dockerlog.png" class="kg-image" alt="Catatan Belajar NATS Bagian 2 Simple Publish Subscribe dengan Docker dan Nodejs" loading="lazy" width="670" height="440"></figure><p>Lalu menyiapkan client nodejsnya. install dulu&#xA0;<strong>nats.js</strong>&#xA0;melalui npm di folder root projectnya.</p><pre><code>npm install nats
</code></pre><p>Lalu kita mulai membuat client untuk publishernya. publisher akan melakukan publish angka random antara 0 - 99 ke topic&#xA0;<code>jawabarat.bandung.suhu</code>&#xA0;setiap 5000 milisecond (5 detik). Disini parameter&#xA0;<code>NATS.connect()</code>&#xA0;tidak di isi, maka akan automatis mengset host menjadi&#xA0;<code>localhost</code>&#xA0;dan port default yaitu&#xA0;<code>4222</code>. Kita berinama&#xA0;<code>publisher.js</code></p><pre><code>#!/usr/bin/env node

&apos;use strict&apos;

const NATS = require(&apos;nats&apos;)
const nats = NATS.connect()

const interval = 5000

function sendRandomSuhu () {
  // generate random number beetwen 0 and 99
  const randomNumber = Math.floor(Math.random() * 100)
  const topic = &apos;jawabarat.bandung.suhu&apos;
  nats.publish(topic, randomNumber.toString())
  console.log(`[PUBLISHER] Publish ${randomNumber} to ${topic}`)
}

function onConnectHandler () {
  console.log(`[PUBLISHER] Connected, ready for publish random suhu every ${interval/1000} Second`)
}

nats.on(&apos;connect&apos;, onConnectHandler)

// publish random number every 5 second
setInterval(sendRandomSuhu, interval)
</code></pre><p>Lalu membuat subscribernya, disini saya buat subscriber agar memiliki&#xA0;<code>ID</code>&#xA0;diambil dari parameter pertama saat script dijalankan. Kegunaanya agar dapat dapat mengidentifikasi subscriber karna kita akan menjalankan lebih dari satu subscriber. Lalu berinama&#xA0;<code>subscriber.js</code></p><pre><code>#!/usr/bin/env node

&apos;use strict&apos;

const NATS = require(&apos;nats&apos;)

const nats = NATS.connect()
const ID = process.argv[2]
const TOPIC = &apos;jawabarat.bandung.suhu&apos;

// check if id filled
if (typeof ID === &apos;undefined&apos;) {
  console.error(`ID can&apos;t empty.`)
  process.exit(1)
}

function onConnectHandler () {
  console.log(`[SUBSCRIBER-${ID}] (${TOPIC}) Connected, ready receive message.`)
}

function handleBandungSuhuTopic (msg) {
  console.log(`[SUBSCRIBER-${ID}] (${TOPIC}) Received data: ${msg}`)
}

nats.on(&apos;connect&apos;, onConnectHandler)
nats.subscribe(TOPIC, handleBandungSuhuTopic)
</code></pre><p>Setelah semuanya siap. pertama kita jalankan subscribernya. disini kita menjalankan dua subcriber untuk melihat apakah pesan diterima oleh semua subscriber atau tidak.</p><pre><code>$ node subscriber.js 1
$ node subscriber.js 2
</code></pre><p>Lalu jalankan publishernya</p><pre><code>$ node publisher.js
</code></pre><p>Bila tidak mengalami error, seharusnya message dapat di publish oleh publisher dan di terima oleh semua subscriber.</p><figure class="kg-card kg-image-card"><img src="https://aldinp16.github.io/images/catatan-belajar-nats-bagian-2/pubsub.png" class="kg-image" alt="Catatan Belajar NATS Bagian 2 Simple Publish Subscribe dengan Docker dan Nodejs" loading="lazy" width="1287" height="692"></figure><p>Bisa juga monitoring client yang sedang connect menggunakan http api, dengan mengakses&#xA0;<code>http://localhost:8222/connz</code></p><figure class="kg-card kg-image-card"><img src="https://aldinp16.github.io/images/catatan-belajar-nats-bagian-2/monitor-nats.png" class="kg-image" alt="Catatan Belajar NATS Bagian 2 Simple Publish Subscribe dengan Docker dan Nodejs" loading="lazy" width="670" height="440"></figure><p>Repo catatan hasil belajar ini bisa diliat di github:&#xA0;<a href="https://github.com/aldinp16/learn-nats/">https://github.com/aldinp16/learn-nats/</a></p>]]></content:encoded></item><item><title><![CDATA[Catatan Belajar NATS Bagian 1 Pengenalan]]></title><description><![CDATA[NATS (Neural Autonomic Transport System) adalah salah satu sistem aplikasi opensource pendistribusian pesan.]]></description><link>https://aldi.dev/catatan-belajar-nats-bagian-1-pengenalan/</link><guid isPermaLink="false">671ab98db5650f18581dd9a9</guid><category><![CDATA[Distributed System]]></category><category><![CDATA[NATS]]></category><dc:creator><![CDATA[Aldi Nugraha]]></dc:creator><pubDate>Sun, 18 Aug 2019 12:00:00 GMT</pubDate><media:content url="https://images.unsplash.com/photo-1687300172792-68a13c4e149a?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDExfHxzZXJ2ZXIlMjByYWNrfGVufDB8fHx8MTcyOTgwNDg1N3ww&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=2000" medium="image"/><content:encoded><![CDATA[<img src="https://images.unsplash.com/photo-1687300172792-68a13c4e149a?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDExfHxzZXJ2ZXIlMjByYWNrfGVufDB8fHx8MTcyOTgwNDg1N3ww&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=2000" alt="Catatan Belajar NATS Bagian 1 Pengenalan"><p><a href="https://nats.io/"><strong>NATS</strong></a>&#xA0;adalah salah satu sistem aplikasi untuk melakukan pertukaran pesan asyncronus yang biasa digunakan untuk komunikasi antara aplikas atau suatu services komputer.</p><p>Konsep pertukaran pesan menggunakan Publish dan Subscribe mirip dengan MQTT. Dimana service yang menerima data biasa di sebut&#xA0;<em>Consumer/Subscriber</em>, dan service yang bertugas mengirim data biasa di sebut&#xA0;<em>Producer/Publisher</em></p><p><strong>NATS</strong>&#xA0;Bisa dipakai untuk kebutuhan komunikasi antar service di arsitektur&#xA0;<em>microservices</em>, untuk kebutuhan collecting data device IOT, kebutuhan data streaming, dan lain-lain.</p><figure class="kg-card kg-image-card"><img src="https://aldinp16.github.io/images/catatan-belajar-nats-bagian-1/PubSub.png" class="kg-image" alt="Catatan Belajar NATS Bagian 1 Pengenalan" loading="lazy" width="531" height="251"></figure><p>Di dalam NATS membutuhkan Topic agar antar service dapat berkomunikasi. topic adalah sebuah string biasa yang harus diketahui oleh&#xA0;<em>subscriber</em>&#xA0;ataupun&#xA0;<em>publisher</em>&#xA0;agar masing2 tau dimana harus mempublish/melisten topic agar mendapatkan data yang sesuai.</p><p>Selain topic biasa, Di NATS bisa juga menggunakan Wilcards topic untuk mendapatkan/mengirim data lebih dari satu nested topic tertentu. Nested topic dalam nats dipisahkan menggunakan (<em>.</em>)&#xA0;<strong>dot/titik</strong>. misal:</p><ul><li><code>jawabarat.bandung.suhu</code></li><li><code>jawabarat.bogor.suhu</code></li><li><code>jawabarat.bandung.suhu.celcius</code></li><li><code>jawabarat.bandung.suhu.farenheit</code></li></ul><p>Wilcard yang pertama menggunakan simbol&#xA0;<strong>asterik</strong>&#xA0;(<em>*</em>) untuk mencocokan satu topic di dalam nested topic. misal:&#xA0;<code>jawabarat.*.suhu</code>&#xA0;untuk mendapatkan data suhu dari semua kota di jawabarat.</p><figure class="kg-card kg-image-card"><img src="https://aldinp16.github.io/images/catatan-belajar-nats-bagian-1/Asterik-Wilcard.png" class="kg-image" alt="Catatan Belajar NATS Bagian 1 Pengenalan" loading="lazy" width="731" height="284"></figure><p>Wilcard yang kedua menggunakan simbol&#xA0;<strong>greather-than</strong>&#xA0;(<em>&gt;</em>) untuk mencocokan dua topic atau lebih dalam nested topic. misal:&#xA0;<code>jawabarat.bandung.&gt;</code>&#xA0;untuk mendapatkan data suhu di kota bandung, jawabarat. dengan skala farenheit dan celcius</p><figure class="kg-card kg-image-card"><img src="https://aldinp16.github.io/images/catatan-belajar-nats-bagian-1/Greather-Than-Wilcard.png" class="kg-image" alt="Catatan Belajar NATS Bagian 1 Pengenalan" loading="lazy" width="762" height="379"></figure><p>Selain dengan konsep Publish-Subscribe, NATS pun mendukung komunikasi dengan cara Request-Reply dimana salah satu client akan melakukan Permintaan (Request) dan menunggu balasan dengan batas waktu tertantu (timeout)</p><ul><li><a href="https://nats-io.github.io/docs/developer/concepts/subjects.html">https://nats-io.github.io/docs/developer/concepts/subjects.html</a></li><li><a href="https://nats-io.github.io/docs/developer/concepts/pubsub.html">https://nats-io.github.io/docs/developer/concepts/pubsub.html</a></li><li><a href="https://nats-io.github.io/docs/developer/concepts/reqreply.html">https://nats-io.github.io/docs/developer/concepts/reqreply.html</a></li></ul>]]></content:encoded></item><item><title><![CDATA[Mengenal Framework Web AdonisJS]]></title><description><![CDATA[AdonisJs adalah web framework NodeJs dengan konsep MVC
]]></description><link>https://aldi.dev/mengenal-framework-web-adonisjs/</link><guid isPermaLink="false">671ab661b5650f18581dd97b</guid><category><![CDATA[Javascript]]></category><category><![CDATA[AdonisJS]]></category><category><![CDATA[NodeJS]]></category><category><![CDATA[Framework]]></category><dc:creator><![CDATA[Aldi Nugraha]]></dc:creator><pubDate>Wed, 24 Apr 2019 15:40:00 GMT</pubDate><media:content url="https://images.unsplash.com/photo-1656588360304-8dddc6255476?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDExfHxwdXJwbGV8ZW58MHx8fHwxNzI5NzgwNjc1fDA&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=2000" medium="image"/><content:encoded><![CDATA[<img src="https://images.unsplash.com/photo-1656588360304-8dddc6255476?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDExfHxwdXJwbGV8ZW58MHx8fHwxNzI5NzgwNjc1fDA&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=2000" alt="Mengenal Framework Web AdonisJS"><p><a href="https://adonisjs.com/"><strong>AdonisJ</strong></a>S&#xA0;adalah web framework&#xA0;<strong>NodeJs</strong>&#xA0;dengan konsep&#xA0;<strong>MVC</strong>. Sebelum kita mengenal jauh tentang Adonis ini ada baiknya kita mengenal terlebih dahulu apa itu NodeJs dan konsep MVC itu sendiri.</p><figure class="kg-card kg-image-card"><img src="https://upload.wikimedia.org/wikipedia/commons/thumb/d/d9/Node.js_logo.svg/590px-Node.js_logo.svg.png" class="kg-image" alt="Mengenal Framework Web AdonisJS" loading="lazy" width="590" height="362"></figure><blockquote>NodeJs adalah Javascript runtime yang bergguna untuk menjalankan kode Javascript disisi server (Server Side). Atau lebih mudahnya kita anggap Javscript untuk keperluan Server Side. Seperti yang kita semua tau sebelumnya bahwa Javascript adalah pemograman yang berjalan di sisi client bersamaan dengan CSS dan HTML untuk membuat antarmuka Web menjadi lebih interaktif.</blockquote><figure class="kg-card kg-image-card"><img src="https://upload.wikimedia.org/wikipedia/commons/thumb/b/b5/ModelViewControllerDiagram2.svg/1200px-ModelViewControllerDiagram2.svg.png" class="kg-image" alt="Mengenal Framework Web AdonisJS" loading="lazy" width="1200" height="549"></figure><blockquote>MVC Atau Model View Controller adalah sebuah konsep untuk membuat aplikasi dengan memisahkan Data (Model), Tampilan (View), dan proses (Controller). Konsep MVC ini akan memudahkan dalam membuat atau me-maintance suatu aplikasi karna struktur aplikasi yang jelas.</blockquote><p>Saya sangat suka dengan AdonisJS ini karna dilengkapi banyak fitur sepeti&#xA0;<a href="https://github.com/adonisjs/adonis-ally"><strong>adonis-ally</strong></a>,&#xA0;<a href="https://github.com/adonisjs/adonis-lucid"><strong>adonis-lucid</strong></a>&#xA0;dan lain2 sehingga bisa mempercepat proses pembuatan aplikasi tanpa harus bangun dari awal. Selain itu AdonisJS sudah mengadopsi&#xA0;<em>async / await</em>&#xA0;sehingga kode terlihat lebih indah dibanding kita memakai callback ataupun promise.&#xA0;<a href="https://adonisjs.com/docs/">Dokumentasinya</a>&#xA0;yang cukup lumayan lengkap, dapat mudah dipahami dan adanya komunitas yang aktif di&#xA0;<a href="https://forum.adonisjs.com/">forum</a>&#xA0;adalah salah satu kenapa saya cukup yakin framework ini akan berkembang menjadi besar.</p><pre><code>const User = use(&apos;App/Models/User&apos;)

class UserController {
  async index ({ request, response }) {
    const users = await User.all()
    return response.ok({
      status: 200,
      error: false,
      data: users,
      message: null
    })
  }

  async show ({ request, response, params: { userId } }) {
    const user = await User.findOrFail(userId)
    return response.ok({
      status: 200,
      error: false,
      data: user,
      message: null
    })
  }
}
</code></pre><p>Walaupun AdonisJS ini memakai konsep MVC tetapi kitapun bisa membuat REST API karna AdonisJS ini menyediakan 3 blueprint yang bisa kita pakai yaitu Fullstack, Api only, dan slim. Jadi jika ingin membuat suatu REST API kita tidak membutuhkan fitur view karna yang di return hanyalah sebuah JSON ataupun XML, jadi kita bisa memakai blueprint &#x201C;Api only&#x201D; untuk mengurangi dependensi yang tidak di pakai.</p><p>Seperti yang sebelumnya saya bilang, AdonisJS dilengkapi banyak fitur sehingga mempercepat proses development dan pembuatan suatu aplikasi web.</p><ul><li>Router</li><li>View (<strong>EdgeJS</strong>)</li><li>SQL ORM (<strong>Lucid</strong>)</li><li>Migrasi</li><li>Exception Handler</li><li>Data Validation / Data Sanitization</li><li>Unit / Functional Test</li><li>Dan masih banyak yang lainya.</li></ul><p>Untuk memulai dengan AdonisJS cukup mudah, pertama kita harus install Nodejs versi 8 atau terbaru terlebih dahulu. Saya memakai Ubuntu dan kebutulan instalasi di ubuntu tidak terlalu ribet, untuk sistem operasi yang berbeda bisa di sesuaikan,&#xA0;<a href="https://nodejs.org/en/download/">Download NodeJS</a>. Silakan buka terminal dan paste baris kode di bawah ini dan ikuti langkah2 selanjutnya yang diperintahkan.</p><pre><code>curl -sL https://rpm.nodesource.com/setup_10.x | bash -
</code></pre><p>Bila Nodejs sudah terpasang, selanjutnya kita install adonis-cli untuk memudahkan kita membuat web menggunakan AdonisJS.</p><pre><code>npm i -g @adonisjs/cli
</code></pre><p>Bila anda mengalami error EACCES saat menginstall adonis-cli secara global, coba ikuti tutor berikut&#xA0;<a href="https://docs.npmjs.com/resolving-eacces-permissions-errors-when-installing-packages-globally">Resolving EACCES permissions errors when installing packages globally</a></p><p>Lalu kita cek apakah adonis-cli sudah terpasang dengan benar di mesin kita atau belum dengan perintah dibawah. bila telah terpasang akan keluar perintah2 apa saja yang kita bisa panggil.</p><pre><code>adonis --help
</code></pre><p>Lanjut dengan membuat webnya dengan perintah di bawah. Perintah dibawah akan membuat directory bernama&#xA0;<em>adonisjs-web-app</em>&#xA0;dan melakukan clone blueprint AdonisJS versi fullstack serta melakukan instalasi semua depedensi yang di butuhkan (<code>npm install</code>).&#xA0;<em>adonisjs-web-app adalah nama aplikasinya</em>.</p><pre><code>adonis new adonisjs-web-app
</code></pre><p>Jika telah seslai melakukan perintah di atas, selanjutnya kita masuk ke hasil directory yang telah dilakukan perintah di atas dan menjalankan webnya dengan environment development</p><pre><code>cd adonisjs-web-app
adonis serve --dev
</code></pre><p>Lalu akses&#xA0;<em>http://localhost:3333</em>&#xA0;di browser dan akan terlihat bacaan&#xA0;<em>It Works!</em>&#xA0;yang menandakan bawah kita siap untuk membangun web dengan AdonisJS yang kita bahas di lain hari! Terimakasih.</p>]]></content:encoded></item></channel></rss>