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.

Gambar router dengan kabel RJ 45, Thomas Jensen

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.

Protokol Jaringan, Wikipedia CC-BY 3.0

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
	alamatServer := ":8128"


    // membuka jalur koneksi ke
    // alamat Server via TCP
    pesan ,err := net.Dial("tcp",alamatServer)
    cekErrorTerminet(err)

    // menulis pesan yang dikirim
    pesan.Write([]byte("UwU"))


    // menerima balasan
    balasan, _ := ioutil.ReadAll(pesan)

    // menampilkan hasil 
    // dari balasan
    println(string(balasan))
}

func cekErrorTerminet(e error){
    if e != nil {
        println(e.Error())
        os.Exit(1)
    }
}

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
	alamatServer := ":8128"
	
    // memastikan alamat ada, 
    // kalau tidak ada error
	alamat, err := net.ResolveTCPAddr("tcp4",alamatServer) 
	cekErrorTerminet(err)
	

    // menerima (listen) data yang masuk
	telinga, err := net.ListenTCP("tcp",alamat)
    cekErrorTerminet(err)
	
	for {

        // menerima bila ada pesan masuk
		pesan, err := telinga.Accept()
		if err != nil {
			println(err.Error())
			continue
		}

        // menerima isi pesan dengan jumlah 
        // byte sebesar 512 bytes
        var isiPesan [512]byte

        pesan.Read(isiPesan[0:])
        
        // menampilkan isi pesan
        // yang dikonversi dari 
        // []byte ke string
        println(string(isiPesan))
		
        // menulis balasan "Ok"
		pesan.Write([]byte("Ok")) 

        // menyelesaikan koneksi 
        // dan mengirim balasan
		pesan.Close() 
	}
}

// penanganan error bila ada
// error yang penting 
func cekErrorTerminet(e error){
    if e != nil {
        println(e.Error())
        os.Exit(1)
    }
}

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.

Referensi