Lodash dan Moment.js adalah dua pustaka tambahan yang sangat membantu dalam pengembangan aplikasi. Lodash menyediakan fungsi utilitas untuk manipulasi data, sedangkan Moment.js memudahkan pengelolaan tanggal dan waktu.
### **1. Lodash**
Lodash adalah pustaka JavaScript populer yang menyediakan berbagai fungsi untuk mengelola array, objek, dan tipe data lainnya. Dengan Lodash, tugas yang umumnya kompleks dapat disederhanakan.
#### **Instalasi**
Untuk menginstal Lodash:
```bash
npm install lodash
#### **Contoh Penggunaan**
- **_.chunk(array, size)**: Membagi array menjadi kelompok-kelompok berukuran tertentu.
```javascript
const _ = require('lodash');
const arr = [1, 2, 3, 4, 5, 6];
console.log(_.chunk(arr, 2));
// Output: [[1, 2], [3, 4], [5, 6]]
- **_.debounce(func, wait)**: Membatasi seberapa sering fungsi dipanggil, berguna dalam event listener.
```javascript
const onResize = () => console.log('Window resized!');
const debouncedResize = _.debounce(onResize, 300);
window.addEventListener('resize', debouncedResize);
- **_.merge(object, other)**: Menggabungkan objek secara mendalam.
```javascript
const obj1 = { a: { b: 2 } };
const obj2 = { a: { c: 3 } };
console.log(_.merge(obj1, obj2));
// Output: { a: { b: 2, c: 3 } }
```
#### **Keuntungan Utama Lodash**
Lodash mempermudah penulisan fungsi yang sering digunakan, membuat kode lebih ringkas dan mudah dibaca.
### **2. Moment.js**
Moment.js adalah pustaka populer untuk menangani tanggal dan waktu di JavaScript. Dengan Moment.js, Anda dapat dengan mudah memformat, memodifikasi, dan menampilkan tanggal sesuai kebutuhan.
#### **Instalasi**
Untuk menginstal Moment.js:
```bash
npm install moment
#### **Contoh Penggunaan**
- **Membuat Tanggal Baru**:
```javascript
const moment = require('moment');
const now = moment();
console.log(now.format('YYYY-MM-DD')); // Output: 2024-10-26 (tanggal saat ini)
```
- **Menambah atau Mengurangi Waktu**:
```javascript
const nextWeek = moment().add(1, 'weeks');
console.log(nextWeek.format('YYYY-MM-DD')); // Output: 2024-11-02 (contoh)
- **Mengonversi Format Tanggal**:
```javascript
const date = moment('2024-10-26');
console.log(date.format('dddd, MMMM Do YYYY')); // Output: Saturday, October 26th 2024
- **Menghitung Selisih Waktu**:
```javascript
const start = moment('2024-10-26');
const end = moment('2024-12-01');
console.log(end.diff(start, 'days')); // Output: 36 (jumlah hari)
#### **Alternatif untuk Moment.js**
Karena Moment.js cukup besar, **day.js** sering digunakan sebagai alternatif yang lebih ringan. Jika hanya membutuhkan fitur dasar tanggal dan waktu, day.js bisa menjadi pilihan yang baik.
### **Perbedaan Utama**
- **Lodash**: Fokus pada fungsi utilitas dan manipulasi data.
- **Moment.js**: Fokus pada pengelolaan tanggal dan waktu.