Nama:    Arif Nugraha Santosa

NRP:    5025211048

Kelas:    Perancangan Perangkat Lunak (A)


ETS PPL A


1. Apakah perbedaan model analysis dengan model desain?

Model Analisis

  • Fokus: Memahami kebutuhan dan permasalahan yang akan diatasi oleh perangkat lunak.
  • Tujuan: Menghasilkan spesifikasi perangkat lunak yang jelas dan lengkap, yang mencakup:
    • Kebutuhan fungsional: Apa yang harus dilakukan perangkat lunak?
    • Kebutuhan non-fungsional: Bagaimana perangkat lunak harus berperilaku? (misalnya: performa, keamanan, usability)
    • Batasan dan asumsi: Apa saja batasan dan asumsi yang mendasari desain perangkat lunak?
  • Aktivitas utama:
    • Pengumpulan dan analisis kebutuhan: Memahami kebutuhan pengguna dan pemangku kepentingan lainnya.
    • Pemodelan proses bisnis: Menentukan bagaimana proses bisnis akan dijalankan oleh perangkat lunak.
    • Pemodelan data: Menentukan data apa yang dibutuhkan oleh perangkat lunak dan bagaimana data tersebut akan disimpan dan dimanipulasi.

Model Desain

  • Fokus: Menerjemahkan spesifikasi perangkat lunak ke dalam solusi teknis yang konkret.
  • Tujuan: Menghasilkan arsitektur perangkat lunak yang detail dan terdokumentasi dengan baik, yang mencakup:
    • Komponen perangkat lunak: Apa saja komponen utama dari perangkat lunak?
    • Antarmuka: Bagaimana komponen-komponen tersebut akan berinteraksi satu sama lain?
    • Teknologi: Teknologi apa yang akan digunakan untuk membangun perangkat lunak?
  • Aktivitas utama:
    • Desain arsitektur: Menentukan struktur keseluruhan dari perangkat lunak.
    • Desain detail: Merancang setiap komponen perangkat lunak secara detail.
    • Pemilihan teknologi: Memilih teknologi yang tepat untuk membangun perangkat lunak.

PERBEDAAN UTAMA

AspekModel AnalisisModel Desain
FokusKebutuhan dan permasalahanSolusi teknis
TujuanSpesifikasi perangkat lunakArsitektur perangkat lunak
Aktivitas utamaPengumpulan kebutuhan, pemodelan proses bisnis, pemodelan dataDesain arsitektur, desain detail, pemilihan teknologi
HasilDokumen spesifikasi perangkat lunakDokumen arsitektur perangkat lunak

Model analisis dan model desain saling berkaitan erat. Model analisis memberikan dasar bagi model desain, dan model desain menerjemahkan spesifikasi perangkat lunak ke dalam solusi teknis yang konkret. Dengan pemahaman yang baik tentang kedua model ini, pengembang perangkat lunak dapat merancang perangkat lunak yang memenuhi kebutuhan pengguna dan pemangku kepentingan lainnya.

2. Jelaskan output proses Desain Aplikasi?

Proses desain aplikasi menghasilkan berbagai output penting untuk pengembangan aplikasi yang sukses. Dokumen Spesifikasi Desain (DSD) menjelaskan semua aspek aplikasi, termasuk tujuan, fungsionalitas, arsitektur, UI, basis data, dan persyaratan teknis. Prototipe memungkinkan pengguna untuk berinteraksi dan memberikan umpan balik, membantu memvalidasi desain dan mengidentifikasi masalah. Dokumentasi Desain mencakup diagram alir data, diagram arsitektur, panduan gaya UI, dan dokumentasi API. Rencana Implementasi menguraikan jadwal, sumber daya, anggaran, strategi pengujian, dan strategi peluncuran. Output ini membantu memastikan desain yang komprehensif, terdokumentasi dengan baik, dan mudah dikomunikasikan.

STUDI KASUS

Aplikasi Sistem Parkir

Aplikasi sistem parkir adalah perangkat lunak yang dirancang untuk mengelola tempat parkir dan pergerakan kendaraan di area tertentu. Sistem ini dapat digunakan di berbagai tempat, seperti:

  • Mal

  • Gedung perkantoran

  • Rumah sakit

  • Bandara

  • Tempat wisata

  • Universitas


Aplikasi sistem parkir menawarkan berbagai fitur dan manfaat, antara lain:

  • Memudahkan pengendara untuk menemukan tempat parkir yang tersedia

  • Mempercepat proses pembayaran parkir

  • Meningkatkan keamanan kendaraan

  • Menganalisis data penggunaan parkir

  • Meningkatkan pendapatan dari parkir

Spesifikasi Kebutuhan Perangkat Lunak Sistem Parkir

Kebutuhan Fungsional

  • Manajemen tempat parkir:

    • Menambahkan, menghapus, dan memodifikasi informasi tempat parkir

    • Menentukan jenis tempat parkir (misalnya, mobil, motor, VIP)

    • Menentukan tarif parkir untuk setiap jenis tempat parkir

    • Melacak ketersediaan tempat parkir secara real-time

  • Manajemen kendaraan:

    • Mendaftarkan kendaraan yang masuk dan keluar area parkir

    • Menerbitkan tiket parkir

    • Memproses pembayaran parkir

    • Menangani pelanggaran parkir

  • Manajemen pengguna:

    • Menambahkan, menghapus, dan memodifikasi informasi pengguna

    • Menetapkan peran dan akses pengguna

    • Melacak aktivitas pengguna

  • Pelaporan:

    • Menghasilkan laporan pendapatan parkir

    • Menghasilkan laporan penggunaan parkir

    • Menghasilkan laporan pelanggaran parkir

Kebutuhan Non-fungsional

  • Keamanan:

    • Melindungi data pengguna dari akses yang tidak sah

    • Mencegah penipuan dan pencurian

  • Ketersediaan:

    • Sistem harus tersedia 24/7

    • Sistem harus dapat diakses dari berbagai perangkat

  • Skalabilitas:

    • Sistem harus dapat menampung jumlah pengguna dan kendaraan yang besar

    • Sistem harus dapat diubah untuk memenuhi kebutuhan yang berubah

  • Kinerja:

    • Sistem harus responsif dan efisien

    • Sistem harus dapat menangani beban puncak

Persyaratan Tambahan

  • Integrasi dengan sistem lain:

    • Sistem harus dapat diintegrasikan dengan sistem kontrol akses

    • Sistem harus dapat diintegrasikan dengan sistem pembayaran elektronik

  • Dukungan multi-bahasa:

    • Sistem harus mendukung beberapa bahasa

  • Aksesibilitas:

    • Sistem harus dapat diakses oleh penyandang disabilitas

3. Visualisasikan Deskripsi dari apclikasi parkir berikut



4. Buat HLD dan LLD dari rancangan desain aplikasi parkir (Studi Kasus)

High Level Design:

1. Arsitektur Sistem

  • Arsitektur Client-Server:
    • Server:
      • Menyimpan data aplikasi, seperti informasi tempat parkir, kendaraan, pengguna, dan transaksi.
      • Memproses logika bisnis, seperti manajemen tempat parkir, manajemen kendaraan, manajemen pengguna, dan pelaporan.
      • Menyediakan API untuk client untuk berinteraksi dengan data dan logika bisnis.
    • Client:
      • Menampilkan antarmuka pengguna (UI) kepada pengguna.
      • Berkomunikasi dengan server melalui API untuk mengambil data, mengirimkan permintaan, dan menerima respons.
      • Client dapat berupa aplikasi web, aplikasi mobile, atau machine-to-machine (M2M) app.

2. Teknologi

  • Bahasa Pemrograman: Python, Java, atau C#
  • Framework: Django, Spring Boot, atau ASP.NET
  • Basis Data: PostgreSQL, MySQL, atau Oracle
  • Cloud Platform: AWS, Azure, atau GCP
  • Teknologi Lainnya:
    • WebSocket untuk komunikasi real-time antara client dan server.
    • Mobile SDK untuk pengembangan aplikasi mobile.
    • Sistem pembayaran elektronik untuk integrasi dengan penyedia pembayaran.

3. Desain Antarmuka Pengguna (UI)

  • UI yang mudah digunakan dan intuitif:
    • Desain yang bersih dan modern.
    • Navigasi yang mudah.
    • Ikon dan tombol yang jelas.
    • Teks yang mudah dibaca.
  • UI yang responsif dan dapat diakses:
    • Bekerja dengan baik di berbagai perangkat, seperti desktop, tablet, dan smartphone.
    • Dapat diakses oleh penyandang disabilitas.
  • UI yang mendukung multi-bahasa:
    • Mendukung beberapa bahasa untuk mengakomodasi pengguna dari berbagai negara.

4. Keamanan

  • Autentikasi dan otorisasi:
    • Pengguna harus masuk dengan nama pengguna dan kata sandi yang aman.
    • Pengguna hanya boleh mengakses data dan fungsionalitas yang diizinkan berdasarkan peran mereka.
  • Enkripsi:
    • Data yang sedang transit dan data yang disimpan harus dienkripsi.
  • Pemantauan keamanan:
    • Sistem harus secara teratur dipantau untuk mendeteksi dan mencegah pelanggaran keamanan.

5. Skalabilitas

  • Sistem harus dapat menampung jumlah pengguna dan kendaraan yang besar.
  • Sistem harus dapat diubah untuk memenuhi kebutuhan yang berubah.
  • Arsitektur serverless atau microservices dapat digunakan untuk meningkatkan skalabilitas.

6. Kinerja

  • Sistem harus responsif dan efisien.
  • Sistem harus dapat menangani beban puncak.
  • Teknologi caching dan load balancing dapat digunakan untuk meningkatkan kinerja.

7. Pengujian

  • Sistem akan diuji secara menyeluruh untuk memastikan bahwa memenuhi semua persyaratan.
  • Pengujian akan mencakup pengujian unit, pengujian integrasi, pengujian sistem, dan pengujian penerimaan pengguna.

8. Implementasi

  • Pengembangan berulang:
    • Sistem akan dikembangkan secara berulang.
    • Setiap iterasi akan fokus pada pengembangan satu set fitur tertentu.
    • Pengujian akan dilakukan setelah setiap iterasi.
  • Metodologi pengembangan agile:
    • Metodologi pengembangan agile, seperti Scrum atau Kanban, dapat digunakan untuk meningkatkan fleksibilitas dan kolaborasi.

9. Pemantauan dan Logging

  • Sistem harus dimonitor secara real-time untuk mendeteksi dan menyelesaikan masalah.
  • Log harus disimpan untuk tujuan debugging dan auditing.

10. Dokumentasi

  • Dokumentasi yang komprehensif harus dibuat untuk semua aspek sistem.
    • Dokumentasi harus mencakup:
      • Arsitektur sistem.
      • Desain UI.
      • Kode sumber.
      • Instruksi manual.
      • Dokumentasi API.

Kesimpulan

High-level design ini memberikan gambaran menyeluruh tentang arsitektur, teknologi, UI, keamanan, skalabilitas, kinerja, pengujian, implementasi, pemantauan, logging, dan dokumentasi aplikasi parkir. Desain ini dapat digunakan sebagai panduan untuk pengembangan aplikasi yang komprehensif, mudah digunakan, aman, dan skalabel.


Low Level Design:


Protokol Komunikasi

  • Aplikasi klien (aplikasi web, aplikasi seluler) dapat berkomunikasi dengan server menggunakan API RESTful.
  • API harus ditentukan untuk fungsionalitas seperti:
    • Menampilkan daftar tempat parkir yang tersedia.
    • Memesan tempat parkir.
    • Memproses pembayaran (berpotensi terintegrasi dengan API gateway pembayaran).
    • Mengambil riwayat parkir.

Pertimbangan Keamanan

  • Implemenkan autentikasi dan otorisasi pengguna untuk membatasi akses ke data sensitif dan fungsionalitas.

5. Gambarkan Arsitektur dari Aplikasi Parkir yang akan dibangun (Studi Kasus)

Arsitektur Client-Server:

  • Aplikasi Client:

    • Dapat berupa aplikasi web yang diakses melalui browser, aplikasi mobile native untuk Android atau iOS, atau mesin-ke-mesin (M2M) app untuk perangkat IoT seperti sensor parkir.
    • Bertanggung jawab untuk:
      • Menampilkan antarmuka pengguna (UI) kepada pengguna.
      • Mengirim permintaan ke server API untuk mengambil data, mengirimkan permintaan, dan menerima respons.
      • Menangani interaksi pengguna, seperti login, pencarian tempat parkir, pemesanan, dan pembayaran.
  • Server Aplikasi:

    • Dapat diimplementasikan menggunakan berbagai teknologi server seperti Java, Python, atau Node.js.
    • Bertanggung jawab untuk:
      • Menyimpan data aplikasi, seperti informasi tempat parkir, kendaraan, pengguna, dan transaksi.
      • Memproses logika bisnis, seperti manajemen tempat parkir, manajemen kendaraan, manajemen pengguna, dan pelaporan.
      • Menyediakan API untuk client untuk berinteraksi dengan data dan logika bisnis.

Komponen Utama:

  • Modul Manajemen Tempat Parkir:

    • Mengelola informasi tempat parkir, seperti lokasi, jenis, kapasitas, dan ketersediaan.
    • Memproses permintaan untuk mencari tempat parkir yang tersedia berdasarkan kriteria pengguna.
    • Memperbarui informasi ketersediaan tempat parkir secara real-time.
  • Modul Manajemen Kendaraan:

    • Mengelola informasi kendaraan, seperti plat nomor, jenis, dan waktu masuk/keluar.
    • Memproses permintaan untuk memesan tempat parkir dan menerbitkan karcis parkir.
    • Menangani pembayaran parkir dan mengintegrasikan dengan sistem pembayaran elektronik.
  • Modul Manajemen Pengguna:

    • Mengelola informasi pengguna, seperti nama, email, dan kata sandi.
    • Memproses pendaftaran dan autentikasi pengguna.
    • Memberikan akses ke fungsionalitas aplikasi berdasarkan peran pengguna.
  • Modul Pelaporan:

    • Menghasilkan laporan tentang penggunaan tempat parkir, pendapatan parkir, dan pelanggaran parkir.
    • Menyediakan data untuk analisis dan pengambilan keputusan.

Integrasi Sistem:

  • Sistem Kontrol Akses:

    • Aplikasi parkir dapat diintegrasikan dengan sistem kontrol akses untuk memungkinkan pengguna membuka pintu gerbang dan lift dengan kartu parkir mereka.
  • Sistem Pembayaran Elektronik:

    • Aplikasi parkir dapat diintegrasikan dengan sistem pembayaran elektronik untuk memungkinkan pengguna membayar parkir dengan dompet digital.

Pertimbangan Skalabilitas:

  • Arsitektur serverless atau microservices:

    • Arsitektur serverless atau microservices dapat digunakan untuk meningkatkan skalabilitas aplikasi dengan memungkinkan penambahan sumber daya secara horizontal sesuai kebutuhan.
  • Caching:

    • Caching dapat digunakan untuk menyimpan data yang sering diakses, seperti informasi tempat parkir yang tersedia, untuk mengurangi beban pada database dan meningkatkan waktu respons.
  • Load balancing:

    • Load balancing dapat digunakan untuk mendistribusikan lalu lintas antar beberapa server aplikasi untuk meningkatkan kinerja dan ketersediaan.

Keamanan:

  • Autentikasi dan otorisasi:

    • Pengguna harus masuk dengan nama pengguna dan kata sandi yang aman.
    • Pengguna hanya boleh mengakses data dan fungsionalitas yang diizinkan berdasarkan peran mereka.
  • Enkripsi:

    • Data yang sedang transit dan data yang disimpan harus dienkripsi.
  • Pemantauan keamanan:

    • Sistem harus secara teratur dipantau untuk mendeteksi dan mencegah pelanggaran keamanan.

Pemantauan dan Logging:

  • Pemantauan sistem:

    • Sistem harus dimonitor secara real-time untuk mendeteksi dan menyelesaikan masalah.
  • Logging:

    • Log harus disimpan untuk tujuan debugging dan auditing.



6. Dokumentasi dan Demo

Nama:    Arif Nugraha Santosa

NRP:    5025211048

Kelas:    Perancangan Perangkat Lunak (A)

Tugas Pertemuan 2 PPL - Identifikasi Proses PPL

Setelah melaksanakan pertemuan kedua pada kelas PPL A. Mahasiswa diminta untuk mengidentifikasi proses perancangan perangkat lunak dengan jurnal/dokumen perancangan perangkat lunak sebagai referensi.

Referensi

Saya mengambil referensi dari sebuah jurnal DPPL berjudul "Perancangan Sistem Informasi Pengelolaan Dana Masjid Berbasis Web Menggunakan Unified Modeling Language (UML)" yang dapat diakses melalui link berikut
Link dokumen referensi: click me

Identifikasi Proses PPL

Desain Arsitektur

Use case diagram adalah diagram yang menggambarkan hubungan antara aktor dengan sistem. Use case diagram mendeskripsikan interaksi antara satu atau lebih aktor dengan sistem yang akan dibuat. Use case diagram juga. Pada gambar di atas menunjukkan Use case diagram pada sistem yang di rancang. Pada sistem terdapat 2 (dua) aktor utama yaitu admin dan user. Dalam sistem yang dirancang, admin dapat melakukan login, logout, mengelolah data masjid, mengelolah informasi dan mengelolah laporan dana kas masjid. Sedangkan user dalam sistem ini hanya dapat melihat informasi yang tercantum dalam website serta dapat mengunduh laporan dana keuangan kas masjid. 

Berikut adalah activity diagram dari Sistem Informasi Pengelolaan Dana Masjid Al-Istiqomah Muaro Jambi, yang terdiri dari activity diagram mengelola informasi dan activity diagram mengelola laporan dana kas.

Pada gambar di atas, admin dapat mengelolah informasi dengan memilih menu kegiatan untuk menambahkan informasi umum ataupun menu keuangan untuk menambahkan data kas yang telah masuk dari para donatur yang telah menyumbang. Sistem akan melakukan pengecekan dan verifikasi data yang telah ditambahkan. Apabila data sudah benar, maka system akan menyimpan ke dalam database, apabila data tidak sesuai, maka admin akan kembali melakukan pengolahan informasi.

Pada gambar di atas, setelah admin melakukan pengimputan data, system akan melakukan pengolahan dan pencetakan laporan, admin dapat menampilkan laporan dan mencetak laporan secara keseluruhan. 

Desain Interface

Halaman Home pada Website Sistem Informasi Pengelolaan Dana Masjid berisi tentang informasi seputar masjid Al-istiqomah seperti profil, kesekretariatan dan keuangan.

Halaman keuangan berisi tentang informasi donasi yang terdiri dari informasi donasi yatim piatu, donasi sarana prasarana, donasi Ramadhan dan donasi kegiatan Masjid.

Halaman laporan berisi tentang laporan setiap bulan dari keuangan masjid Al-Istiqomah yang dapat di lihat dan di download oleh user dan admin.

Desain Data

Class diagram merupakan hubungan antar kelas dan penjelasan detail tiap-tiap kelas di dalam model desain dari suatu system, juga memperlihatkan aturan-aturan dan tanggung jawab entitas yang menentukan perilaku system

Desain Algoritma

Jurnal referensi tidak memberikan flowchart mengenai algoritma penerapan setiap usecasenya.

 

 

 

    Halo teman teman, kembali lagi bersama saya Arif di website saya. Pada kesempatan sebelumnya saya sudah memposting tentang service service atau layanan layanan sederhana yang bisa kita buat di Debian 10. Kalian bisa mengeceknya di postingan sebelumnya :D.
 
Pada kesempatan ini saya ingin membahas tentang HTTP Secure pada Debian 10, sebelumnya kita sudah pernah membahas tentang HTTP dan Domain pada postingan "Cara membuat Web server dan Domain di Debian 10". Untuk teori teori dasar kalian bisa mengunjungi Website tersebut.
 
Apa itu HTTPS? 
 
    Hypertext Transfer Protocol Secure (HTTPS) adalah ekstensi dari Hypertext Transfer Protocol (HTTP). Ini digunakan untuk komunikasi aman melalui jaringan komputer, dan banyak digunakan di Internet. Dalam HTTPS, protokol komunikasi dienkripsi menggunakan Transport Layer Security (TLS) atau, sebelumnya, Secure Sockets Layer (SSL). Protokol karena itu juga disebut sebagai HTTP over TLS, atau HTTP over SSL.
 
Langsung saja kita lanjut ke langkah Cara membuat server HTTPSnya

Konfigurasi Debian 10

nb : Pastikan kalian sudah melakukan repository server dahulu, Pastikan kalian sudah login ke mode root, dan Pastikan client serta server terhubung dalam satu jaringan. Untuk repository kalian bisa mengunjungi artikel berikut "Repository Online" "Repository Offline"
 
Pertama tama, kita install dahulu paket Apache2 dan SSLnya dengan perintah "apt install apache2 openssl"

Setelah itu kita akan melakukan konfigurasi dasar.
 
Kita akan membuat direktori untuk menempatkan file sertifikat kita. disini saya akan menyimpannya dalam folder "/etc/apache2/ssl", maka saya buat direktorinya dahulu. 
 
Setelah itu kita buat sertifikatnya dan akan menyimpannya ke folder yang barusan kita buat tadi. Dengan perintah dibawah ini.

Setelah kita memasukan perintah tersebut, kita akan diminta untuk mengisi informasi informasi untuk sertifikatnya, Kalian bisa memasukannya sesuai dengan keinginan kalian.

Lalu kita akan melakukan konfigurasi SSL pada Apache2. Pertama tama, aktifkan dulu modul SSLnya dengan perintah "a2enmod ssl"

Aktifkan konfigurasi ssl dengan perintah ""a2enmod default-ssl.conf"

Kemudian kita akan mengedit file bernama "default-ssl.conf" dalam direktori "/etc/apache2/sites-available". Dengan perintah "nano
/etc/apache2/sites-available/default-ssl.conf"
 
Ganti sintaks yang saya beri tanda merah berikut.

Menjadi seperti gambar berikut. Kita ubah menjadi direktori letak sertifikat yang kita buat sebelumnya.


Masih dalam file yang sama, kita cari sintaks yang saya tandai, dan ganti dengan direktori file index.html kalian.

Kemudian save dan keluar dari file tersebut. Lalu kita akan merestart service apachenya dengan perintah "/etc/init.d/apache2 restart"

Pengujian HTTPS pada Client
 
Buka browser pada client kalian dan masukan IP servernya. jangan lupa tambahkan "https://" dan jangan menggunakan "http" biasa.

Dapat kita lihat, website kita sudah memiliki https. Dan berikut adala sertifikatnya.

Bagaimana teman teman? sangat mudah kan cara membuat HTTPS dengan Debian 10, cukup memasukan sertifikasi SSLnya aja. Terima kasih sudah berkunjung, sampai ketemu lagi.


Arif Nugraha Santosa | SMKN 1 Kediri


 

    Halo teman teman, kembali lagi bersama saya Arif di website saya. Kali ini saya ingin memberikan tutorial untuk membuat FTPS server dengan proftpd dan SSL di Debian 10. Sebelumnya kita pernah membahas tentang FTP yang sudah saya post dalam blog ini. Kalian bisa mengunjunginya lewat link berikut "https://arifsmkn1kdr.blogspot.com/2020/10/cara-membuat-ftp-server-di-debian-10.html". Disana sudah terdapat banyak teori dan penjelasan mengenai FTP.

    Halo teman teman, kembali lagi bersama saya Arif di website saya. Pada kesempatan sebelumnya saya sudah membahas banyak sekali service service yang bisa kita buat pada Debian 10. Nah pada kali ini saya ingin membahas tentang NAT, dalam kehidupan sehari hari kita pasti selalu terhubung dengan Internet. Nah apa jadinya kalau semua manusia di bumi ini terhubung ke Internet? tentunya mereka akan membutuhkan banyak IP Address untuk mengakses internet itu. Dengan itu terciptalah NAT, yaitu suatu protokol yang dapat mentranslasikan IP private menjadi IP Public. Untuk pengertian lebih lanjutnya, simak penjelasan dibawah ini.

 
Apa itu NAT?

    Network Address Translation (NAT) merupakan sebuah sistem untuk menggabungkan lebih dari satu komputer untuk dihubungkan ke dalam jaringan internet hanya dengan menggunakan sebuah alamat IP. Sehingga setiap komputer di dalam NAT ketika berselancar di internet akan terlihat memiliki alamat IP yang sama jika dilacak. Dengan kata lain, sebuah alamat IP pada jaringan lokal akan terlebih dahulu ditranslasikan oleh NAT untuk dapat mengakses IP publik di jaringan komputer. Sebelum proses translasi ini, maka pengguna tidak dapat terhubung ke internet. 
Banyak yang berpendapat bahwa NAT sebetulnya mirip dengan proxy server, namun bedanya adalah jika proxy server menyediakan mekanisme caching, tak begitu halnya dengan NAT. Sehingga dengan penggunaan NAT, tidak ada batasan mengenai jumlah halaman web yang dapat diakses. Cukup banyak pengguna NAT yang memanfaatkan sistem ini, bisa jadi dikarenakan ketersediaan alamat IP yang terbatas, membutuhkan keamanan lebih, atau ada pula yang menggunakan NAT karena dinilai lebih fleksibel dalam hal administrasi jaringan, sebab jaringan NAR didesain menyederhanakan alamat IP dan untuk melindunginya.


Jenis Jenis NAT :
  • NAT Statis
NAT Statis bekerja dengan menerjemahkan semua alamat IP yang belum terdaftar menjadi alamat IP yang terdatar. NAT Statis banyak digunakan untuk komputer yang ingin dapat diakses dari luar.
NAT statis ini sebetulnya bisa dibilang pemborosan terhadap alamat IP yang didaftarkan, sebab setiap satu komputer dipetakan untuk satu alamat IP terdaftar, sehingga jika ada banyak komputer yang didaftarkan, tentu semakin terbatas pula alamat IP yang masih tersedia.

Kekurangan lain dari NAT Statis adalah kurang aman dibandingkan NAT dinamik, sebab setiap komputer memiliki alamat IP tersendiri, dan akhirnya risiko penyusup masuk langsung ke dalam jaringan private lebih besar.

  •  Nat Dynamic

NAT Dinamis bekerja dengan mendaftarkan beberapa komputer ke dalam satu kelompok dengan alamat IP terdaftar yang sama. Sehingga nantinya ada beberapa komputer yang memiliki kesamaan alamat IP terdaftar. Keuntungan menggunakan NAT dinamis ini tentu lebih amannya penelusuran di internet.Ketika ada penyusup yang ingin menembus komputer Anda yang menggunakan NAT dinamik, maka penyusup tersebut pasti mengalami kesulitasn, sebab alamat IP yang diasosiasikan ke suatu komputer selalu berubah secara dinamis. Walaupun begitu, NAT dinamis juga memiliki kekurangan, yaitu jika semua alamat IP sudah terpenuhi dan terpakai semua, maka jika ada penambahan komputer lain, komputer tersebut tidak lagi dapat terhubung ke internet melalui NAT.
  • Overloading NAT

Memungkinkan lebih dari satu klien terhubung menuju satu IP publik, namun pada port yang berbeda. Sehingga saat NAT menerima permintaan dari klien untuk dihubungkan kepada server, NAT kemudian akan menentukan nomor IP dan port untuk klien tersebut. Keuntungannya adalah walaupun sebuah nomor IP telah digunakan, namun masih bisa dipakai untuk klien lain sebab berada dalam port yang berbeda.  

  • Overlapping NAT   
Bentuk NAT yang melakukan penerjemahan dua arah, terutama jika terdapat nomor yang sama antara alamat IP publik dan lokal. Agar tidak terjadi konflik, maka NAT mengubah nomor IP publik menjadi nomor yang tidak terdapat dalam jaringan lokal. 
 
Keuntungan Penggunaan NAT :
  • Menghemat alamat IP legal yang ditetapkan oleh NIC atau Internet Service Provider.
  • Mengurangi terjadinya duplikat alamat jaringan.
  •  Meningkatkan fleksibilitas untuk koneksi ke internet. 
  • Menghindarkan proses pengalamatan Kembali (readdressing) pada saat jaringan berubah. 
  • Meningkatkan keamanan sebuah jaringan. 
  • Memberikan keluwesan dan performa dibandingkan aplikasi alternatif setingkat proxy.
Kerugian Penggunaan NAT :
  • Translasi menimbulkan delay switching.
  •  Menghilangkan kemampuan trace (traceability) end to end IP.
  •  Aplikasi tertentu tidak dapat berjalan jika menggunakan NAT, khususnya NAT yang menggunakan software.
     
Cara Kerja NAT
NAT mempunyai fungsi yaitu sebagai translasi sebuah IP address, sehingga dengan adanya NAT ini IP address private dapat dengan mudah mengakses alamat IP public. Berikut adalah cara kerja dari NAT:
  • Didalam IP address terdapat sebuah bagian yang mana di dalam IP tersebut terdapat informasi-informasi berupa alamat asal, alamat tujuan, TTL, dll. Bagian ini disebut dengan header 
  • Sebagai contoh adalah sebuah komputer client dengan IP 192.168.4.2 akan mengakses atau melakukan request ke alamat www.google.co.id dengan IP 216.239.61.104, maka proses yang akan terjadi adalah sebagai berikut : 
  • Pada header, informasi yang tersimpan antara lain alamat asal > 192.168.4.2
  • Sehingga ketika paket telah sampai pada router (gateway dari client), maka isi dari header akan dirubah menjadi : alamat asal > 192.168.4.1 
  • Sebelum paket keluar (menuju internet), maka header tersebut akan kembali berubah menjadi, alamat asal > 200.100.50.2, demikian seterusnya.
  • Proses di atas merupakan mekanisme dari SNAT (source NAT), dimana IP asal (komputer client) akan dirubah disesuaikan dengan IP ketika paket telah berpindah. Ketika server google melakukan response / balasan, maka akan terjadi DNAT (destination NAT), dimana IP tujuan akan berubah disesuaikan dengan tujuan paket (komputer client). Prosesnya adalah sebagai berikut :
  • Pada header, ketika paket telah sampai pada Router, informasi IP tujuan >200.100.50.20
  • Ketika paket berada pada gateway, IP tujuan >192.168.4.1 
  • Di sini header akan kembali mengalami perubahan, IP tujuan > 192.168.4.2 Sehingga Paket dapat dikirim dan bisa sampai pada komputer client. 
 
Nah, setelah kita memahami teori teori dasar tentang NAT, kita akan langsung masuk ek bagian konfigurasi NAT pada Debian 10. Ikuti dan simak sampai habis ya. 
 
Konfigurasi Debian 10
 
  1. Pertama tama, atur adapter pada virtual box pada sisi client dan servernya. Pastikan mereka sudah tersambung dalam 1 jaringan.
    Server : adapter enp0s8 kita gunakan untuk koneksi ke internet. dan enp0s3 kita sambungkan ke jaringan lokal.

    Client : masukan IP yang berada pada 1 jaringan dengan servernya dan masukan IP gateway yaitu IP servernya.

  2. Langkah kedua yaitu, kita akan mengedit file bernama "sysctl.conf" yang terletak pada direktori "/etc". Dalam skenario ini kita mengedit filenya menggunakan perintah nano. 
     
  3. Kemudian cari kata "net.ipv4.ip forward=1" dan hapus tanda pagar didepannya. Hingga nanti terlihat seperti gambar dibawah, Jangan lupa save dan tutup filenya.
  4. Untuk mengetes status dari forwarding IPnya, kita bisa mengetikan perintah "sysctl -p", jika sudah seperti gambar dibawah ini maka foward statusnya sudah menyala.
     
     
  5. Setelah itu, untuk melakukan routing NATnya, kita menggunakan perintah "iptables" -t NAT -A POSTROUTING -o enp0s8 -j MASQUERADE".
    Pada perintah ini, enp0s8 adalah interface saya yang memiliki koneksi ke internet. jika interface kalian berbeda, tinggal ganti perintah diatas sesuai dengan interface kalian yang tersambung ke internet.

  6. Kita akan mengecek tabel routing kita dengan perintah dibawah. Jika tampilannya seperti berikut, maka NAT kita sudah berhasil.

  7. Kemudian kita akan menyimpan konfigurasi tabel routing kita dengan menginstall iptables persistent. Gunakan perintah "apt-get install iptables-persistent -y", ikuti perintah yang muncul dalam instalasi.

  8. Jika muncul sintaks dibawah, piliih "yes" untuk menyimpan iptablesnya.

  9. Pilih yes lagi pada IPv6 rulesnya.

  10. Berikut tampilannya jika rules iptables kita sudah disimpan.

  11. Nah kemudian masuk pada sisi client dan kita akan mengetes koneksi NATnya dengan mengeping google.com.
     

    Bagaimana teman teman? ternyata sangat mudah kan melakukan NAT atau forwarding koneksi internet. Cukup dengan perintah sederhana dan kita sudah bisa membuat client kita mengakses internet. Terima kasih sudah berkunjung, Sampai jumpa lagi.

 

 

Arif Nugraha Santosa | SMKN 1 Kediri