Python Socket Menampilkan Data Ke Browser

Python

Python - Merupakan bahasa pemrograman serba guna. Kalian bisa membuat aplikasi, website server, game, dsb. Salah satu yang sering digunakan yaitu untuk membuat website. Kebanyak website itu biasanya menggunkan php dan javascript.

python socket
python scoket

Untuk membuat website dengan python biasanya kita membutuhkan framework untuk memudahkan kita dalam pembuatan website seutuhnya. Namun untuk pembelajaran saja disini kami akan memberi contoh cara mudahnya menampilkan data ke browser dengan python socket.

Jadi ini merupakan dasar bagaimana website itu dibuat. website yang ada di internet adalah sebuah jaringan komputer yang sangat besar sampai seluruh dunia. Komputer-komputer ini tersambung satu sama lain dengan internet.

Apa Itu Socket Python?

Socket python merupakan salah satu modul yang dapat digunakan di python. Sedangkan modul merupakan kode python yang sudah dibuat sehingga kita tinggal mengimportnya tanpa perlu membuat sebuah kode python dari awal. Ada banyak sekali modul dalam python, selain modul bawaan python kita juga bisa membuat modul kita sendiri.

Baca Juga: Belajar penulisan kode python

Fungsi Socket Python

Dalam dunia pemrograman pasti mengenal dengan yang namanya jaringan dan server. Misal untuk menjalankan kode php kita membutuhkan server untuk menjalankanya seperti XAMPP di dalamnya ada yang namanya apache, Nah apache tersebut merupakan server untuk menerjemahkan kode php ke browser.

Sama dengan socket pada python. Socket Python berfungsi untuk melakukan pertukaran data. Jadi misal kita buat dua buah aplikasi yang satu kita setting sebagai server yang satu sebagai client nah keduanya bisa kita hubungkan dengan socket. Kalo kita analogikan itu mirip stop kontak listrik dengan colokannya.

Menampilkan Data ke Browser

Data yang diterima oleh browser itu bermancam-macam untuk saat ini. Mungkin kalo zaman dahulu browser cuma bisa menerima data html saja. Tapi sekarang ada yang namanya json , xml dsb. Untuk menampilkan data ke browser dengan socket, maka data yang harus kita kirim adalah data html agar mudah.

Untuk data sperti json dan lainnya kita tidak hanya perlu menggunakan socket python tapi kita perlu menggunakan framework untuk membuat website menggunakan python. Agar memudahkan kita dalam proeses developer websitenya. Menampilkan data ke browser dengan socket python:

1.Mengimport modul socket

Untuk menggunakan fungsi dari socket, pastinya kalian harus mengimport dulu modulnya, dan berikut penulisannya:

#Load Module
import socket
import time
import datetime

Oh ya disitu saya sekalian mengimport modul time untuk mengetahui waktu konek socket yang kita buat.

2.Membuat inisialisasi

Dalam membuat sebuah program membuat inisial ini penting untuk memudahkan. Disini kita akan membuat variable yang dibutuhkan, Seperti ini:

# Inisial server
s = socket.socket()        
host = socket.getfqdn()
port = 1212


if (host != "127.0.0.1"):
    host = "127.0.0.1"

Berikut uraian argumennya:

  • : Mewakili fungsi dari socket yaitu socket.socket(). Agar lebih mudah nanti kita untuk mengambil fungsi socketnya.
  • Host : Ini nantinya akan menjadi ip yang akan digunakan di browser kalian bisa ubah jadi "localhost" atau "127.0.0.1".
  • Port : Dalam sebuah jaringan selain host pasti juga ada portnya untuk membuat sebuah koneksi.
  • Lalu disitu saya memberi sedikit logic agar host dipakai benar-benra localhost.

3.Memulai Koneksi Socket

Untuk memulai koneksi socketnya, Berikut penulisan kodenya:

# connect to socket
s.bind((host, port))  
s.listen(5)

Berikut keterangannya:

  • s.bind((host, port)) - s inikan inisial socket yang sudah kita buat, Nah sedangkat fungsi bind adalah untuk menyatukan host dan port.
  • s.listen(5) - Ini untuk memulai koneksi socket jadi sampai ini host dan port kita sudah berjalan.

4.Mengirim Data Ke Browser

Oke setelah host dan port kita sudah dibangun saatnya kita mengirim data dan menerima data ( pertukaran data ) . Karena kita hanya akan mengirim data ke browser maka kita hanya membuat socket di servernya. Untuk penulisan kodenya sebagai berikut:

# load data ke browser 
while True:
    
    #info for time connection
    print (datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S"))

    # Establish connection with client.    
    c = s.accept()[0]

    # Maximal connection
    c.recv(1000)

    # Load data for browser true 
    c.send(b'HTTP/1.0 200 OK\n')
    c.send(b'Content-Type: text/html\n')
    c.send(b'\n')
    c.send(b"""
        <html>
        <head>
          <style>
          h1{
            color:red;
            }
          </style>
        </head>
        <body>
        <h1>Hello World</h1> this is my server!
        </body>
        </html>
    """)
    c.close()

Penjelasanya:

  • while - karena koneksi yang kita akan buat buka hanya sekali jadi kita memerlukan fungsi looping agar koneksi socket dengan browser tidak terputus.
  • Info time - Ini hanya sebagai petunjuk saja untuk memberi tahu kita kapan data yang kita kirim ke browser di kirim.
  • c = s.accept()[0] - Disini kita membuat variable baru untuk menerima koneksi dari socket yang sudah kita buat atau koneksi tcp.
  • c.recv(1000) - fungsi ini adalah jumlah koneksi yang diterima oleh socket, Kalian bisa mengubahnya misal jadi 1 maka koneksinya cuma sekali. Ketika browser di refresh maka socketnya akan terhenti.
  • c.send(b) - Ini fungsi untuk mengirim data. disitu ada beberapa data yang harus dikirim untuk browser. Mulai dari status konek berhasil untuk browser adalah 200 OK, lalu type data yang kita kirim disini adalah html dan terakhir kita kirim html yang kita ingin tampilkan di browser.
  • c.close() - Ini untuk menutup koneksi, karena kalo gak di tutup koneksinya maka browser akan meloading terus. tapi tenang kita sudah membuat fungsi looping agar koneksi kita diulang.

Berikut kode lengkapnya:

#!/usr/bin/env python

#Load Module
import socket
import time
import datetime

# Inisisal server
s = socket.socket()        
host = socket.getfqdn()
port = 1212
        
if (host != "127.0.0.1"):
    host = "127.0.0.1"

# connect to socket
s.bind((host, port))  
s.listen(5) 

# load data ke browser 
while True:
    
    #info for time connection
    print (datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S"))

    # Establish connection with client.    
    c = s.accept()[0]

    # Maximal connection
    c.recv(1000)

    # Load data for browser true 
    c.send(b'HTTP/1.0 200 OK\n')
    c.send(b'Content-Type: text/html\n')
    c.send(b'\n')
    c.send(b"""
        <html>
        <head>
          <style>
          h1{
            color:red;
            }
          </style>
        </head>
        <body>
        <h1>Hello World</h1> this is my server!
        </body>
        </html>
    """)
    c.close()

5.Mencoba Scriptnya

Jika scriptnya sudah dibuat coba kalian jalankan script pythonya di terminal. Untuk pengguna linux bisa dengan, Memasukan perintah:

python nama_file.py

Jika tidak ada error akan menjadi:

Selain itu kalian bisa coba jalankan scriptnya menggunkan android. Yaitu dengan menggunkan aplikasi termux. Buat kalian yang belum kenal dengan aplikasi termux kalian bisa baca juga: Apa Itu Termux

Untuk menjalankan script python di termux perintahnya sama seperti di linux. Untuk hasilnya bisa lihat gambar berikut:

Kesimpulannya

Python merupakan bahasa pemrograman yang serbaguna dan salah satunya bisa digunakan untuk webserver. Namun untuk membuat sebuah website kita memerlukan framework python khusus untuk membangun website dengan python. Mungkin itu yang bisa disampaikan terima kasih atas perhatinya.

 

 


Related Articles