program pengecekan syntax HTML sederhana



haaii.. assalamualaikum wr. wb.  jumpa lagi dengan sayaa...
pada kesempatan kali ini, saya akan mencoba membagikan code tentang simulasi pengecekan syntax HTML.  ya walaupun tidak secanggih seperti yang sebenarnya, namun saya rasa program ini cukup mnguras otak saya saat proses pembuatannya.

Penjelasan secara umum mengenai program pengecek syntax HTML sederhana.

program ini saya buat, karena mendapat tugas dari asisten praktikun saya. jadi, mau tidak mau saya harus membuat nya. saya pun mengerahkan kekuatan logika saya untuk menyelesaikan tugas saya  yang satu ini.. dan alhamdulillah bisa rampung tepat pada waktunya..

walaupun, program ini tidak sebaik dan sebagus yang sebenarnya, tapi saya rasa sudah cukup untuk ditunjukkan ke asisten praktikum saya.. dan alhamdulillah tidak masalah.. hehe serasa terselamatkan saat itu..

Penjelasan Syntax HTML secara singkat,

oya, selanjutnya, saya akan mencoba menjelaskan tentang syntac dari html. jadi, kurung buka <head> harus ditutup dengan </head>  kemudian <body> juga harus ditutup dengan </body>. ya kurang lebihnya seperti itu. sudah punya gambaran kan? untuk lebih jelasnya, silahkan explore lebih dalam lagi di google. insyaallah sudah banyak yang membahas tentang masalah ini.

namun, program saya ini hanya mendeteksi kelengkapannya saja. yaitu hanya mendeteksi kelengkapan tanda "<" dan tanda ">". kemudian juga mendeteksi kurung pembuka <body> harus ditutup dengan tanda garis miring seperti </body>. jadi teks yang ada di dalam tanda kurung harus sama dengan yang di depan dan di akhir. hanya itulah yang saya deteksi pada program kali ini.. jadi bisa saya program ini tidak selengkap deteksi syntac milik html sendiri.. ya maklum lah.. masih belajar... hehe

program saya ini hanya akan mengeluarkan 2 output saja. apabila tidak lengkap, akan bernilai false. namun, apabila lengkapp akan bernilai true. sebenernya, ini sama saja dengan aturan kurung matematika pada umumnya. yaitu : kurung buka '(' harus ditutup dengan kurung tutup ')'. apabila tidak seimbang  maka akan salah.. ya cukup simpel sebenernya.. tapi cukup susah di realisasikan.

Code program pengecekan syntax HTML sederhana.

oya yuk kita balik lagi ke topik atau pokok bahasan utama kita di postingan kali ini.. yaitu "program pengecekan syntax HTML sederhana".. oke langsung saja, ini dia code nyaa....



 class stack():
    def __init__ (self):
        self.items = []
    def isempty (self):
        return self.items == []
    def push (self,item):
        self.items.append(item)
    def pop (self):
        return self.items.pop()
    def peek (self):
        return self.items[len(self.items)-1]
    def size (self):
        return len(self.items)
    def cetak (self):
        for i in range (len(self.items)) :
            print (self.items[i])

def cektandahtml(masukanteks):
    s1 = stack() 
    s2 = stack()
    penampung1 = True
    penampung2 = True
    a=1
    teks1 = ''
    teks2 = ''
    indikator = 'berhenti'
    pemutus = 1
    z=2

    for i in range (len(masukanteks)) :
        if len(masukanteks) != (i+1) :
            if masukanteks[i+1] == '!' :
                pemutus = 0
        #untuk mengecek kurung buka atau tutup seimbang atau tidak.   
        if masukanteks[i] == '<' :
            if i != (len(masukanteks)-1) :
                if masukanteks[i+1] != '/' and masukanteks[i+1] != '!'  :
                    indikator = 'mulai'
                    s1.push('<')
                    a = 1
                    pemutus = 1 
                elif masukanteks[i+1] == '/' and masukanteks[i+1] != '!'  :
                    indikator = 'mulai'
                    a = 2
                    s1.push('<')
                    pemutus = 1 
            else :
                penampung1 = False
        elif masukanteks[i] == '>' and pemutus == 1 :
            if s1.isempty() :
                penampung1 = False
            else :
                s1.pop()
                indikator = 'berhenti'
        
        #untuk merekam teks dan membangingkan teks yang ada dalam kurung pembuka da penutup            
        if indikator == 'mulai' :
            if a == 1 :
                teks1 += masukanteks[i]
            elif a == 2 and masukanteks[i] != '/' :
                teks2 += masukanteks[i]
        else :
            if teks1 != '' and a == 1:
                s2.push(teks1)
            if teks2 != ''  and a == 2 :
                z = s2.pop()
                if z  != teks2 :
                    penampung2 = False
            if a == 1 :
                teks1 = ''
            if a == 2 :
                teks2 = ''
    
    if ((s1.isempty and s2.isempty()) and (penampung1 and penampung2))  :
       hasil = True  
    else :
       hasil = False

    return hasil


print ('hasilnya adalah : ', cektandahtml('   Contoh Halaman Web     

Halo kawan, Saya belajar Python dan HTML

')) ''' Created on Apr 16, 2016 @author: Moham villa apdg '''

nah itu dia program nya.. cukup panjang juga ya... ya mungkin sedikit rumit juga sih.. apalagi saya tidak bisa menjelaskannya secara langsung... tentu lebih mempersulit lagi untuk memahaminya.. oya.. jika kalian ingin mengecek sebuah sintak, silahkan utak atik di dalam kurung di perintah print paling bawah. yaitu "print ('hasilnya adalah : ', cektandahtml('tulis disini'))". setlah itu kalian dapat menjalankan program ini...

silahkan copy lalu paste program di atas pada IDLE python maupun compiler python lainnya... setelah itu run program nya.. maka dengan segera akan tampil hasil dari pengecekannya... semoga sukses ya.. dan semoga tidak ada error... namun saya yakin tidak error didalamnya.. ya semoga saja sih.. hehe

oya,  jika ada yang ingin ditanyakan, silahkan berkomentar dibawah postingan ini yaa... apabila saya bisa, insyaallah saya jawab secepat mungkin. itupun kalau saya online ya.. karena ya tidak munkinlah kalau saya harus online terus terusan...

oya, sekian dulu ya pada postingan kali ini... saya mohon maaf atas kekurangannya. karena saya masih Newbie. tapi saya harap postingan kali ini dapat bermanfaat bagi yang membutuhkan untuk di jadikan sebagai referensi... terimakasih wassalamualaikum wr. wb. :)
Previous
Next Post »
Thanks for your comment