Sunday 21 April 2019

Membuat App Sederhana Mengunakan Nodejs dan Express


Assalamualaikum

Halo teman-teman perkenalkan saya admin baru, kali ini saya akan membagikan tentang cara membuat aplikasi sederhana mengunakan nodejs, artikel ini tentunya untuk pemula seperti admin ini dan tentunya cara memulai dengan proyek inovatif anda sendiri.

langkah-langkah :

  • Pengantar
  • Unduh dan instal Node.js (skip jika sudah diinstall)
  • Menyiapkan bahan-bahan
  • Membuat server dengan Express
  • Template engine mengunakan EJS
  • Styling pada halaman kita
  • Membuat beberapa router
  • Mengoper Data ke Tampilan
  • Kesimpulan

Pengantar 


Express : ExpressJS merupakan framework minimal yang sangat fleksibel. Anda bisa membuat web server HTML, server file statik, aplikasi chat, search engine, sosial media, layanan web dengan akses melalui REST API atau aplikasi hybrid yaitu selain pengguna mempunyai akses melalui REST API juga mempunyai akses ke HTML page.

EJS : template engine ini penulisan sama seperti html biasanya hanya saja kita bisa melakukan beberapa hal yang agak aneh . Untuk apa "E"?  Bisa jadi. Bagaimana dengan "Efektif," "Elegan," atau hanya "Mudah"? EJS adalah bahasa templating sederhana yang memungkinkan Anda menghasilkan markup HTML dengan JavaScript biasa.

Unduh dan Install NodeJS

jika kalian belum mendownload Nodejs kalian bisa mendownloadnya di website reminya disini, kemudian install dan cek versi untuk memastikan sudah terinstall dengan benar

Menyiapkan bahan-bahan

saya pastikan kita sudah instal nodejs, kemudian kita buat folder dimana folder itu digunakan untuk menampung file-file kita, kemudian buka console, cmd, terminal dan kemudia arahkan ke directori

mkdir simple-app #membuat folder
cd simple-app #kita masuk kefolder
npm init



disaat kamu menekan "enter" di "npm init" kalian akan diminta untuk memasukan informasi tentang project yang anda akan buat, kalian bisa menetapkan semua secara defaul dengan menekan enter sampai selesai.


menignstal dependensi dengan NPM

dilangkan ini saya harap ada file "package.json" didalam folder yang kita buat. Untuk menginstal dependensi kita buka cmd/terminal kita tadi tepat didalam folder lalu ketikan :

npm install express --save
npm install ejs --save

ketik perintah diatas satu persatu, sehingga didalam folder terdapat folder "node_modules" dan "package-lock.json" seperti gambar dibawah ini


Kalian bisa lihat di bagian kiri terdapat 1 folder dan 2 file. ini memungkinkan kita untuk mengunakan framework di proyek nodejs yang kita buat. dan anda sekarang bisa lihat di file package.json :

{
  "name": "simple-app",
  "version": "1.0.0",
  "description": "tutorial simple-app",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "rizqi",
  "license": "ISC",
  "dependencies": {
    "ejs": "^2.6.1",
    "express": "^4.16.4"
  }
}

*Mungkin punya kamu berbeda dari ini, tapi itu bukan masalah

Membuat server dengan Express


sampai dilangkah ini kita sudah berhasil mebuat file "package.json" dan menginstal dependensi yang kita kerjakan. Sekarang kita akan membuat server kita sendiri mengunakan Express. Buat file bernama server.js dan kita mulai koding:

// kita membutuhkan denpedensi 
const express = require('express');

const app = express();

// nyalakan servernua
app.listen(3000, function () {
    console.log('Server berjalan diport 3000');
});


untuk menyalakan server kamu, ketikkan "node server.js" di cmd/terminal (pastikan kamu berada difolder proyek yang kamu buat tadi)


jika sudah seperti itu silahkan buak url berikut http://localhost:3000, kalian akan melihat halam berwarna putih (blank page) atau pesan "Cannot GET /". itu berarti semua berjalan semestinya dan selamat !!.  kamu sudah membuat server pertama kamu. tapi kenapa halamannya seperti itu ? itu karena kamu belum membuat router dasar. silahkan tambahkan kode berikut ke server.js

// kita membutuhkan denpedensi 
const express = require('express');

const app = express();

// membuat router untuk "/".
app.get("/", function (request, resolve) {
    resolve.end("Hello World")
});

// nyalakan servernua
app.listen(3000, function () {
    console.log('Server berjalan diport 3000');
});


kode diatas akan menciptakan rute dan memberitahu ketika user mengetik "http://localhost:3000/" maka server akan megirim text "Hello World" itu. tekan "CTRL" + "C" untuk menghentikan kerja server kemudian nyalakan lagi, refresh halamannya


Template engine mengunakan EJS


sebelum kita membuat tampilan halaman tadi, kita harus memberi tahu si-Nodejs ini kalau mesin tampilan "view engine" apa yang kita gunakan. tambahkan kode berikut di server.js :

// kita membutuhkan denpedensi 
const express = require('express');

const app = express();

// set tampilan mesin untuk nodejs
app.set('view engine', 'ejs');

// membuat router untuk "/".
app.get("/", function (request, resolve) {
    resolve.end("Hello World")
});

// nyalakan servernua
app.listen(3000, function () {
    console.log('Server berjalan diport 3000');
});



setelah kode diatas sudah ditulis. Silahkan buat folder baru bernama "views" dan didalamnya ada file baru bernama "index.ejs", struktur folder proyek kita kurang lebih seperti ini:

node_modules
views
|____ index.ejs
package-lock.json
package.json
server.js



ayo kita buat sesuatu untuk ditampilkan halaman web baru kita. kalian bisa buat sendiri atau salin kode dibawah ini. jangan lupa menyimpan file

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Homepage</title>
</head>

<body>
    <h1>Halo saya adalah halaman utama</h1>
</body>

</html>


Ubah pesan respon didalam router kamu. ganti menjadi "resolve.render" fungsinya memungkinkan kita untuk merender template ke halaman web. disini iki akan merender yang kita buat "index.ejs".

buka file server.js dan tambahkan kode berikut:

// kita membutuhkan denpedensi 
const express = require('express');

const app = express();

// set tampilan mesin untuk nodejs
app.set('view engine', 'ejs');

// membuat router untuk "/" dan render file 'index.ejs' ke browser.
app.get("/", function (request, resolve) {
    resolve.render("index")
});

// nyalakan servernua
app.listen(3000, function () {
    console.log('Server berjalan diport 3000');
});


Restart server nodejs kamu sama seperti tadi. Refresh browser kamu. TADAA!!. kamu harus tahu perubahan dalam file ".js" diharuskan untuk merestart server sebelum perubahan benar-benar diterapkan.

Styling pada halaman kita

Akan sangat membosankan jika kita belum membuat style pada halamannya, mari kita tambahkan css. Buat folder baru bernama public dan didalam folder publik terdapat folder css. Buat file style.css dan letakan didalam folder css itu.

├── node_modules
├── package.json
├── package-lock.json
├── public
│   └── css
│       └── style.css
├── server.js
└── views
    └── index.ejs

setelah itu tambahkan tambahkan kode, untuk mempercantik halaman web kita.

body {
    background-color: aliceblue;
}

.wrap {
    max-width: 720px;
    text-align: center;
    margin: 0 auto;
}

untuk menerapkan styling diatas kita butuh:

  1. Memberitahu node dimana letak css kita
  2. dan tambahkan di index.ejs

tambah kan kode dibawah ini di server.js :
app.use(express.static('public'))
dan tambahkan link css ke head di index.ejs :
<link rel="stylesheet" type="text/css" href="/css/style.css">



jika kita merestart server kita dan merefresh browser kita sekarang akan melihat background berganti warna. Selamat!, kita sekarang sudah membuat server web sederhana dengan Express + EJS dan membuat css-nya.

Membuat beberapa Router

sekarang kita hanya cuma memiliki 1 router yaitu "/" atau http://localhost:3000/ . Mari kita buat beberapa router lagi seperti "/profile" dan "/contact" 

// membuat router untuk "/" dan render file 'index.ejs' ke browser.
app.get("/", function (request, resolve) {
    resolve.render("index")
});

app.get("/profile", function (request, resolve) {
    resolve.render("profile")
});

app.get("/contact", function (request, resolve) {
    resolve.render("contact")
});

klik untuk memperbesar

sebelum ini berhasil, kita perlu membuat "views" atau tampilan dari kedua router itu. buat dua file didalam folder views profile.ejs dan contact.ejs.


jangan takut atau ragu untuk menulis apapun itu, buatlah tampilan halaman yang kamu inginkan, ketika sudah selesai restart server dan lihat http://localhost:3000/contact dan http://localhost:3000/profile. Dan kamu akan melihat konten yang kamu telah buat.
atau kami bisa salin kode saya:

profile.ejs


<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Profil</title>
    <link rel="stylesheet" href="/css/style.css">
</head>

<body>
    <h1>Halo saya adalah halaman profil</h1>
</body>

</html>

contact.ejs

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Kontak</title>
    <link rel="stylesheet" href="/css/style.css">
</head>

<body>
    <h1>Halo saya adalah halaman kontak</h1>
</body>

</html>

Mengoper Data ke Tampilan

Mari kita deklarasikan beberapa variabel sederhana untuk judul halaman kita dan mengirimpan ke tampilan, tambahkan kode berikut ke router

// membuat router untuk "/" dan render file 'index.ejs' ke browser.
// buat variabel untuk halaman web kita
app.get("/", function (request, resolve) {
    var title = "Halaman utama";
    resolve.render("index",{
        title: title
    })
});

app.get("/profile", function (request, resolve) {
    var title = "Halaman profile";
    resolve.render("profile", {
        title: title
    })
});

app.get("/contact", function (request, resolve) {
    var title = "Halaman kontak";
    resolve.render("contact", {
        title: title
    })
});

untuk mengakses nilai variabel dan menampilkannya dalam view kita ganti menjadi "<title><%= title %></title>".

index.ejs:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title><%= title %></title>
    <link rel="stylesheet" href="/css/style.css">
</head>

<body>
    <h1>Halo saya adalah halaman utama</h1>
    <p>Sekarang kamu berada dihalaman</p>
    <p><%= title %></p>
</body>

</html>

untuk file profile.ejs dan contact.ejs semuanya sama dengan index.ejs

Kasimpulan

Jadi ini dia. kita sudah membuat situs web sederhana dibuat dengan Nodejs, Express dan Ejs. dengan mengunakan variabel dan mengirimkan datanya, kita bisa membuat aplikasi web yang cepat, responsif, dan sangat modular dalam waktu singkat!. semoga kalian bisa ikuti dan sampai jumpa di tutorial berikutnya
Disqus Comments