DEV Community

Cover image for node js cli app
Andi Ismail
Andi Ismail

Posted on

node js cli app

df

mkdir cli_app
npm init

tambahkan 
"type": "module",
Enter fullscreen mode Exit fullscreen mode
//package.json

{
  "name": "cli_app",
  "version": "1.0.0",
  "description": "membuat sebuah aplikasi cli sederhanan ",
  "main": "index.js",
  "type": "module",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "andismail",
  "license": "MIT"
}

Enter fullscreen mode Exit fullscreen mode

tambahkan index.js jalankan dengan node index.js

Image tampilan pertama

untuk menampilkan banyak line dengan menggunakan bectick ``.

`
//index.js

//manampilkan teks ke console
console.clear()
const data = {
username : "andiismail",
email : "andi@andi.com",
}

console.log(`
===================================
selamat datang di applikasi saya
===================================
username : ${data.username}
--------------------------
email : ${data.email}
===================================

)
``

selanjutnya kita akan mencoba menangkap inputan user dengan packet inquirer

Image inquirer

Image install

`
//index.js

import inquirer from 'inquirer';
console.log(
===================================
selamat datang di applikasi saya
===================================
)

inquirer.prompt([
{
name : "fullname",
message : "masukkan nama lengkap kamu : "
},
{
name : 'age',
message : 'Masukan usia kamu: '
}
])
.then((ans)=>{
console.log(ans)
})

`
hasilnya :

Image selamat datang

kita sudah berhasil menangkap inputan user di console log selanjutnya kita akan menampilkan hasilnya ke user

console.log(

--------------------------------
Nama lengkap : ${ans.fullname}
Usia : ${ans.age}
--------------------------------
)

Image type data
console.clear() agar pertanyaan sebelumnya gak muncul

`
//index.js

import inquirer from 'inquirer';
console.log(
===================================
selamat datang di applikasi saya
===================================
)

inquirer.prompt([
{
name : "fullname",
message : "masukkan nama lengkap kamu : "
},
{
name : 'age',
message : 'Masukan usia kamu: '
},
{
name : 'married',
message : 'Apakah kamu sudah menikah ?',
type : "list",
choices : ['belum', 'sudah', 'baru mau']
},
])
.then((ans)=>{
console.log(
--------------------------------
Nama lengkap : ${ans.fullname}
Usia : ${ans.age}
Menikah : ${ans.married}
--------------------------------
)
})

`

Image menikah

sekarang kita buat aplikasi sederhana untuk data warga buat file dataWarga.js

`
//dataWarga.js
// buatlah sebuah aplikasi sederhana untuk data warga
// buat beberapa pertanyaan
/**

  • 1. Nama lengkap
  • 2. Tempat tanggal lahir
  • 3. no ktp
  • 4. no telp
  • 5. alamat lengkap
  • 6. status << menggunakan list choice [menikah single, duda/janda]
  • */

//dan tampilkan

import inquirer from "inquirer";

console.info(`

Aplikasi data- warga

`)

inquirer.prompt([
{
name : 'fullname',
message : 'Name lengkap'
},
{
name : 'ttl',
message : 'Tempat tanggal lahir'
},
{
name : 'ktp',
message : 'Nomor KTP'
},
{
name : 'phone',
message : 'Nomor Telp'
},
{
name : 'fullname',
message : 'Name lengkap'
},
{
name : 'address',
message : 'Alamat lengkap'
},
{
name : 'status',
message : 'Alamat lengkap',
type : 'list',
choices : ['sudah', 'belum', 'pernah']
},
])

.then(ans=>{
console.clear()
console.log(
--------------------------------------
Nama lengkap : ${ans.fullname}
Tempat tanggal lahir : ${ans.ttl}
NO KTP : ${ans.ktp}
Telp : ${ans.phone}
Alamat : ${ans.address}
Status : ${ans.status}
--------------------------------------
)
})

`
hasilnya :

Image dataWarga

selanjutnya kita akan menyimpan inputan ini kedalam file txt menggunakan packages fs kita buat folder storage,

`
//dataWarga.js

import inquirer from "inquirer";
import fs from 'fs'

console.info(`

Aplikasi data- warga

`)

inquirer.prompt([
{
name : 'fullname',
message : 'Name lengkap'
},
{
name : 'ttl',
message : 'Tempat tanggal lahir'
},
{
name : 'ktp',
message : 'Nomor KTP'
},
{
name : 'phone',
message : 'Nomor Telp'
},
{
name : 'fullname',
message : 'Name lengkap'
},
{
name : 'address',
message : 'Alamat lengkap'
},
{
name : 'status',
message : 'Alamat lengkap',
type : 'list',
choices : ['sudah', 'belum', 'pernah']
},
])

.then(ans=>{
console.clear()
let result =

--------------------------------------
Nama lengkap : ${ans.fullname}
Tempat tanggal lahir : ${ans.ttl}
NO KTP : ${ans.ktp}
Telp : ${ans.phone}
Alamat : ${ans.address}
Status : ${ans.status}
--------------------------------------

//menulis data result kedalan file txt
fs.writeFileSync('./storage/test.txt', result, 'utf-8')

//tampilkan ke console result
console.log(result)
Enter fullscreen mode Exit fullscreen mode

})
`
hasilnya

Image test.txt

selanjutnya kita

`
//dataWarga

import inquirer from "inquirer";
import fs from 'fs'

console.info(`

Aplikasi data- warga

`)

inquirer.prompt([
{
name : 'fullname',
message : 'Name lengkap'
},
{
name : 'ttl',
message : 'Tempat tanggal lahir'
},
{
name : 'ktp',
message : 'Nomor KTP'
},
{
name : 'phone',
message : 'Nomor Telp'
},
{
name : 'fullname',
message : 'Name lengkap'
},
{
name : 'address',
message : 'Alamat lengkap'
},
{
name : 'status',
message : 'Alamat lengkap',
type : 'list',
choices : ['sudah', 'belum', 'pernah']
},
])

.then(ans=>{
console.clear()
let result =

--------------------------------------
Nama lengkap : ${ans.fullname}
Tempat tanggal lahir : ${ans.ttl}
NO KTP : ${ans.ktp}
Telp : ${ans.phone}
Alamat : ${ans.address}
Status : ${ans.status}
--------------------------------------

//buat nama file
let fileName = ans.fullname

//menulis data result kedalan file txt
fs.writeFileSync(`./storage/${ fileName}.txt`, result, 'utf-8')

//tampilkan ke console result
console.log(result)
Enter fullscreen mode Exit fullscreen mode

})
`

Image menyimpan file kita ke txt
Terima kasih.
https://github.com/andiks2018/JvalleyNode-cliApp.git

Top comments (0)