diff --git a/back-end/caching/after-redis.png b/back-end/caching/after-redis.png
new file mode 100644
index 0000000..081944f
Binary files /dev/null and b/back-end/caching/after-redis.png differ
diff --git a/back-end/caching/before-redis.png b/back-end/caching/before-redis.png
new file mode 100644
index 0000000..6d2a2ec
Binary files /dev/null and b/back-end/caching/before-redis.png differ
diff --git a/back-end/caching/redis.md b/back-end/caching/redis.md
new file mode 100644
index 0000000..e850d94
--- /dev/null
+++ b/back-end/caching/redis.md
@@ -0,0 +1,150 @@
+# Caching
+
+
+
+## 1. Penjelasan
+
+Cache adalah proses yang digunakan oleh browser dan aplikasi untuk menyimpan informasi. Kamu pasti pernah menghapus history di browser, kan? Waktu menghapus history, pasti ada frasa “Bersihkan Cache”. Misalnya di Chrome, kalau ingin menghapus history akan diberikan pilihan untuk menghapus gambar dan file yang disimpan dalam cache.
+
+## 2. Mengapa Menggunakan Caching
+
+Kita dapat menggunakan cache agar dapat meningkatkan kecepatan, mengurangi penggunaan bandwith dan server load. Dengan menggunakan cache kita dapat meningkatkan kecepatan akses data.
+
+## 3. Keuntungan Menggunakan Caching
+
+1. **Struktur data fleksibel**
+2. **Sederhana dan mudah digunakan**
+3. **Sangat cepat** : Redis sangat cepat dan bisa melakukan sekitar 110000 SET per detik, sekitar 81000 GET per detik.
+
+## 4. Pengenalan Redis
+
+Redis, singkatan dari Remote Dictionary Server, adalah penyimpanan data nilai utama di dalam memori yang super cepat dengan sumber terbuka untuk digunakan sebagai database, cache, broker pesan, dan antrean. Redis adalah database temporary dan bersifat No SQL.
+
+### 4.1. Install Redis
+
+Silahkan ikuti tutorial berikut berdasarkan platform yang digunakan
+
+[Install Redis pada Ubuntu](https://www.digitalocean.com/community/tutorials/how-to-install-and-secure-redis-on-ubuntu-18-04)
+
+[Install Redis pada Mac](https://medium.com/@petehouston/install-and-config-redis-on-mac-os-x-via-homebrew-eb8df9a4f298)
+
+[Install Redis pada Windows](https://www.c-sharpcorner.com/article/installing-redis-cache-on-windows/)
+
+### 4.2. Masuk ke Terminal
+Ubuntu :
+```bash
+redis-cli
+```
+Mac :
+```bash
+redis-server
+```
+
+Windows :
+```bash
+redis-server.exe
+```
+
+### 4.3. Installasi Despendensi
+
+```bash
+# Install framework express
+npm install express
+```
+```bash
+# Install despendensi redis
+npm install redis
+```
+```bash
+# Install despendensi superagent
+npm install redis
+```
+
+### 4.4. Fungsi fetch data dan menyimpan di redis
+
+```bash
+function getUserRepos(req, res) {
+ request.get(`https://my-json-server.typicode.com/typicode/demo/posts`, function (err, response) {
+ if (err) throw err;
+ var data = response.text
+
+ client.setex(REDISKEY, 3600, data); // menyimpan data di redis dengan format string
+
+ res.json(JSON.parse(data));
+ });
+};
+```
+
+Untuk menyimpan data ke redis menggunakan command client.setex(key, time, data)
+https://redis.io/commands/setex
+
+### 4.5. Rungsi mengambil data dari redis
+
+```bash
+function cache(req, res, next) {
+ client.get(REDISKEY, function (err, data) {
+ if (err) throw err;
+
+ if (data != null) {
+ res.send(JSON.parse(data));
+ } else {
+ next();
+ }
+ });
+}
+```
+
+Untuk mengambil data dari redis menggunakan command client.get(key, function(err, data))
+https://redis.io/commands/get
+
+### 4.6. Full source code
+
+```bash
+const express = require('express');
+const app = express();
+const request = require('superagent');
+const redis = require('redis');
+const client = redis.createClient();
+const REDISKEY = 'WRI:dummy'
+
+function getUserRepos(req, res) {
+ request.get(`https://my-json-server.typicode.com/typicode/demo/posts`, function (err, response) {
+ if (err) throw err;
+ var data = response.text
+
+ client.setex(REDISKEY, 3600, data); // menyimpan data di redis dengan format string
+
+ res.json(JSON.parse(data));
+ });
+};
+
+// middleware
+function cache(req, res, next) {
+ client.get(REDISKEY, function (err, data) {
+ if (err) throw err;
+
+ if (data != null) {
+ res.send(JSON.parse(data));
+ } else {
+ next();
+ }
+ });
+}
+
+app.get('/', cache, getUserRepos);
+
+app.listen(3001, function () {
+ console.log('express-redis listen on port 3001!')
+});
+```
+https://github.com/alfaben12/express-redis-caching
+
+### 4.7. Perbandingan
+
+Sebelum menggunakan redis
+
+
+
+Sesudah menggunakan redis
+
+
\ No newline at end of file
diff --git a/back-end/caching/redis.png b/back-end/caching/redis.png
new file mode 100644
index 0000000..ff928e9
Binary files /dev/null and b/back-end/caching/redis.png differ
diff --git a/dasar/express-js/file-static.md b/dasar/express-js/file-static.md
new file mode 100644
index 0000000..fd40dc5
--- /dev/null
+++ b/dasar/express-js/file-static.md
@@ -0,0 +1,25 @@
+### 1. Permasalahan
+Tidak dapat mengakses file secara publik, Express tidak dapat langsung membaca file/folder secara langsung, karena itu kita membutuhkan suatu route untuk mengakses file atau folder tersebut agar dapat diakses secara publik
+
+### 2. Solusi
+Agar file tersebut dapat ditampilkan, kita butuh membuat route khusus yang digunakan untuk menampilkan file-file yang ada pada suatu folder. Pada express, kita bisa membuatnya dengan mudah menggunakan middleware `express.static()`
+
+### 3. Penjelasan Detail Materi
+- `express.static()` adalah middleware Express yang digunakan untuk membantu client mengakses sebuah file dengan route yang ditentukan
+
+### 4. Contoh Kasus
+Folder public bersisi beberapa file yang akan kita akses menggunakan `express.static()`, Kita menggunakan `express.static()` dan route `/images` untuk membuat route agar client bisa mengakses file tersebut. Untuk mengakses file buka http://localhost:3000/images/namafile.png
+
+Berikut source code dari penjelasan diatas :
+```javascript
+const express = require('express')
+const app = express()
+
+// menampilkan semua file atau folder yang ada pada folder public dan routingnya /images/namafile.png
+app.use("/images", express.static('public'))
+
+
+app.listen(3000, function () {
+ console.log("Server running on port :3000")
+})
+```
\ No newline at end of file