Pengenalan Jaringan Komputer
Ketika kita membuka sebuah situs web, hal yang paling sering kita lakukan adalah membuka browser kemudian mengetikan apa yang ingin di cari seperti tutorial, harga barang dan banyak lainya.
Kita bisa mengakses situs web karena adanya internet atau lebih tepatnya jaringan komputer yang bertukar data satu sama lain untuk menyediakan data yang kamu mau, HTTP adalah salah satunya yang sedang kamu pakai saat ini.
Apa itu Jaringan Komputer ?
Jaringan Komputer adalah kumpulan komputer yang saling terhubung untuk bertukar data yang berarti bagi komputer satu dan lain. Media jaringan seperti WiFi, Tower Seluler dan Kabel RJ adalah medium untuk komputer saling terhubung secara fisik dengan perantar sebuah Router untuk memberikan alamat (baca: IP Address) supaya lokasi komputer diketahui ketika menerima data.
Jika kita melihat jaringan skala internet, prinsip kerja Router dikerjakan oleh ISP (Internet Service Provider) untuk bisa terhubung dengan jaringan internet global.
Protokol Jaringan
Protokol jaringan adalah aturan bagaimana jaringan seharusnya berkerja seperti ketika kita mengakses situs A dan menerima data. Jaringan komputer perlu aturan yang menyeluruh dari perangkat keras hingga bisa dipakai oleh program, Salah satu standar protokol yang banyak digunakan yaitu TCP/IP.
TCI/IP memilki 4 lapisan
Network Interface Layer
Bagian ini berurusan dengan Hardware, kalo HP kamu jatuh terus ga bisa hidup fitur WiFi nya masalahnya berada di tingkat ini.
Internetwork Layer
Bagian ini berurusan dengan perantar jaringan seperti urusan mendapatkan IP jaringan, kalau kamu ga bisa konek WiFi karena banyak yang pakai permasalahanya berada di lapisan ini.
Host-to-Host Layer
Lapisan ini yang berurusan dengan pertukaran data yaitu socket (alamat ip : nomor port) dan mengurusi terbuka atau tertutupnya sebuah port pada komputer melalui sistem operasi dan firewall berkerja pada lapisan ini.
Socket juga bisa menggunakan dua protokol yaitu TCP dan UDP sebagai cara koneksi yang diambil.
Application Layer
Lapisan ini merupakan bagian dimana program bisa berinteraksi dengan jaringan komputer, programmer biasanya menggunakan lapisan ini untuk membuat program yang bisa berkomunikasi dengan komputer lain.
Lapisan ini banyak sekali standar protokol sesuai dengan kebutuhan aplikasi yang berjalan, sebagai contoh yakni Protokol HTTP yang berjalan pada lapisan ini yang bertugas menerima dan mengirim paket browsing kamu sehingga bisa melihat halaman ini.
Praktik Socket Programming
Bagian ini kita akan mencoba membuat program yang keduanya saling berkomunikasi satu sama lain menggunakan socket TCP.
Kerja socket yaitu Client-Server :
- Client : Mengirim data ke server dan menerima data dari server.
- Server : Menerima data dari client dan meneruskan data ke client.
Perlu diketahui kita akan mencoba konek ke alamat 127.0.0.1 yang mana ini alamat lokal komputer kita biasa disebut dengan loopback.
Skenario program ini yaitu program TCP Client akan mengirim data berisi UwU
ke TCP Server melalui socket : 127.0.0.1:8128
, tujuan untuk mengatahui apakah server menerima data tersebut dan setelah diterima dikembalikan dengan data berisi Ok
dari server ke Client.
Praktik ini menggunakan bahasa Go.
TCP Client
Bagian ini bertugas untuk mengirim data ke bagian server.
package main
import (
"net"
"os"
"fmt"
"io/ioutil"
)
func main(){
// socket yang dibuka oleh server
// untuk menerima koneksi masuk
:= ":8128"
alamatServer
// membuka jalur koneksi ke
// alamat Server via TCP
,err := net.Dial("tcp",alamatServer)
pesan (err)
cekErrorTerminet
// menulis pesan yang dikirim
.Write([]byte("UwU"))
pesan
// menerima balasan
, _ := ioutil.ReadAll(pesan)
balasan
// menampilkan hasil
// dari balasan
println(string(balasan))
}
func cekErrorTerminet(e error){
if e != nil {
println(e.Error())
.Exit(1)
os}
}
TCP Server
Bagian ini bertugas untuk menerima data ke server dan membalas data ke client.
package main
import (
"net"
"os"
)
func main(){
// socket yang dibuka oleh server
// untuk menerima koneksi masuk
:= ":8128"
alamatServer
// memastikan alamat ada,
// kalau tidak ada error
, err := net.ResolveTCPAddr("tcp4",alamatServer)
alamat(err)
cekErrorTerminet
// menerima (listen) data yang masuk
, err := net.ListenTCP("tcp",alamat)
telinga(err)
cekErrorTerminet
for {
// menerima bila ada pesan masuk
, err := telinga.Accept()
pesanif err != nil {
println(err.Error())
continue
}
// menerima isi pesan dengan jumlah
// byte sebesar 512 bytes
var isiPesan [512]byte
.Read(isiPesan[0:])
pesan
// menampilkan isi pesan
// yang dikonversi dari
// []byte ke string
println(string(isiPesan))
// menulis balasan "Ok"
.Write([]byte("Ok"))
pesan
// menyelesaikan koneksi
// dan mengirim balasan
.Close()
pesan}
}
// penanganan error bila ada
// error yang penting
func cekErrorTerminet(e error){
if e != nil {
println(e.Error())
.Exit(1)
os}
}
Kesimpulan
Jaringan komputer bisa digambarkan seperti Tukang Pos, saat kita membangun rumah kita pasti membutuhkan alamat untuk mengurus surat bangunan dan identitas keberadaan rumah kita disebuah wilayah. Ada identitas rumah kita bisa diketahui dan disampaikan barang oleh Tukang pos.
Wilayah bisa dianggap sebuah jaringan komputer dari router yang terhubung dengan banyak komputer, router yang mana tukang pos mengirimkan paket-paket sesuai alamat rumah kita yakni Komputer.