Anda di halaman 1dari 28

IOT DENGAN KOMUNIKASI WIRELESS

I. Tujuan
II. Dasar Teori
A. LAN (Local Area Network)
LAN atau kepanjangan dari Local Area Network merupakan sekumpulan komputer yang saling
terhubung antara satu dengan lainnya sehingga terbentuk sebuah jaringan komputer dengan cakupan
jaringan yang wilayahnya kecil seperti jaringan komputer gedung, kampus, kantor, sekolah, di dalam
rumah, atau di dalam satu ruangan.

B. WLAN (Wireless Local Area Network)


Pada dasarnya wireless dengan LAN merupakan sama-sama jaringan komputer yang saling
terhubung antara satu dengan lainnya, yang membedakan antara keduanya adalah media jalur lintas
data yang digunakan, jika LAN masih menggunakan kabel sebagai media lintas data, sedangkan
wireless menggunakan media gelombang radio/udara. Penerapan dari aplikasi wireless network ini
antara lain adalah jaringan nirkabel diperusahaan, atau mobile communication seperti handphone,
satelit dan HT.

C. Penemu WiFi
Penemu Wifi adalah Hedy Lamarr seorang wanita kebangsaan Austria yang merupakan aktris
sekaligus ahli Matematika, dan untuk pertama kalinya perempuan kelahiran 09 November 1914 ini
memperkenalkan sistem komunikasi canggih pada Juni 1941 atau yang saat ini yang lebih dikenal
dengan Teknologi Wi-Fi (Wireless Fidelity).
Selanjutnya Hedy Lamarr bersama Antheil terus mengembangkan ide sistem komunikasi rahasia
yang di padu dengan gelombang radio agar data yang dikirim sulit untuk di deteksi oleh orang lain,
dan akhirnya pada 11 Agustus 1942 Hedy Lamarr dan Antheil berhasil mendapatkan hak paten
sebagai penemu teknologi Wifi.

D. Teknologi WiFi (Band)


Sedikit catatan, kode yang tertera pada perangkat jaringan wireless atau wifi memiliki
perbedaaan dalam hal kecepatan, dan teknologi wifi paling cepat untuk saat ini adalah IEEE 802.11ac.
Lantas apa sebenarnya arti kode wifi IEEE 802.11 tersebut?, tentu kode tersebut di buat bukan
tanpa alasan, melainkan kode huruf di belakang kode IEEE 802.11 tersebut menandakan spesifikasi
dan kecepatan teknologi wifi yang berbeda-beda.
Kode wifi tersebut sudah mendapatkan sertifikasi serta uji coba dari sebuah badan standarisasi
teknologi informasi yang bernama Institute of Electrical and Electronic Engineers atau yang lebih
dikenal dengan singkatan IEEE.
Beberapa kode standarisasi untuk teknologi komunikasi yang telah di tetapkan oleh IEEE
(Institute of Electrical and Electronic Engineers) adalah sebagai berikut.

 802.1: LAN/MAN Management and Media Access Control Bridges.


 802.2: Logical Link Control (LLC).
 802.3: CSMA/CD (Standar untuk Ehernet Coaxial atau UTP).
 802.4: Token Bus.
 802.5: Token Ring (bisa menggunakan kabel STP).
 802.6: Distributed Queue Dual Bus (DQDB) MAN.
 802.7: Broadband LAN.
 802.8: Fiber Optic LAN & MAN (Standar FDDI).
 802.9: Integrated Services LAN Interface (standar ISDN).
 802.10: LAN/MAN Security (untuk VPN).
 802.11: Wireless LAN (Wi-Fi).
 802.12: Demand Priority Access Method.
 802.15: Wireless PAN (Personal Area Network) > IrDA dan Bluetooth.
 802.16: Broadband Wireless Access (standar untuk WiMAX).

Perbedaan kode Wifi IEEE 802.11a, 802.11b, 802.11g, 802.11n, 802.11ac, dan 802.11ad.
802.11 Protocol Release Frequency GHz Bandwidth MHz Modulation Data Rate

802.11 1997 2,4 20 DSSS / FHSS 2 Mbit/s

802.11a 1999 5 20 OFDM 54 Mbit/s

802.11b 1999 2,4 20 DSSS 11 Mbit/s

802.11g 2003 2,4 20 DSSS / OFDM 54 Mbit/s

802.11n 2009 2,4 20 / 40 OFDM 600 Mbit/s

802.11ac 2013 5 40 / 80 / 160 OFDM 6,93 Gbit/s

802.11ad 2012 60 2160 SC-OFDM 6,76 Gbit/s

Keterangan.

 DSSS = Direct Sequence Spread Spectrum.


 FHSS = Frequency Hopping Spread Spectrum.
 OFDM = Orthogonal Frequency Division Multiplex.
 SC OFDM = Single Carrier Orthogonal Frequency Division Multiplex.

1. Wireless IEEE 802.11a.


Dirilis pada Oktober 1999 yang merupakan standar wireless network dengan maksimum data
transfer rate 54 Mbps dan bekerja pada frekuensi 5GHz dengan menggunakan metode transmisi
Orthogonal Frequency Division Multiplexing (OFDM, yang mengizinkan pentransmisian data secara
paralel di dalam sub-frekuensi (resisten terhadap interferensi dengan gelombang lain).
Range maksimal untuk indoor hanya sekitar 15 meter / ± 50 ft, sedangkan untuk outdoor ± 100 ft
/ 30 meter, dan standar 802.11a tidak kompatibel dengan 802.11 b,g.
2. Wireless IEEE 802.11b.
Dirilis pada awal tahun 2000 yang merupakan standar wireless network dengan maksimum data
transfer rate 5.5Mbps atau 11Mbps dan bekerja pada frekuensi 2,4GHz, dan dikenal juga dengan
IEEE 802.11 HR.
Namun setelah dilakukan uji coba lapangan kecepatan maksimum yang didapat hanya mencapai
5.9Mbps pada protokol TCP, dan 7.1Mbps pada protokol UDP.
Metode transmisi yang digunakannya adalah DSSS, dan memiliki range area yang lebih panjang
yaitu 150 feet / 45 meters di dalam indoor dan 300 feet / 90 meter dalam outdoor.
Wireless IEEE 802.11g.
Dirilis pada bulan Juni 2003 yang merupakan standar wireless network dengan maksimum data
transfer rate 54 Mbps pada pita frekuensi 2,4 GHz yang hampir sama dengan 802.11b, tetapi metode
transmisi yang digunakan adalah OFDM atau sama dengan metode yang digunakan oleh IEEE
802.11a. Range area 150 feet / 45 meter untuk indoor dan 300 feet / 90 meter untuk outdoor.

3. Wireless IEEE 802.11n.


Dirilis pada 11 September 2009 yang merupakan standar wireless network dengan maksimum
data transfer rate 600 Mbps pada pita frekuensi 2,4 GHz atau 5 GHz.
Namun setelah dilakukan uji coba oleh Wi-Fi Alliance kecepatan maksimum yang di dapat hanya 450
Mbps dan bekerja pada frekuensi 2,4 GHz atau 5 GHz, sama seperti teknologi MIMO (multiple-input
multiple-output).
Range maksimal untuk indoor 70 meter sedangkan outdoor bisa mencapai 250 meter, dan
kemungkinan besar Wi-Fi 802.11n akan diaplikasikan di perangkat router dan adapter.

4. Wireless IEEE 802.11ac.


Standar wireless memiliki throughput multi-stasiun minimal 1 gigabit per detik dan throughput
single-link minimal 500 megabit per detik (500 Mbit / s).Dengan memperluas konsep antarmuka
udara yang dipeluk oleh 802.11n = bandwidth RF yang lebih luas (hingga 160 MHz), lebih banyak
aliran spasial MIMO (hingga delapan), pengguna multi-user MIMO downlink (hingga empat klien),
dan high- Modulasi densitas (sampai 256-QAM)

5. Wireless IEEE 802.11ad.


Dirilis pada 2012 oleh WiGig yang merupakan standar wireless network berkemampuan WiGig
tri-band yang beroperasi pada pita 2,4, 5 dan 60 GHz dan mampu memberikan tingkat transfer data
hingga 7 Gbit / s atau kira-kira secepat transmisi 8-band 802.11ac, dan lebih dari 11 kali lebih cepat
dari pada tingkat 802.11n.
Aliansi Gigabit Nirkabel WiGig adalah asosiasi dagang yang mengembangkan dan
mempromosikan penerapan teknologi komunikasi nirkabel multi-gigabit per detik yang beroperasi
pada pita frekuensi 60 GHz tanpa izin, selanjutnya WiGig dimasukkan oleh Aliansi Wi-Fi pada bulan
Maret 2013.

Memilih band merupakan cara untuk menentukan standart protokol yang akan digunakan oleh
wireless interface. Selain menentukan standart protokol, band juga menentukan data rates yang bisa
dilewatkan, channel frequencies dan lebar channel. Jika kita perhatikan, ada beberapa pilihan band
yang menggunakan lebih dari satu protokol. Jika kita setting sebuah interface wireless dengan band
yang menggunakan lebih dari satu protokol, maka interface wireless tersebut memberikan pilihan
kepada client, protokol mana yang support dengan perangkat client tersebut.
6. Frekuensi WiFi
Wireless LAN menggunakan radio frekuensi yang membutuhkan media rambat yang juga harus
bersih atau tanpa gangguan. Gangguan bisa berupa halangan seperti pohon,gedung,tembok,kaca atau
interferensi frekuensi dari perangkat lain di sekitarnya.
Agar terbentuk link wireless yang bagus, gangguan ini harus dihindari. hal pertama yang harus
dilakukan dilakukan adalah site survey terlebih dahulu untuk mengetahui kondisi lapangan secara
fisik maupun penggunaan frekuensi yang sudah ada. Misalnya, adanya halangan berupa bukit,
gedung, pohon, tembok, kaca dsb yang harus dihindari. Kita harus mengetahui juga frekuensi -
frekuensi yang ada disekitar. jadi nantinya bisa dihindari penggunaanya agar tidak
interferensi/overlapping.
Alokasi frekuensi sudah diatur dalam regulasi di setiap wilayah dan negara. Di Indonesia, untuk
keperluan wireless LAN sudah dalokasikan dalam ISM Band pada frekuensi 2,4GHz dan 5,8GHz.
Lebih detail nya, untuk 2,4GHz dibagi dalam beberapa channel dengan lebar channel masing - masing
22MHz.

Begitu juga dengan yang 5GHz. Frekuensi 5Ghz juga dibagi menjadi beberapa channel.

Kita bisa menentukan penggunaan frekuensi pada perangkat kita agar tidak interferensi
dengan yang lain. Berdasarkan pembagian channel pada 2,4GHz, dengan lebar channel standard, bisa
dilihat ada beberapa channel yang saling overlapping. Hal ini lah yang harus dihindari agar tidak
saling mengganggu dan wireless link terbentuk dengan baik. Misal, dari hasil scan ternyata sudah
banyak yang menggunakan frek 2412 (channel 1) , maka kita bisa gunakan frek 2437 (channel 6).
Kenapa tidak menggunakan 2417 (Ch.2) saja ? bukankah 2412 (Ch.1) dan 2417 (Ch.2) sudah beda.?
Coba lihat lagi gambar pembagian channel tadi, antara 2412 (Ch.1) dan 2417 (Ch.2) ternyata masih
overlapping, saling menganggu. Jika digambarkan lagi, agar tidak saling mengganggu bisa gunakan
2412 (Ch.1), 2437 (Ch. 6), 2462 (Ch. 11)
Mikrotik support untuk 2484 (ch.14). Akan tetapi kita tetap tidak boleh menggunakan frekuensi
tersebut dengan sembarangan. Walaupun secara teknis perangkatnya support, tapi penggunaan
frekuensi di luar alokasi jelas menyalahi aturan. Jadi mari gunakan frekuensi sesuai regulasi yang ada.
Agar tidak saling mengganggu di frekuensi lain.

7. Channel Width
Sebuah Wireless Protokol dengan tipe N yang dapat melewatkan data dengan throughput
bandwidth yang cukup besar. Namun, bagaimana jika kita mengubah parameter 'Channel Width'
dengan memperbesar atau memperkecil nilainya. Biasanya channel standart akan menggunakan lebar
channel sebesar 22Mhz, terkadang dibulatkan menjadi 20MHz. Parameter channel width berbanding
lurus dengan throughput data, artinya semakin lebar channel width maka semakin besar pula
thorughput yang bisa dilewatkan. Channel width bisa diibaratkan seperti sebuah jalan, dan data yang
lewat adalah kendaraan yang hendak melewati jalan tersebut. Maka semakin luas jalan, semakin
banyak pula kendaraan yang bisa lewat. Akan tetapi, ukuran channel width juga memiliki
konsekuensi. Semakin besar channel width kemungkinan terjadinya interferensi juga semakin besar.
Kita bisa menentukan ukuran channel width dengan mempertimbangkan kepadatan frekuensi di area
yang akan kita bangun link wireless. Jika kondisi pada area jaringan kita ternyata sudah cukup padat,
kita bisa memperkecil nilai channel width supaya interferensi bisa diminimalisir.
8. Mode Akses Koneksi WiFi
Ada 2 mode akses koneksi Wi-fi, yaitu :

 Ad Hoc

Mode koneksi ini adalah mode di mana beberapa komputer terhubung secara langsung, atau
lebih dikenal dengan istilah Peer-to-Peer. Keuntungannya, lebih murah dan praktis bila yang
terkoneksi hanya 2 atau 3 komputer, tanpa harus membeli access point.

 Infrastruktur

Menggunakan Access Point yang berfungsi sebagai pengatur lalu lintas data, sehingga
memungkinkan banyak Client dapat saling terhubung melalui jaringan (Network).

9. Arsitektur Jaringan
Menggunakan ESP8266 sebagai mikrokontroler sederhana itu bagus, tetapi alasan mengapa
kebanyakan orang menggunakannya, adalah kemampuan Wi-Fi-nya. Dalam bab ini, kita akan terjun
ke dunia protokol jaringan yang menakjubkan, seperti Wi-Fi, TCP, UDP, HTTP, DNS ... Semua
akronim ini mungkin mengintimidasi Anda, tetapi saya akan mencoba yang terbaik untuk
menjelaskannya langkah- selangkah demi selangkah dan dengan cara yang mudah.
Beberapa paragraf ditulis miring . Ini memberikan beberapa informasi tambahan, tetapi tidak
penting untuk memahami fungsi Wi-Fi ESP, jadi jangan frustrasi jika ada hal-hal yang tidak Anda
pahami.
Sistem yang oleh sebagian besar orang disebut 'Internet' bukan hanya satu protokol: ini adalah
setumpuk seluruh lapisan protokol, sering disebut sebagai model TCP / IP . Kami akan membahas
lapisan-lapisan yang berbeda ini, karena kami perlu memahami bagaimana ESP8266 kami
berkomunikasi dengan perangkat lain di jaringan.
Layer Protocols

Application HTTP, FTP, mDNS, WebSocket, OSC ...

Transport TCP, UDP

Internet IP

Network Access Ethernet, Wi-Fi ...


(Link)

10. Layer Network Access (Data Link)


Layer ini berisi tautan fisik antara dua perangkat, kabel Ethernet, misalnya, atau koneksi Wi-Fi.
Ini adalah lapisan yang paling dekat dengan perangkat keras.
Untuk menghubungkan ESP8266 ke jaringan, Anda harus membuat tautan Wi-Fi. Ini dapat terjadi
dalam dua cara berbeda:

1) ESP8266 terhubung ke titik akses nirkabel (WAP atau cukup AP). AP dapat menjadi bawaan
untuk modem atau router Anda, misalnya. Dalam konfigurasi ini, ESP bertindak seperti
stasiun nirkabel .
2) ESP8266 bertindak sebagai titik akses dan stasiun nirkabel dapat terhubung ke sana. Stasiun-
stasiun ini dapat berupa laptop Anda, smartphone, atau bahkan ESP lain dalam mode stasiun.

Setelah tautan Wi-Fi dibuat, ESP8266 adalah bagian dari jaringan area lokal (LAN). Semua
perangkat pada LAN dapat saling berkomunikasi. Sebagian besar waktu, AP terhubung ke jaringan
Ethernet fisik juga, ini berarti bahwa ESP8266 juga dapat berkomunikasi dengan perangkat yang
terhubung ke AP (modem / router) melalui koneksi Ethernet kabel (komputer desktop, konsol game
dan set-top box, misalnya).
Layer Network Access (Link) adalah tautan fisik antar perangkat: dalam kasus ESP8266,
ini adalah koneksi WiFi. ESP dapat bertindak sebagai stasiun dan terhubung ke titik akses,
atau bertindak sebagai titik akses dan membiarkan perangkat lain terhubung dengannya.

11. Layer Internet (Network)


Meskipun perangkat sekarang terhubung secara fisik (baik melalui kabel aktual (Ethernet) atau
melalui gelombang radio (Wi-Fi)), mereka belum dapat berbicara satu sama lain, karena mereka tidak
memiliki cara untuk mengetahui ke mana harus mengirim pesan ke . Di situlah Internet Protocol (IP)
masuk. Setiap perangkat di jaringan memiliki alamat IP pribadi. Server DHCP (Dynamic Host
Configuration Protocol Server) memastikan bahwa alamat-alamat ini unik. Ini berarti bahwa Anda
sekarang dapat mengirim pesan ke alamat tertentu.
Ada dua versi dari Protokol Internet: IPv4 dan IPv6. IPv6 adalah versi peningkatan IPv4 dan
memiliki lebih banyak alamat daripada IPv4 (karena ada lebih banyak perangkat daripada alamat IPv4
yang tersedia). Pada artikel ini, kita hanya akan berbicara tentang alamat IPv4, karena sebagian besar
LAN masih menggunakannya.
Alamat IP terdiri dari 4 angka, misalnya 192.168.1.5 adalah alamat IPv4 yang valid. Sebenarnya
terdiri dari dua bagian: bagian pertama adalah 192.168.1 , ini adalah alamat jaringan lokal. Digit
terakhir, 5 dalam hal ini, khusus untuk perangkat.
Dengan menggunakan alamat IP, kita dapat menemukan ESP8266 di jaringan, dan mengirim
pesan ke sana. ESP juga dapat menemukan komputer atau telepon kami, jika mengetahui alamat IP
masing-masing.
 Subnet Mask (opsional)
Subdivisi dari alamat IP ini ditentukan oleh sub-net mask, sering ditulis sebagai 255.255.255.0.
Anda dapat melihat bahwa itu terdiri dari empat angka, sama seperti alamat IP. Jika bagian dari sub-
net mask adalah 255, itu berarti bahwa bagian yang sesuai dari alamat IP adalah bagian dari alamat
jaringan, jika itu 0, bagian IP yang sesuai adalah bagian dari alamat dari alamat tertentu. Notasi yang
berbeda dengan "IP: 192.168.1.5, sub-net mask: 255.255.255.0" akan menjadi "192.168.1.5/24",
karena representasi biner dari sub-net mask adalah 11111111.11111111.111111111100000000, dan
memiliki prefiks /24.
 Alamat MAC dan ARP (opsional)
Untuk mengirim paket ke perangkat tertentu di LAN (Wi-Fi atau Ethernet), Anda harus tahu
alamat MAC-nya. Alamat MAC adalah nomor unik yang unik untuk setiap perangkat jaringan, dan
tidak pernah berubah, ini tertanam dalam chip jaringan. Ini berarti bahwa setiap ESP8266, setiap kartu
jaringan, setiap smartphone ... yang pernah dibuat, memiliki alamat MAC yang berbeda.
Sebelum ESP dapat mengirim paket ke ponsel cerdas Anda misalnya, ia harus mengetahui alamat
MAC-nya. Belum tahu ini, ESP hanya tahu alamat IP smartphone, katakanlah 192.168.1.6. Untuk
melakukan ini, ESP mengirim pesan siaran (yaitu pesan yang ditujukan ke semua perangkat di LAN)
yang mengatakan "Saya mencari alamat MAC perangkat dengan alamat IP 192.168.1.6". ESP juga
menyertakan alamat IP dan MACnya sendiri dengan pesan tersebut. Ketika smartphone menerima
pesan siaran ini, ia mengenali alamat IP-nya sendiri, dan merespons ESP dengan mengirimkan alamat
MAC-nya sendiri. Sekarang ESP dan telepon sama-sama mengetahui alamat IP dan MAC masing-
masing, dan mereka dapat berkomunikasi menggunakan alamat IP. Metode ini disebut Addres
Resolution Protocol, atau ARP.
Lapisan Internet menggunakan alamat IP untuk mengetahui di mana ia harus mengirim
data. Ini berarti bahwa dua perangkat sekarang dapat saling mengirim paket data, bahkan
melalui Internet (routing paket data).

12. Layer Transport


Berbagai perangkat dalam jaringan melakukan yang terbaik untuk mengirimkan paket-paket IP
ini ke penerima, namun tidak jarang sebuah paket hilang, sehingga tidak akan pernah tiba. Atau paket
mungkin rusak di jalan: data tidak lagi benar. IP juga tidak dapat menjamin bahwa paket-paket
tersebut tiba dalam urutan yang sama dengan saat mereka dikirim. Ini berarti bahwa kita tidak dapat
mengirim pesan dengan andal hanya dengan menggunakan tautan dan lapisan Internet, karena kita
tidak pernah tahu kapan dan apakah suatu paket akan tiba, atau mengetahui dengan pasti bahwa paket
yang diterima benar. Kita membutuhkan lapisan ketiga di atas lapisan Internet: lapisan Transport.
Ada terutama dua protokol yang membentuk lapisan ketiga ini: Transmission Control Protocol
(TCP) dan User Datagram Protocol (UDP). TCP memastikan bahwa semua paket diterima, bahwa
paket-paket sudah tertata , dan bahwa paket-paket yang rusak dikirimkan kembali. Ini berarti bahwa
itu dapat digunakan untuk komunikasi antara beberapa aplikasi, tanpa harus khawatir tentang
integritas data atau kehilangan paket. Inilah mengapa ini digunakan untuk hal-hal seperti mengunduh
halaman web, mengirim email, mengunggah file dll. UDP di sisi lain, tidak menjamin bahwa setiap
paket mencapai tujuannya, namun memeriksa kesalahan , tetapi ketika menemukan satu, itu hanya
menghancurkan paket, tanpa mengirim ulang.
13. Layer Application
Kami sekarang memiliki komunikasi yang andal menggunakan TCP, tetapi masih ada satu
masalah. Pikirkan seperti ini: Anda mengirim surat, dan TCP menjamin bahwa itu akan sampai di
tujuannya, tetapi jika penerima tidak mengerti bahasa yang ditulisnya, ia tidak akan tahu apa yang
harus dilakukan dengan itu. Dengan kata lain, kita membutuhkan lapisan protokol keempat, agar dua
program dapat saling berkomunikasi. Ada banyak protokol berbeda di luar sana, tetapi sebagian besar
kita akan fokus pada protokol untuk server web dan browser (akan dibahas pada pertemuan
selanjutnya).
14. Topologi Jaringan Star dan Mesh pada ESP8266
Star

Mesh
15. Implementasi Jaringan ESP8266

Pengertian Subnet Mask, Fungsi, dan Cara Menghitungnya


Dalam ilmu jaringan komputer, subnet mask adalah teknik khusus yang digunakan untuk membagi
jaringan menjadi bagian-bagian kecil. Teknik ini tergolong cukup penting dalam unsur jaringan
karena berkaitan dengan penambahan computer network.

Pengertian Subnet Mask


Subnet mask adalah sebuah metode yang digunakan untuk menambah jaringan. Metode
penambahan jaringan ini dilakukan dengan cara memecah jaringan komputer menjadi ukuran yang
lebih kecil (subnetwork).
Pemecahan atau pembagian jaringan hanya dapat diterapkan pada IP address kelas A, B, dan C.
Praktik pemecahan ini juga dikenal dengan istilah ‘subnetting’. Dengan kata lain, fungsi subnet mask
adalah untuk memunculkan beberapa tambahan jaringan dengan cara memecahnya. Perlu diingat
bahwa teknik ini memerlukan kalkulasi yang cermat karena berdampak pada pengurangan jumlah
maksimum host network. Kemudian, apakah perbedaan IP address dan subnet mask? IP address
menunjukkan alamat suatu perangkat sedangkan subnet mask menunjukkan IP address tersebut berada
di jaringan (subnet) yang mana.
Pada dasarnya, kedua istilah tersebut berperan untuk mengonversi semua nilai bit. Mulai dari bit
yang di-set sebagai Network dan Host ID, hingga hasil nilai bit-nya diubah menjadi dotted decimal
notation. Perbedaan keduanya terletak pada cara representasi, di mana kelas-kelas IP address
dijadikan sebagai dasar pembuatan subnet default. Berikut kelas IP address yang bisa dipecah menjadi
subnet menggunakan dotted decimal notation.

IP address kelas A

 Binary: 11111111.00000000.00000000.00000000

 Decimal: 255.0.0.0

IP address kelas B

 Binary: 11111111.11111111.00000000.00000000

 Decimal: 255.255.0.0

IP address kelas C

 Binary: 11111111.11111111.11111111.00000000

 Decimal: 255.255.255.0

Subnet pada dasarnya memiliki penunjuk yang mirip seperti prefix, di mana setiap bit dari IP address-
nya termasuk ke dalam Network ID. Bit yang di-set ke nilai 1 digunakan untuk network identifier,
sedangkan nilai 0 untuk host identifier. Berikut format penggunaannya:

IP address kelas A

 Binary: 11111111.00000000.00000000.00000000

 Decimal: 255.0.0.0

 Prefix: /8

IP address kelas B
 Binary: 11111111.11111111.00000000.00000000

 Decimal: 255.255.0.0

 Prefix: /16

IP address kelas C

 Binary: 11111111.11111111.11111111.00000000

 Decimal: 255.255.255.0

 Prefix: /24

Fungsi Subnet Mask


Selain memecah jaringan, ada beberapa fungsi subnet mask lain yang berkaitan dengan
pembuatan alokasi IP address jaringan. Hal ini berguna untuk meningkatkan kinerja IP address
tersebut sehingga dapat dijalankan lebih optimal.
Praktisi profesional sering menjadikan teknik ini sebagai sarana untuk menangani permasalahan
pada perangkat keras dan media fisik. Pasalnya, router IP yang berperan untuk mengintegrasikan
jaringan mempunyai IP address serta media fisik yang unik dan berbeda.
Selain itu, teknik ini juga berfungsi untuk meningkatkan sistem keamanan jaringan. Subnet mask
mampu meminimalisir terjadinya risiko kongesti dan penurunan stabilitas jaringan yang umumnya
disebabkan oleh penggunaan jumlah host berlebihan.

Cara Menghitung Subnet Mask


Ada dua metode yang bisa kamu gunakan untuk menghitung subnet, yakni binary dan khusus.
Baik metode manapun, unsur terpenting dalam perhitungan ini adalah empat poin ini: jumlah subnet
> jumlah host tiap subnet > blok subnet > alamat host-broadcast.
Penulisan IP address paling umum adalah 192.168.1.2 atau 192.168.1.2/24. Tulisan paling
akhir /24 diambil dari perhitungan nilai subnet mask 24 bit diselubungi dengan binary 1. Artinya,
subnet mask tersebut adalah 11111111.11111111.11111111.00000000 (binary)
atau 255.255.255.0 (decimal). Konsep ini dikenal dengan istilah Classless Inter-Domain Routing
(CIDR) yang mulai diperkenalkan oleh IEFT pada tahun 1992 silam.

 Untuk menemukan jumlah subnet-nya, kamu dapat menggunakan rumus jumlah


subnet = 2x. Dalam hal ini, variabel ‘X’ yang dimaksud adalah binary 1 pada oktet
terakhir kelas B dan binary 3 pada oktet terakhir kelas A.

 Untuk menemukan jumlah host tiap subnet, kamu dapat menggunakan rumus 2y – 2.
Variabel ‘Y’ di sini merupakan kebalikan dari ‘X’, yakni binary 0 pada oktet terakhir
subnet.

 Untuk menemukan blok subnet, kamu dapat menggunakan rumus 256 – 192 atau
nilai oktet terakhir subnet mask = 64.

 Untuk menemukan host-broadcast, kamu hanya perlu membuat kolom tabel subnet,
host awal, host akhir, dan broadcast.

Jika proses subnetting IP address kelas C selesai, selanjutnya kamu hanya perlu melakukan metode
perhitungan yang sama untuk setiap subnet lainnya. Intinya, subnet mask adalah teknik yang
digunakan untuk menambah jaringan komputer dengan cara memecahnya menjadi ukuran yang lebih
kecil.
Hasil Percobaan

 Program 1

Menghubungkan WiFi ke Server


#include <WiFi.h>

const char* ssid = "Mahasiswa boss"; // Nama WiFi Anda


const char* password = "12345678"; // Kata sandi WiFi Anda

const char* host = "example.com"; // Alamat server tujuan


const int port = 80; // Port server HTTP
(biasanya 80)

void setup() {
Serial.begin(115200);
delay(10);

// Sambungkan ke jaringan WiFi


WiFi.begin(ssid, password);

while (WiFi.status() != WL_CONNECTED) {


delay(500);
Serial.println("Mencoba menghubungkan ke WiFi...");
}

Serial.println("Tersambung ke WiFi");
}

void loop() {
// Buat koneksi ke server
WiFiClient client;
if (client.connect(host, port)) {
Serial.println("Terhubung ke server");

// Kirim data ke server


client.print("Data yang ingin Anda kirim");

// Tutup koneksi
client.stop();
} else {
Serial.println("Gagal terhubung ke server");
}

// Tunggu sebelum mengirim data lagi


delay(5000);
}
Membuat Webserver

// Load Wi-Fi library

#include <WiFi.h>

// Replace with your network credentials

const char* ssid = "Mahasiswa boss";

const char* password = "12345678";

// Set web server port number to 80

WiFiServer server(80);

// Variable to store the HTTP request

String header;

// Auxiliar variables to store the current output state

String output26State = "off";


String output27State = "off";

// Assign output variables to GPIO pins

const int output26 = 26;

const int output27 = 27;

void setup() {

Serial.begin(115200);

// Initialize the output variables as outputs

pinMode(output26, OUTPUT);

pinMode(output27, OUTPUT);

// Set outputs to LOW

digitalWrite(output26, LOW);

digitalWrite(output27, LOW);

// Connect to Wi-Fi network with SSID and password

Serial.print("Connecting to ");

Serial.println(ssid);

WiFi.begin(ssid, password);

while (WiFi.status() != WL_CONNECTED) {

delay(500);

Serial.print(".");

// Print local IP address and start web server

Serial.println("");

Serial.println("WiFi connected.");

Serial.println("IP address: ");

Serial.println(WiFi.localIP());
server.begin();

void loop(){

WiFiClient client = server.available();

if (client) {

Serial.println("New Client.");

String currentLine = "";

while (client.connected()) {

if (client.available()) {

char c = client.read();

Serial.write(c);

header += c;

if (c == '\n') {

if (currentLine.length() == 0) {

client.println("HTTP/1.1 200 OK");

client.println("Content-type:text/html");

client.println("Connection: close");

client.println();

// turns the GPIOs on and off

if (header.indexOf("GET /26/on") >= 0) {

Serial.println("GPIO 26 on");

output26State = "on";

digitalWrite(output26, HIGH);

} else if (header.indexOf("GET /26/off") >= 0) {

Serial.println("GPIO 26 off");
output26State = "off";

digitalWrite(output26, LOW);

} else if (header.indexOf("GET /27/on") >= 0) {

Serial.println("GPIO 27 on");

output27State = "on";

digitalWrite(output27, HIGH);

} else if (header.indexOf("GET /27/off") >= 0) {

Serial.println("GPIO 27 off");

output27State = "off";

digitalWrite(output27, LOW);

// Display the HTML web page

client.println("<!DOCTYPE html><html>");

client.println("<head><meta name=\"viewport\" content=\"width=device-width, initial-


scale=1\">");

client.println("<link rel=\"icon\" href=\"data:,\">");

// CSS to style the on/off buttons

// Feel free to change the background-color and font-size attributes to fit your preferences

client.println("<style>html { font-family: Helvetica; display: inline-block; margin: 0px


auto; text-align: center;}");

client.println(".button { background-color: #4CAF50; border: none; color: white; padding:


16px 40px;");

client.println("text-decoration: none; font-size: 30px; margin: 2px; cursor: pointer;}");

client.println(".button2 {background-color: #555555;}</style></head>");

// Web Page Heading

client.println("<body><h1>ESP32 Web Server</h1>");


// Display current state, and ON/OFF buttons for GPIO 26

client.println("<p>GPIO 26 - State " + output26State + "</p>");

// If the output26State is off, it displays the ON button

if (output26State=="off") {

client.println("<p><a href=\"/26/on\"><button class=\"button\">ON</button></a></p>");

} else {

client.println("<p><a href=\"/26/off\"><button class=\"button


button2\">OFF</button></a></p>");

// Display current state, and ON/OFF buttons for GPIO 27

client.println("<p>GPIO 27 - State " + output27State + "</p>");

// If the output27State is off, it displays the ON button

if (output27State=="off") {

client.println("<p><a href=\"/27/on\"><button class=\"button\">ON</button></a></p>");

} else {

client.println("<p><a href=\"/27/off\"><button class=\"button


button2\">OFF</button></a></p>");

client.println("</body></html>");

// The HTTP response ends with another blank line

client.println();

// Break out of the while loop

break;

} else { // if you got a newline, then clear currentLine

currentLine = "";

} else if (c != '\r') {
currentLine += c;

// Clear the header variable

header = "";

// Close the connection

client.stop();

Serial.println("Client disconnected.");

Serial.println("");

}
 Program 2

Menampilkan Kta “Selamat Datang” di Web Server

// Load Wi-Fi library


#include <WiFi.h>

// Gantikan Dengan SSID dan Password yang diinginkan


const char* ssid ="Mahasiswa boss";
const char* password = "12345678";

// Deklarasikan server HTTP


WiFiServer server(80);

void setup() {
Serial.begin(115200);

// Mengkonfigurasi access point


Serial.print("Setting AP (Access Point)…");
// Kosongkan password bila ingin open access
WiFi.softAP(ssid, password);

IPAddress IP = WiFi.softAPIP();
Serial.print("AP IP address: ");
Serial.println(IP);

//jalankan server http


server.begin();
}
void loop(){
//cek status klien
WiFiClient client = server.available();
if (client) {
Serial.println("New Client.");
String currentLine = "";
while (client.connected()) {
if (client.available()) {
char c = client.read();
Serial.write(c);
if (c == '\n') {
// if c adalah baris baru
// if masih kosong currentlinenya, 2 kali baris baru
// itu akhir dari response
if (currentLine.length() == 0) {
client.println("HTTP/1.1 200 OK");
client.println("Content-type:text/html");
client.println("Connection: close");
// HTTP response diawali dengan blank line
client.println();
// Tampilkan HTTP
client.println("<!DOCTYPE html><html>");
client.println("<head><meta name=\"viewport\" content=\"width=device-width, initial-
scale=1\">");
client.println("<link rel=\"icon\" href=\"data:,\">");
// Web Page Heading
client.println("<body><h1>ESP32 Web Server</h1>");
client.println("<h2>Selamat Datang</h2>");
client.println("</body></html>");
// HTTP response diakhiri dengan blank line
client.println();
// keluar dari while loop
break;
} else { // kalau dapat newline, clear line saat ini
currentLine = "";
}
} else if (c != '\r') {
// kalau dapat CR, tambahkan ke currentline
currentLine += c;
}
}
}
// Close the connection
client.stop();
Serial.println("Client disconnected.");
Serial.println("");
}
}
 Program 4
Acces Point
// Load Wi-Fi library
#include <WiFi.h>

// Gantikan Dengan SSID dan Password yang diinginkan


const char* ssid = "Mahasiswa boss";
const char* password = "12345678";

// Deklarasikan server HTTP


WiFiServer server(80);

void setup() {
Serial.begin(115200);

// Mengkonfigurasi access point


Serial.print("Setting AP (Access Point)…");
// Kosongkan password bila ingin open access
WiFi.softAP(ssid, password);

IPAddress IP = WiFi.softAPIP();
Serial.print("AP IP address: ");
Serial.println(IP);

//jalankan server http


server.begin();
}
void loop(){
//cek status klien
WiFiClient client = server.available();
if (client) {
Serial.println("New Client.");
String currentLine = "";
while (client.connected()) {
if (client.available()) {
char c = client.read();
Serial.write(c);
if (c == '\n') {
// if c adalah baris baru
// if masih kosong currentlinenya, 2 kali baris baru
// itu akhir dari response
if (currentLine.length() == 0) {
client.println("HTTP/1.1 200 OK");
client.println("Content-type:text/html");
client.println("Connection: close");
// HTTP response diawali dengan blank line
client.println();
// Tampilkan HTTP
client.println("<!DOCTYPE html><html>");
client.println("<head><meta name=\"viewport\" content=\"width=device-width, initial-
scale=1\">");
client.println("<link rel=\"icon\" href=\"data:,\">");
// Web Page Heading
client.println("<body><h1>ESP32 Web Server</h1>");
client.println("<h2>Selamat Datang</h2>");
client.println("</body></html>");
// HTTP response diakhiri dengan blank line
client.println();
// keluar dari while loop
break;
} else { // kalau dapat newline, clear line saat ini
currentLine = "";
}
} else if (c != '\r') {
// kalau dapat CR, tambahkan ke currentline
currentLine += c;
}
}
}
// Close the connection
client.stop();
Serial.println("Client disconnected.");
Serial.println("");
}
}
 Program 5
Mengontrol LED dari Web Server
// Load Wi-Fi library
#include <WiFi.h>

// Replace with your network credentials


const char* ssid = "Mahasiswa boss";
const char* password = "12345678";

// Set web server port number to 80


WiFiServer server(80);

// Variable to store the HTTP request


String header;

// Auxiliar variables to store the current output state


String output26State = "off";
String output27State = "off";

// Assign output variables to GPIO pins


const int output26 = 26;
const int output27 = 27;

void setup() {
Serial.begin(115200);
// Initialize the output variables as outputs
pinMode(output26, OUTPUT);
pinMode(output27, OUTPUT);
// Set outputs to LOW
digitalWrite(output26, LOW);
digitalWrite(output27, LOW);

// Connect to Wi-Fi network with SSID and password


Serial.print("Connecting to ");
Serial.println(ssid);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
// Print local IP address and start web server
Serial.println("");
Serial.println("WiFi connected.");
Serial.println("IP address: ");
Serial.println(WiFi.localIP());
server.begin();
}
void loop(){
WiFiClient client = server.available();

if (client) {
Serial.println("New Client.");
String currentLine = "";
while (client.connected()) {
if (client.available()) {
char c = client.read();
Serial.write(c);
header += c;
if (c == '\n') {
if (currentLine.length() == 0) {
client.println("HTTP/1.1 200 OK");
client.println("Content-type:text/html");
client.println("Connection: close");
client.println();

// turns the GPIOs on and off


if (header.indexOf("GET /26/on") >= 0) {
Serial.println("GPIO 26 on");
output26State = "on";
digitalWrite(output26, HIGH);
} else if (header.indexOf("GET /26/off") >= 0) {
Serial.println("GPIO 26 off");
output26State = "off";
digitalWrite(output26, LOW);
} else if (header.indexOf("GET /27/on") >= 0) {
Serial.println("GPIO 27 on");
output27State = "on";
digitalWrite(output27, HIGH);
} else if (header.indexOf("GET /27/off") >= 0) {
Serial.println("GPIO 27 off");
output27State = "off";
digitalWrite(output27, LOW);
}

// Display the HTML web page


client.println("<!DOCTYPE html><html>");
client.println("<head><meta name=\"viewport\" content=\"width=device-width, initial-
scale=1\">");
client.println("<link rel=\"icon\" href=\"data:,\">");
// CSS to style the on/off buttons
// Feel free to change the background-color and font-size attributes to fit your preferences
client.println("<style>html { font-family: Helvetica; display: inline-block; margin: 0px auto;
text-align: center;}");
client.println(".button { background-color: #4CAF50; border: none; color: white; padding:
16px 40px;");
client.println("text-decoration: none; font-size: 30px; margin: 2px; cursor: pointer;}");
client.println(".button2 {background-color: #555555;}</style></head>");

// Web Page Heading


client.println("<body><h1>ESP32 Web Server</h1>");

// Display current state, and ON/OFF buttons for GPIO 26


client.println("<p>GPIO 26 - State " + output26State + "</p>");
// If the output26State is off, it displays the ON button
if (output26State=="off") {
client.println("<p><a href=\"/26/on\"><button class=\"button\">ON</button></a></p>");
} else {
client.println("<p><a href=\"/26/off\"><button class=\"button
button2\">OFF</button></a></p>");
}

// Display current state, and ON/OFF buttons for GPIO 27


client.println("<p>GPIO 27 - State " + output27State + "</p>");
// If the output27State is off, it displays the ON button
if (output27State=="off") {
client.println("<p><a href=\"/27/on\"><button class=\"button\">ON</button></a></p>");
} else {
client.println("<p><a href=\"/27/off\"><button class=\"button
button2\">OFF</button></a></p>");
}
client.println("</body></html>");

// The HTTP response ends with another blank line


client.println();
// Break out of the while loop
break;
} else { // if you got a newline, then clear currentLine
currentLine = "";
}
} else if (c != '\r') {
currentLine += c;
}
}
}
// Clear the header variable
header = "";
// Close the connection
client.stop();
Serial.println("Client disconnected.");
Serial.println("");
}
}
hasil percobaan 5

>>>

>>>

Anda mungkin juga menyukai