🌐
Miniclass Web
  • Miniclass Web
  • 1. Pengenalan Pemrograman Web
    • Cara Kerja Website
    • Pengenalan Backend dan Frontend
    • HTTP Request dan HTTP Response
  • 2. HTML
    • Pengenalan HTML
    • Text Formatting
    • Link
    • Media
    • List
    • Table
    • Form
    • Grouping
  • 3. CSS
    • Pengenalan CSS
    • Selector CSS
    • Text Formatting
    • Background
    • Border
    • Height dan Width
    • Spacing
    • Layouting
    • Responsive Design
    • Membuat Template Web Responsive
  • 4. Javascript
    • Pengenalan JavaScript
    • Javascript for Java developer
    • Array
    • Fungsi
    • Manipulasi DOM
    • Event
    • Fetch API
    • Object JavaScript
    • UI Component Lanjutan
  • 5. Node.js
    • Pengenalan Node.js
    • Membuat Server HTTP
    • Routing
    • Import Export
    • Node Package Manager
    • Nodemon
  • 6. Express.js
    • Pengenalan Express.js
    • HTTP Method
    • Menerima Data dari URL
    • Middleware
    • Menerima Data dari Body
    • Mengunggah File
    • Menampilkan File dalam Folder
    • Menyimpan Data ke Database MySQL
  • 7. Modern Frontend Development
    • ECMAScript
    • Transpiler
    • Module Bundler
  • 8. React Fundamental
    • Pengenalan React JS
    • Props
    • Event
    • State
    • Conditional Rendering
    • Component Mapping
    • Side Effect
    • Custom Hook
  • 9. React State Management
    • Lifting State Up
    • Context
    • Reducer
  • 10. React Performance
    • Debounce
    • Throttling
    • Memoization
    • Profiling
  • 11. React Testing
    • Component Testing
    • Hook Testing
    • Mocking
    • End to End Testing
  • 12. Object Relational Mapping
    • Pengenalan Object Relational Mapping
  • 13. Document Oriented Database
    • Document Oriented Database
    • Object Document Mapping
  • 14. Web Service
    • REST
    • GraphQL
  • 15. Autentikasi
    • JSON Web Token
    • Membuat Web Service Sederhana
  • 16. Microservices
    • Microservices
    • Microservices Gateway
    • Message Queue
    • Remote Procedure Call
    • Membuat Micro Service Sederhana
  • 18. Caching
Powered by GitBook
On this page
  • 1. Permasalahan
  • 2. Mengirim Data Melalui URL
  • 3. Format URL untuk Menerima Data
  • 3.1. URL Query
  • 3.2. URL Params
  • 4. Contoh Kasus
  • 4.1. Mengubah kode untuk menambah kontak baru
  • 4.1.1. URL Query
  • 4.1.2. URL Params
  • 4.2. Mengubah kode untuk mengubah kontak pada index yang diinginkan
  • 4.2.1. URL Query
  • 4.2.2. URL Params
  • 4.3. Mengubah kode untuk menghapus kontak pada index yang diinginkan
  • 4.3.1. URL Query
  • 4.3.2. URL Params

Was this helpful?

  1. 6. Express.js

Menerima Data dari URL

1. Permasalahan

Sebelumnya, kita sudah bisa membuat web server yang dapat melakukan manipulasi data dengan route sebagai berikut :

  • /contact menggunakan method GET - menampilkan semua data contact

  • /contact menggunakan method POST - menambahkan data contact

  • /contact menggunakan method PUT - mengubah data contact pada index 0

  • /contact menggunakan method DELETE - menghapus seluruh data contact

    pada index 0

Namun, data dan index yang diinputkan selalu statis dalam artian data yang ditambahkan akan selalu sama yaitu

{
  name: "tono",
  phone: "085637263625"
}

dan ketika mengubah atau menghapus data, kita hanya bisa mengubah atau menghapus data yang terdapat pada index ke 0 saja

Lalu bagaimana cara client memberitahu server index mana yang akan diubah atau dihapus, dan data apa yang harus dibuat ?

2. Mengirim Data Melalui URL

Client dapat mengirimkan data melalui URL untuk memberi tahu server index mana yang akan diubah atau dihapus, dan data apa yang harus dibuat.

3. Format URL untuk Menerima Data

Apabila kita ingin membuat server yang dapat menerima data melalui url, kita bisa menggunakan dua jenis format, yaitu url query dan url params

3.1. URL Query

URL query merupakan string yang terletak diakhir sebuah URL yang diawali dengan tanda tanya

Contoh Struktur URL : localhost:3000/contact/?name=dwiputra&phone=08123456789

Cara menerima data dari URL Query

app.post("/contact", function(req, res) {
  contacts.push({ name: req.query.name, phone: req.query.phone });
  res.send({ success: true });
});

3.2. URL Params

Dengan url params kita bisa memasukkan data kedalam URL secara langsung, namun untuk urutan dalam penginputan data harus menuruti apa yang telah ditentukan pada route

Contoh Struktur URL : localhost:3000/contact/dwiputra/08123456789

Cara menerima data dari URL Query

app.post("/contact/:name/:phone", function(req, res) {
  contacts.push({ name: req.params.name, phone: req.name.phone });
  res.send({ success: true });
});

4. Contoh Kasus

Disini kita akan melanjutkan kode dari materi sebelumnya, tujuannya adalah menerima data dari URL kemudian menggunakannnya untuk menambahkan data kontak baru pada array, dan juga untuk menentukan index mana yang akan diubah atau dihapus.

4.1. Mengubah kode untuk menambah kontak baru

Data yang ditambahkan ke dalam array akan diterima dari url, berbeda dari sebelumnya yang masih statis. Berikut contoh penerapannya menggunakan url query dan url params, bisa dipilih salah satu.

4.1.1. URL Query

app.post("/contact", function(req, res) {
  contacts.push({ name: req.query.name, phone: req.query.phone });
  res.send({ success: true });
});

4.1.2. URL Params

app.post("/contact/:name/:phone", function(req, res) {
  contacts.push({ name: req.params.name, phone: req.params.phone });
  res.send({ success: true });
});

4.2. Mengubah kode untuk mengubah kontak pada index yang diinginkan

Yang sebelumnya kita hanya mengirim name dan phone, sekarang kita juga harus mengirim index untuk mengetahui data pada index mana yang akan diubah. Sebelum mengubah kontak, kita juga harus mengecek apakah data pada index tersebut ada atau tidak. Berikut contoh penerapannya menggunakan url query dan url params, bisa dipilih salah satu.

4.2.1. URL Query

app.put("/contact", function(req, res) {
  if (contacts[req.query.index] !== undefined) {
    contacts[req.query.index] = {
      name: req.query.name,
      phone: req.query.phone
    };
    res.send({ success: true });
  } else {
    res.send({ success: false });
  }
});

4.2.2. URL Params

app.put("/contact/:index/:name/:phone", function(req, res) {
  if (contacts[req.params.index] !== undefined) {
    contacts[req.params.index] = {
      name: req.params.name,
      phone: req.params.phone
    };
    res.send({ success: true });
  } else {
    res.send({ success: false });
  }
});

4.3. Mengubah kode untuk menghapus kontak pada index yang diinginkan

Untuk menghapus kita perlu mengirimkan index untuk mengetahui data di index mana yang akan dihapus. Sebelum menghapus kontak, kita juga harus mengecek apakah data pada index tersebut ada atau tidak. Berikut contoh penerapannya menggunakan url query dan url params, bisa dipilih salah satu.

4.3.1. URL Query

app.delete("/contact", function(req, res) {
  if (contacts[req.query.index] !== undefined) {
    contacts.splice(req.query.index, 1);
    res.send({ success: true });
  } else {
    res.send({ success: false });
  }
});

4.3.2. URL Params

app.delete("/contact/:index", function(req, res) {
  if (contacts[req.params.index] !== undefined) {
    contacts.splice(req.params.index, 1);
    res.send({ success: true });
  } else {
    res.send({ success: false });
  }
});

Untuk mengetes web server yang telah dibuat bisa menggunakan aplikasi REST Client sama seperti materi sebelumnya

PreviousHTTP MethodNextMiddleware

Last updated 4 years ago

Was this helpful?