SlideShare una empresa de Scribd logo
1 de 38
Meetup komunitas pengguna python
  Kampus ITB, 28 Januari 2012




Python untuk Pemrosesan Teks
            Bahasa Indonesia
                                 Peb Ruswono Aryan
                                     http://about.me/peb
Bahasa dan Media : Tulisan




                                                                                                                    Teks
                                                                                                                    gambar




                                                                                         Optical Character Recognition,
                                                                                         Handwriting Recognition
Image source:
http://i717.photobucket.com/albums/ww172/AmandaNichelle/Person.png

http://www.school-clipart.com/school_clipart_images/happy_person_in_silhouette_a_woman_clapping_0515-0911-2801-0927_SMU.jpg
Bahasa dan Media : Lisan




                                                                                                                        Teks




                                                                                                                     Suara

                                                                                         Natural Language Processing (text),
                                                                                         Automatic Speech Recognition,
Image source:
http://i717.photobucket.com/albums/ww172/AmandaNichelle/Person.png
                                                                                         Text-to-Speech
http://www.school-clipart.com/school_clipart_images/happy_person_in_silhouette_a_woman_clapping_0515-0911-2801-0927_SMU.jpg
Aplikasi
   Dialog
       Pencarian ( bebas konteks )
           Antarmuka kueri basisdata
           Antarmuka kueri umum (mis. Wolfram, Siri)
       Tanya-Jawab ( ada konteks pembicaraan )
           Chatbot (ELIZA, @begobet)
   Transformasi
       Penterjemahan
       Peringkasan
   Klasifikasi
       Kategorisasi/Pelabelan Dokumen
       Analisis Sentimen
Aplikasi : Penerjemahan Otomatis
Aplikasi : Tanya Jawab
Ragam Tugas Pemrosesan Bahasa
   Pemrosesan Morfologi
       Mencari kata dasar (stemming/lematisasi)
   Identifikasi
       Menentukan batas kalimat
       Klasifikasi kata (Part-of-Speech Tagging)
       Mencari peranan kata dalam kalimat (Parsing, Semantic
        Role Labeling)
       Ekstraksi Informasi
        (Orang, Organisasi, Lokasi, Jabatan, Kejadian, Waktu, Hu
        bungan) ~ Named Entity Recognition
Teknik

      Heuristik (Kaidah)                Statistik

   Template/Pattern             Machine Learning
    Matching                     (lebih) Lambat
   Cepat                        (asumsi) semakin
   (umumnya relatif) sulit       banyak data semakin
    dikembangkan                  baik
Teknologi (python)
   NLTK (Natural Language Toolkit)
       http://www.nltk.org
   Whoosh (Text Indexing/Search)
       http://pypi.python.org/pypi/Whoosh/
       https://bitbucket.org/mchaput/whoosh/ (repo)
   Topia.Termextract (term/keyword extraction)
       http://pypi.python.org/pypi/topia.termextract/
       https://github.com/turian/topia.termextract (repo)
   Pebahasa
       http://github.com/pebbie/pebahasa (code repo)
       http://pebahasa.appspot.com (demo site)
NLTK

Natural Language Processing Toolkit
Deskripsi
   Koleksi Algoritma Pemrosesan Teks
       Lematisasi, WordNet
       Pemisahan Kalimat
       POS Tag
       Pemotongan Frasa
   Koleksi Dokumen Teks (Korpus) & Model Bahasa
       Berbagai bahasa
Referensi

               Natural Language Processing with
                Python (S. Bird, O’Reilly 2009)
                http://www.nltk.org/book
                 (CC BY-NC-ND 3.0)
Peluang berkontribusi
   Model & Korpus Bahasa Indonesia
   Penerjemahan Buku ke Bahasa Indonesia
Whoosh

Fast, Pure-python Fulltext Search
Deskripsi

Indexing                          Pencarian
   Input :                          Input :
       Kumpulan dokumen                 Kueri pencarian
        (unicode)                         (unicode)
   Output :                             Indeks Dokumen
       Indeks untuk
        mempercepat pencarian        Output :
   Komponen :                           Daftar dokumen yang
                                          relevan
       Tokenisasi (pemotongan)
       Struktur data indeks         Komponen :
        terbalik                         Pencocokan
                                          kata/segmen
                                         Pengurutan
Kode : import
from whoosh.index import create_in, open_dir
from whoosh.fields import *
from whoosh.qparser import QueryParser
Kode : Schema
schema = Schema(
 title=TEXT(stored=True), cat=TEXT(store
 d=True), path=TEXT(stored=True), rank=N
 UMERIC(stored=True, type=float), conten
 t=TEXT)




                    Parameter stored=True akan membuat
                    Field tersebut ditampilkan dalam hasil
                    Pencarian (result set)
Kode : Indexing
_ix = None
if not os.path.exists('indexdir'):
    os.mkdir('indexdir')
    _ix = create_in('indexdir', schema)
    w = _ix.writer()
    for root, dirnames, filenames in os.walk('data'):
        for filename in fnmatch.filter(filenames, '*.txt'):
             doc = os.path.join(root, filename)
             f = open(doc)
             text = re.sub("[x80-xff]", '', f.read())
            w.add_document(title=unicode(filename[:-
  4]), content=unicode(text, 'utf8'), cat=unicode('artikel'), pat
  h=unicode(doc))
             f.close()
    w.commit()
else:
    _ix = open_dir('indexdir')
Kode : Search
s = _ix.searcher()
while True:
    print "?",
    qs = raw_input().lower().strip()
    if qs=="exit":
        break
    q =
  QueryParser('content', _ix.schema).parse(u
  nicode(qs))
    r = s.search(q)
    for rr in r:
        print rr['title'], rr['path']
s.close()
topia.termextract

        Term extraction
Deskripsi
   Input : Teks (paragraf)
   Output : Daftar kata/frasa yang sering muncul
   Komponen :
       POS Tagger
       Rule-based Filter
       Menggunakan zope.interface
       Baru tersedia untuk Bahasa Inggris
Kode
from topia.termextract import extract
extractor = extract.TermExtractor()
print sorted( extractor( text ) )
Pebahasa

Layanan web pemrosesan teks Bahasa Indonesia
Deskripsi
   Kumpulan Algoritma NLP
       Pemenggalan suku kata
       deteksi batas kalimat
       Penentuan kelas kata (POS tag) berbasis kamus eksternal &
        HMM (Hidden Markov Model)
       Pemotongan kalimat (Chunking) berdasarkan kapitalisasi *
       Ekstraksi istilah (modifikasi dari topia.termextract) *
       Peringkasan sederhana *
       Ekstraksi informasi *
   Dibungkus menjadi layanan web
       Google AppEngine
       Bottlepy

*) belum ditambahkan ke repo
Demo

screenshot
Pemenggalan suku kata




         Aturan pemisahan digunakan untuk pengucapan
         (text to speech), bukan untuk stemming/mencari
         Kata dasar
POS Tag



                                                         NN : Kata benda
                                                         NNP : Proper Noun
                                                         MD : Modal
                                                         VBT : kata kerja transitif




                         Alfan Farizki Wicaksono, Ayu Purwarianti. HMM Based POS Tagger for Bahasa Indonesia.
          On Proceedings of 4th International MALINDO (Malay - Indonesian Language) Workshop. 2nd August 2010.
Term Extraction




Sumber artikel : Kompas.com
Peringkasan




Simple extractive summarization
Named Entity Recognition




   keterangan
   6 : posisi/jabatan
   1 : orang
   2 : organisasi
   7 : predikat (untuk relasi antar entitas)
   8 : abaikan saja
Bottle - GAE

  Tutorial tambahan
Bottle
   Web Microframework :
       hanya menyediakan URL routing dan templating (built-
        in, mako, jinja2)
       Hanya 1 file yang perlu diimpor (bottle.py)
       Berbasis decorator (@<nama decorator> sebelum definisi
        fungsi)
       Session ditangani oleh WSGIMiddleWare (beaker, gae-
        sessions)
   Mendukung berbagai jenis Web Server:
       WSGIref, CGI, FCGI
       Paste, CherryPy, Twisted, Tornado, Bjoern, ...
       GAE (Google App Engine)
Kode : app.yaml
handlers:
- url: /.*
  script: main.py
Kode : main.py

from bottle import *

from google.appengine.ext import webapp
from google.appengine.ext.webapp import util

import suku
...
util.run_wsgi_app(default_app())
Kode : main.py (URL routing)
@route('/')
                                      decorator
@view(‘word_entry’) # views/word_entry.tpl
def index():
    return { ‘apptitle’:’pebahasa‘ }

@post('/penggal')
def penggal():
    kata =
 request.forms.get('word', '').strip()
    fon = suku.pecah(kata)
    return { ‘asal’:kata, ‘hasil’: fon }
                 dict akan diubah menjadi JSON secara otomatis
Kode: views/word_entry.tpl
rebase akan menggunakan template lain (index.tpl) sebagai pembungkus
%rebase index apptitle=apptitle
<form method="POST" id="newcat"
 action="/penggal">
 <label for="word">Kata</label>
 <input type="text" name="word"
 id="word" size="30"/>
 <input type="submit"/>
</form>
                 variabel apptitle bisa diakses di index.tpl
Kode: views/index.tpl
<!DOCTYPE html>
<html>
 <head>     Menampilkan isi variabel apptitle (html akan di-escape)
     <title>{{apptitle}}</title>
 </head>
 <body>
     <div id="content">
          %include Template yang memanggil rebase akan
                       Diselipkan di sini
        </div>
 </body>
</html>
Terima kasih

Komentar , pertanyaan ?

Más contenido relacionado

La actualidad más candente

Interaksi Manusia dan Komputer : Conceptual Model
Interaksi Manusia dan Komputer : Conceptual ModelInteraksi Manusia dan Komputer : Conceptual Model
Interaksi Manusia dan Komputer : Conceptual Model
Eko Kurniawan Khannedy
 
Digital image processing
Digital image processingDigital image processing
Digital image processing
Defri Tan
 
Buku ajar imk dyah ayu irawati
Buku ajar imk dyah ayu irawatiBuku ajar imk dyah ayu irawati
Buku ajar imk dyah ayu irawati
Robby Firmansyah
 

La actualidad más candente (20)

Interaksi manusia dan komputer
Interaksi manusia dan komputerInteraksi manusia dan komputer
Interaksi manusia dan komputer
 
Konsep Data Mining
Konsep Data MiningKonsep Data Mining
Konsep Data Mining
 
Pengertian ERD
Pengertian ERDPengertian ERD
Pengertian ERD
 
Pertemuan 3 - Digital Image Processing - Spatial Filtering - Citra Digital
Pertemuan 3 - Digital Image Processing - Spatial Filtering - Citra DigitalPertemuan 3 - Digital Image Processing - Spatial Filtering - Citra Digital
Pertemuan 3 - Digital Image Processing - Spatial Filtering - Citra Digital
 
aljabar kalkulus dan relasional
aljabar kalkulus dan relasionalaljabar kalkulus dan relasional
aljabar kalkulus dan relasional
 
Pengantar Database
Pengantar DatabasePengantar Database
Pengantar Database
 
Tahapan pengembangan perangkat lunak
Tahapan pengembangan perangkat lunakTahapan pengembangan perangkat lunak
Tahapan pengembangan perangkat lunak
 
Interaksi Manusia dan Komputer : Conceptual Model
Interaksi Manusia dan Komputer : Conceptual ModelInteraksi Manusia dan Komputer : Conceptual Model
Interaksi Manusia dan Komputer : Conceptual Model
 
Basis data klien server
Basis data klien serverBasis data klien server
Basis data klien server
 
Artificial Intelligence - A Star
Artificial Intelligence - A StarArtificial Intelligence - A Star
Artificial Intelligence - A Star
 
Digital image processing
Digital image processingDigital image processing
Digital image processing
 
UI/UX Heuristic Evaluation & Usability Testing [OCACourse X uxspecialty]
UI/UX Heuristic Evaluation & Usability Testing [OCACourse X uxspecialty] UI/UX Heuristic Evaluation & Usability Testing [OCACourse X uxspecialty]
UI/UX Heuristic Evaluation & Usability Testing [OCACourse X uxspecialty]
 
02 struktur-sistem-operasi
02 struktur-sistem-operasi02 struktur-sistem-operasi
02 struktur-sistem-operasi
 
Bab. 9 regresi linear sederhana.1
Bab. 9 regresi linear sederhana.1Bab. 9 regresi linear sederhana.1
Bab. 9 regresi linear sederhana.1
 
Sistem informasi penjualan minimarket berintegrasi barcode reader menggunakan
Sistem informasi penjualan minimarket berintegrasi barcode reader menggunakanSistem informasi penjualan minimarket berintegrasi barcode reader menggunakan
Sistem informasi penjualan minimarket berintegrasi barcode reader menggunakan
 
Buku ajar imk dyah ayu irawati
Buku ajar imk dyah ayu irawatiBuku ajar imk dyah ayu irawati
Buku ajar imk dyah ayu irawati
 
SQL Pengelompokan dan Pengurutan Data
SQL Pengelompokan dan Pengurutan DataSQL Pengelompokan dan Pengurutan Data
SQL Pengelompokan dan Pengurutan Data
 
Organisasi Berkas Sb 4
Organisasi Berkas Sb 4Organisasi Berkas Sb 4
Organisasi Berkas Sb 4
 
COntoh soal sql dan pembahasannya
COntoh soal sql dan pembahasannyaCOntoh soal sql dan pembahasannya
COntoh soal sql dan pembahasannya
 
Ai 6
Ai 6Ai 6
Ai 6
 

Similar a Python untuk Pemrosesan Teks Bahasa Indonesia

Webprograming
WebprogramingWebprograming
Webprograming
andreboys
 
Presentasi sidang dream searchengine
Presentasi sidang dream searchenginePresentasi sidang dream searchengine
Presentasi sidang dream searchengine
Meisya Fitri
 
Proyek+membangun+cms+tanpa+oop
Proyek+membangun+cms+tanpa+oopProyek+membangun+cms+tanpa+oop
Proyek+membangun+cms+tanpa+oop
Telkomsat
 

Similar a Python untuk Pemrosesan Teks Bahasa Indonesia (20)

PRESENTASI DATA ANALYS.pptx
PRESENTASI DATA ANALYS.pptxPRESENTASI DATA ANALYS.pptx
PRESENTASI DATA ANALYS.pptx
 
Algoritma - Penjelasan struktur data
Algoritma - Penjelasan struktur dataAlgoritma - Penjelasan struktur data
Algoritma - Penjelasan struktur data
 
W E B P R O G R A M M I N G
W E B  P R O G R A M M I N GW E B  P R O G R A M M I N G
W E B P R O G R A M M I N G
 
Webprograming
WebprogramingWebprograming
Webprograming
 
Web programming
Web programmingWeb programming
Web programming
 
Pengenalan OOP dan Framework Code Igniter
Pengenalan OOP dan Framework Code IgniterPengenalan OOP dan Framework Code Igniter
Pengenalan OOP dan Framework Code Igniter
 
Php coder
Php coderPhp coder
Php coder
 
Modul php 4
Modul php 4Modul php 4
Modul php 4
 
Modul php 4
Modul php 4Modul php 4
Modul php 4
 
Daskom 4
Daskom 4Daskom 4
Daskom 4
 
nota
notanota
nota
 
10012333 tugas1 db_web
10012333 tugas1 db_web10012333 tugas1 db_web
10012333 tugas1 db_web
 
Presentasi sidang dream searchengine
Presentasi sidang dream searchenginePresentasi sidang dream searchengine
Presentasi sidang dream searchengine
 
Text Preprocessing pemrosesan bahasa alami.pptx
Text Preprocessing pemrosesan bahasa alami.pptxText Preprocessing pemrosesan bahasa alami.pptx
Text Preprocessing pemrosesan bahasa alami.pptx
 
Proyek+membangun+cms+tanpa+oop
Proyek+membangun+cms+tanpa+oopProyek+membangun+cms+tanpa+oop
Proyek+membangun+cms+tanpa+oop
 
Software Aplikasi Dasar dan Software Khusus
Software Aplikasi Dasar dan Software KhususSoftware Aplikasi Dasar dan Software Khusus
Software Aplikasi Dasar dan Software Khusus
 
Macam software
Macam softwareMacam software
Macam software
 
0-Pengantar Pemrograman lanjut.pptx
0-Pengantar Pemrograman lanjut.pptx0-Pengantar Pemrograman lanjut.pptx
0-Pengantar Pemrograman lanjut.pptx
 
Basic Pemrograman.pptx
Basic Pemrograman.pptxBasic Pemrograman.pptx
Basic Pemrograman.pptx
 
Tugas rekweb 2 1212511560 m.shafwan al farisy
Tugas rekweb 2 1212511560 m.shafwan al farisyTugas rekweb 2 1212511560 m.shafwan al farisy
Tugas rekweb 2 1212511560 m.shafwan al farisy
 

Python untuk Pemrosesan Teks Bahasa Indonesia

  • 1. Meetup komunitas pengguna python Kampus ITB, 28 Januari 2012 Python untuk Pemrosesan Teks Bahasa Indonesia Peb Ruswono Aryan http://about.me/peb
  • 2. Bahasa dan Media : Tulisan Teks gambar Optical Character Recognition, Handwriting Recognition Image source: http://i717.photobucket.com/albums/ww172/AmandaNichelle/Person.png http://www.school-clipart.com/school_clipart_images/happy_person_in_silhouette_a_woman_clapping_0515-0911-2801-0927_SMU.jpg
  • 3. Bahasa dan Media : Lisan Teks Suara Natural Language Processing (text), Automatic Speech Recognition, Image source: http://i717.photobucket.com/albums/ww172/AmandaNichelle/Person.png Text-to-Speech http://www.school-clipart.com/school_clipart_images/happy_person_in_silhouette_a_woman_clapping_0515-0911-2801-0927_SMU.jpg
  • 4. Aplikasi  Dialog  Pencarian ( bebas konteks )  Antarmuka kueri basisdata  Antarmuka kueri umum (mis. Wolfram, Siri)  Tanya-Jawab ( ada konteks pembicaraan )  Chatbot (ELIZA, @begobet)  Transformasi  Penterjemahan  Peringkasan  Klasifikasi  Kategorisasi/Pelabelan Dokumen  Analisis Sentimen
  • 7. Ragam Tugas Pemrosesan Bahasa  Pemrosesan Morfologi  Mencari kata dasar (stemming/lematisasi)  Identifikasi  Menentukan batas kalimat  Klasifikasi kata (Part-of-Speech Tagging)  Mencari peranan kata dalam kalimat (Parsing, Semantic Role Labeling)  Ekstraksi Informasi (Orang, Organisasi, Lokasi, Jabatan, Kejadian, Waktu, Hu bungan) ~ Named Entity Recognition
  • 8. Teknik Heuristik (Kaidah) Statistik  Template/Pattern  Machine Learning Matching  (lebih) Lambat  Cepat  (asumsi) semakin  (umumnya relatif) sulit banyak data semakin dikembangkan baik
  • 9. Teknologi (python)  NLTK (Natural Language Toolkit)  http://www.nltk.org  Whoosh (Text Indexing/Search)  http://pypi.python.org/pypi/Whoosh/  https://bitbucket.org/mchaput/whoosh/ (repo)  Topia.Termextract (term/keyword extraction)  http://pypi.python.org/pypi/topia.termextract/  https://github.com/turian/topia.termextract (repo)  Pebahasa  http://github.com/pebbie/pebahasa (code repo)  http://pebahasa.appspot.com (demo site)
  • 11. Deskripsi  Koleksi Algoritma Pemrosesan Teks  Lematisasi, WordNet  Pemisahan Kalimat  POS Tag  Pemotongan Frasa  Koleksi Dokumen Teks (Korpus) & Model Bahasa  Berbagai bahasa
  • 12. Referensi  Natural Language Processing with Python (S. Bird, O’Reilly 2009) http://www.nltk.org/book (CC BY-NC-ND 3.0)
  • 13. Peluang berkontribusi  Model & Korpus Bahasa Indonesia  Penerjemahan Buku ke Bahasa Indonesia
  • 15. Deskripsi Indexing Pencarian  Input :  Input :  Kumpulan dokumen  Kueri pencarian (unicode) (unicode)  Output :  Indeks Dokumen  Indeks untuk mempercepat pencarian  Output :  Komponen :  Daftar dokumen yang relevan  Tokenisasi (pemotongan)  Struktur data indeks  Komponen : terbalik  Pencocokan kata/segmen  Pengurutan
  • 16. Kode : import from whoosh.index import create_in, open_dir from whoosh.fields import * from whoosh.qparser import QueryParser
  • 17. Kode : Schema schema = Schema( title=TEXT(stored=True), cat=TEXT(store d=True), path=TEXT(stored=True), rank=N UMERIC(stored=True, type=float), conten t=TEXT) Parameter stored=True akan membuat Field tersebut ditampilkan dalam hasil Pencarian (result set)
  • 18. Kode : Indexing _ix = None if not os.path.exists('indexdir'): os.mkdir('indexdir') _ix = create_in('indexdir', schema) w = _ix.writer() for root, dirnames, filenames in os.walk('data'): for filename in fnmatch.filter(filenames, '*.txt'): doc = os.path.join(root, filename) f = open(doc) text = re.sub("[x80-xff]", '', f.read()) w.add_document(title=unicode(filename[:- 4]), content=unicode(text, 'utf8'), cat=unicode('artikel'), pat h=unicode(doc)) f.close() w.commit() else: _ix = open_dir('indexdir')
  • 19. Kode : Search s = _ix.searcher() while True: print "?", qs = raw_input().lower().strip() if qs=="exit": break q = QueryParser('content', _ix.schema).parse(u nicode(qs)) r = s.search(q) for rr in r: print rr['title'], rr['path'] s.close()
  • 20. topia.termextract Term extraction
  • 21. Deskripsi  Input : Teks (paragraf)  Output : Daftar kata/frasa yang sering muncul  Komponen :  POS Tagger  Rule-based Filter  Menggunakan zope.interface  Baru tersedia untuk Bahasa Inggris
  • 22. Kode from topia.termextract import extract extractor = extract.TermExtractor() print sorted( extractor( text ) )
  • 23. Pebahasa Layanan web pemrosesan teks Bahasa Indonesia
  • 24. Deskripsi  Kumpulan Algoritma NLP  Pemenggalan suku kata  deteksi batas kalimat  Penentuan kelas kata (POS tag) berbasis kamus eksternal & HMM (Hidden Markov Model)  Pemotongan kalimat (Chunking) berdasarkan kapitalisasi *  Ekstraksi istilah (modifikasi dari topia.termextract) *  Peringkasan sederhana *  Ekstraksi informasi *  Dibungkus menjadi layanan web  Google AppEngine  Bottlepy *) belum ditambahkan ke repo
  • 26. Pemenggalan suku kata Aturan pemisahan digunakan untuk pengucapan (text to speech), bukan untuk stemming/mencari Kata dasar
  • 27. POS Tag NN : Kata benda NNP : Proper Noun MD : Modal VBT : kata kerja transitif Alfan Farizki Wicaksono, Ayu Purwarianti. HMM Based POS Tagger for Bahasa Indonesia. On Proceedings of 4th International MALINDO (Malay - Indonesian Language) Workshop. 2nd August 2010.
  • 30. Named Entity Recognition keterangan 6 : posisi/jabatan 1 : orang 2 : organisasi 7 : predikat (untuk relasi antar entitas) 8 : abaikan saja
  • 31. Bottle - GAE Tutorial tambahan
  • 32. Bottle  Web Microframework :  hanya menyediakan URL routing dan templating (built- in, mako, jinja2)  Hanya 1 file yang perlu diimpor (bottle.py)  Berbasis decorator (@<nama decorator> sebelum definisi fungsi)  Session ditangani oleh WSGIMiddleWare (beaker, gae- sessions)  Mendukung berbagai jenis Web Server:  WSGIref, CGI, FCGI  Paste, CherryPy, Twisted, Tornado, Bjoern, ...  GAE (Google App Engine)
  • 33. Kode : app.yaml handlers: - url: /.* script: main.py
  • 34. Kode : main.py from bottle import * from google.appengine.ext import webapp from google.appengine.ext.webapp import util import suku ... util.run_wsgi_app(default_app())
  • 35. Kode : main.py (URL routing) @route('/') decorator @view(‘word_entry’) # views/word_entry.tpl def index(): return { ‘apptitle’:’pebahasa‘ } @post('/penggal') def penggal(): kata = request.forms.get('word', '').strip() fon = suku.pecah(kata) return { ‘asal’:kata, ‘hasil’: fon } dict akan diubah menjadi JSON secara otomatis
  • 36. Kode: views/word_entry.tpl rebase akan menggunakan template lain (index.tpl) sebagai pembungkus %rebase index apptitle=apptitle <form method="POST" id="newcat" action="/penggal"> <label for="word">Kata</label> <input type="text" name="word" id="word" size="30"/> <input type="submit"/> </form> variabel apptitle bisa diakses di index.tpl
  • 37. Kode: views/index.tpl <!DOCTYPE html> <html> <head> Menampilkan isi variabel apptitle (html akan di-escape) <title>{{apptitle}}</title> </head> <body> <div id="content"> %include Template yang memanggil rebase akan Diselipkan di sini </div> </body> </html>
  • 38. Terima kasih Komentar , pertanyaan ?