Selasa, 21 September 2021

Pengembangan Konsep Algoritma Web Server Dinamis



    Algoritma merupakan suatu langkah-langkah logis tertentu yang digunakan untuk menyelesaikan suatu masalah. Dalam hal ini, masalah yang dimaksud adalah masalah dalam membangun sebuah sistem ataupun program yang berjalan di dalam sebuah komputer. Algoritma sendiri merupakan salah satu bahasan yang merupakan topik dasar, terutama bagi mereka yang mengambil perkuliahan pada jurusan teknik, terutama teknik komputer dan sistem informasi.

    Saat ini, algoritma memiliki fungsi yang sangat penting bagi manusia, yaitu membantu manusia dalam menyelesaikan suatu masalah, yang didasarkan pada pola pikirnya masing-masing. Jadi, dengan menggunakan prinsip-prinsip algoritma, seseorang bisa menyelesaikan masalahnya masing-masing.

Pengertian Flowchart

 

Flowchart bukanlah merupakan sebuah kerangaka berpikir seperti algoritma ataupun pseudocode flowchart pada dasarnya merupakan sebuah bentuk gambar ataupun diagram yang memiliki aliran satu atau dua arah yang berlaku secara sekuensial atau berkesinambungan. Fungsi utama dari flowchart ini adalah untuk menggambarkan sebuah desain program dan untuk merepresentasikan sebuah program atau sistem yang akan kita buat, berdasarkan pola berpikir kita (berdasarkan algoritma).

Unsur – unsur atau komponen yang terdapat pada flowchart

Secara umum, dan secara garis besar, flowchart menerapkan unsur atau komponen yang sama seperti komponen pada pemrograman. Berikut ini adalah beberapa unsur dalam flowchart tersebut :

  1. Input
  2. Percabangan (biasanya menggunakan command if dan switch)
  3. Perulangan (biasanya menggunakan command atau kode while, for, each, loop)
  4. Output

Flowchart dibuat sesuai dengan algoritma yang sudah disusun, dan kemudian dibuat sesuai dengan urutan, perintah, serta ketentuan-ketentuan lainnya, yang dilambangkan dengan symbol-symbol tertentu.


 

Pengertian Pseudocode

Pseudocode merupakan sebuah pengembangan dari algoritma, dimana, sesuai dengan namanya, pseudocode menggunakan kode-kode tertentu untuk memberikan penjelasan mengenai cara kerja atau penyelesaian dari suatu masalah. Singkatnya, pseudocode bisa dibilang sebagai sebuah algoritma yang sudah diubah ke dalam bentuk kode-kode tertentu.

Kelebihan dari pseudocode ini adalah memiliki struktur yang jauh lebih ringkas dibandingkan dengan algoritma, namun demikian masih mudah untuk dimengerti oleh manusia, dan memiliki struktur yang hampir mirip dengan bahasa pemrograman. Pseudocode menggunakan banyak sekali command-command yang populer, yang banyak kita pelajari, misalnya saja, IF, ELSE, THEN, serta menggunakan kode atau tanda-tanda tertentu, seperti tanda underscore (_), tanda koma, titik, tanda kutip, tanda panah kiri dan kanan, serta tanda lainnya.

Untuk dapat membuat sebuah pseudocode, maka paling tidak kita harus mengetahui algoritma dari suatu masalah terlebih dahulu. Setelah itu, barulah, dirubah ke dalam bentuk yang lebih ringkas, dengan tambahan berupa kode dan tanda tertentu.

Berikut ini merupakan flowchart dan pseudocode dari code program web server dinamis 

Pseudocode handle_request()

Deklarasi
Mulai
Request : string
Client_Connection : object
Request_message : message
Request_line : line
Words : request_line.split()
Method : word[0]
uri : word.strip[1]
http_version : word[2]

Implementasi
Client_Connection <= CALL RecV(1024).decode
Request_Message = request.split(“\r\n”)
Request_line = request_message[0]
Words = request_line.split()
Method = word[0]
Uri = word[1].strip(“/”)
Http_version = word[2]
if(uri == ''):
uri = 'index.html'
if(method == 'GET'):
response = handle_get(uri, http_version)
elif(method == 'POST'):
data = request_message[len(request_message)-1]
response = handle_post(uri, http_version,data)
return response

Pseudocode hendle_get()

Deskripsi
var uri, http_version, response_line, content_type, entity_header, file, message_body, crlf, response

Implementasi
uri <= uri
if(uri.exist = true and not uri.isdir= true)
    response_line <= http_version + “200 OK”.encode()
    content_type <= mimetype (uri).encode
    entity_header <= content_type.encode()
    file open uri
    message_body read file byte
    file close()
else
    response_line <= http_version + “404 Not Found”.encode()
    entity_header <= content_type:text/html.encode()
    message_body <= <h1>404 Not Found</h1>.encode()
crlf <= crlf
response <= response_line + \r \n entity_header+ \r \n + \r \n + message_body.encode()
return response

Pseudocode handle_post()

Deskripsi
var uri, http_version, data, response_line, content_type, entity_header, file, template, message_body, crlf, response, context

Implementasi
uri <= uri
if(uri.exist = true and not uri.isdir= true)
    response_line <= http_version + “200 OK”.encode()
    content_type <= mimetype (uri).encode
    entity_header <= content_type.encode()
    file open uri
    message_body read file
    file close()
    template <= Template(html)
    _POST <= {}
    for x in data.split('&'):
        y = x.split('=')
       _POST[y[0]]=y[1]
    context = {
       '_POST' : _POST
    }
else
    response_line <= http_version + “404 Not Found”.encode()
    entity_header <= content_type:text/html.encode()
    message_body <= <h1>404 Not Found</h1>.encode()
crlf <= crlf
response <= response_line + \r \n entity_header+ \r \n + \r \n + message_body.encode()
return response

Pseudocode Class Template

 

Deklarasi

Text : String

Context : Lib

int {m : text, kompile } : String

Kompile {m : text} : String

Render {In : Context, text } : String

 

Implementasi Limit

Self.tokens = self.compile (test)

 

Implementasi Kompile

token = [ ]

delimiter = re.compile {r`{%.(.*?)%}0. Re,DOTALL

for index, token in delimiter.split{text}

if index % 2 == 0

if token:

tokens.append((False, token.replace('%\}', '%}').replace('{\%', '{%')))

       else:

lines = token.replace('{\%', '{%').replace('%\}', '%}').splitlines()

indent = min([len(l) - len(l.lstrip()) for l in lines if l.strip()])

realigned = '\n'.join(l[indent:] for l in lines)

tokens.append((True, compile(realigned, '<tempalte> %s' % realigned[:20], 'exec')))

Return tokens

 

Implementasi Render

global_context = {}

if context:

update global_context

 

def emit(*args):

result.extend([str(arg) for arg in args])

def fmt_emit(fmt, *args):

result.append(fmt % args)

 

global_context['emit'] = emit

global_context['fmt_emit'] = fmt_emit

 

#run the code

result = []

for is_code, token in self.tokens:

if is_code:

    exec(token, global_context)

else:

    result.append(token)

return ‘’,join(result)


Referensi

https://www.nesabamedia.com/pengertian-pseudocode/

https://dosenit.com/ 

https://4winmobile.com/ 

 

Tidak ada komentar:

Posting Komentar

Cara Membuat Database Pada Ms Excel ~ Part 8

    Normalisasi adalah teknik analisis data yg mengorganisasikan atribut-atribut data menggunakan cara mengelompokkan sebagai akibatnya ...