Sabtu, 29 Agustus 2009

Penggunaan Interpreter Python

Pertanyaan pertama tentang pemakaian Python yang umum adalah bagaimana caranya agar kita bisa menggunakan interpreter tersebut.
Distribusi Python dilengkapi dengan suatu fasilitas shell seperti di Linux, yang memungkinkan kita untuk mencoba penggunaan Python secara interaktif, atau untuk melakukan suatu hal yang sederhana saja. Lokasi instalasi Python biasa terletak di /usr/bin/python (Linux/Unix), sedangkan di windows C:Python26 atau C:Python25 tergantung versi dan default instalasi interpreter Python tersebut.

Modus Interaktif
Pertama-tama kita akan membahas modus interaktif yang disediakan oleh interpreter. Untuk menjalankannya, anda cukup mengetikkan
Code:

python

pada direktori interpreter melalui terminal atau command prompt.
tunggu sebentar dan anda akan mendapatkan tampilan seperti gambar dibawah (saya menggunakan windowsXP dan instalasi interpreter dilakukan di drive D:, secara default di C:, tidak menjadi masalah untuk hal ini):

Tanda >>> diatas berarti interpreter Python telah siap menerima perintah dari anda. Terdapat juga tanda ... yang berarti secondary prompt.
Anda bisa langsung mengetikkan ekspresi Python di prompt yang telah tersedia, baik untuk ekspresi sederhana berupa assignment sampai yang lebih kompleks seperti deklarasi fungsi dan class, berikut ini akan diberikan contoh penggunaannya. Untuk sementara, bagi yang yang baru mengenal Python, penjelasannya selanjutnya akan dibahas pada diskusi dan post saya berikutnya.

Contoh - contoh dasar, berupa assignment, penggunaan print dan pesan kesalahan:

This image has been resized. Click this bar to view the full image. The original image is sized 644x353.

Contoh - contoh penggunaan Python sebagai kalkulator
This image has been resized. Click this bar to view the full image. The original image is sized 644x555.

Berikut ini contoh-contoh yang lebih kompleks
This image has been resized. Click this bar to view the full image. The original image is sized 644x261.

Beberapa fungsi yang berguna pada modus interaktif ini adalah :

* help()
Berguna untuk anda yang ingin mendapatkan penjelasan tentang Python, baik itu perintah, module ataupun yang lainnya
* copyright()
Berguna untuk melihat hal-hal seputar hak cipta
* credits()
Berguna untuk melihat hal-hal seputar pembuat Python
* license()
Berguna untuk melihat hal-hal seputar lisensi
* dir([object])
Berguna untuk mengembalikan/menampilkan list yang berisi atribut-atribut objek yang diberikan.
o Tanpa parameter
akan mengembalikan nama-nama di dalam scope aktif
o Module
akan mengembalikan attribut module
o Type atau class
akan mengembalikan atribut-attributnya dan secara rekursif akan mengembalikan attribut-attribut orang tuanya
Python menyediakan perintah -perintah built-in yang mungkin akan sangat berguna bagi anda. Silahkan ketikkan
Code:

dir(__builtins__)

di prompt saat anda dalam modus interaktif
beberapa fungsi lain seperti len(), max(), min() dan open() mungkin akan sangat berguna bagi anda.
* del()
berguna untuk menghapus suatu object dari memori
This image has been resized. Click this bar to view the full image. The original image is sized 799x137.

Untuk keluar dari interpreter Python, tekan tombol CTRL+D

Penggunaan Script
Untuk tugas-tugas yang lebih kompleks tentu saja kita tidak mungkin mengetikkan semuanya pada modus interaktif. Untuk itu kita dapat membuatnya dalam sebuah script, berikut ini adalah contoh script python sederhana :
Code:

#!/usr/bin/python
a = 1

print "nilai a adalah = ", a

kita simpan dengan nama a.py
secara default, script Python yang anda buat disimpan dengan ekstensi .py

di dalam linux/unix, anda bisa menjalankan script tersebut dengan 2 cara:

* Ketikkan perintah Python a.py atau
* Berikan permission x sehingga script menjadi executable dengan perintah :

Code:

chmod +x a.py

setelah itu anda bisa menjalankannya dengan cara :
Code:

./a.py

sedangkan untuk di win32 anda bisa menjalankannya dengan cara mengetik:
Code:

python a.py

atau bahkan berupa
Code:

a.py

note: Anda bisa menjalankan perintah seperti diatas kalau variable DOS bernama PATH mengandung item Python anda. Untuk itu, anda perlu menuliskan perintah seperti berikut terlebih dahulu pada prompt shell :
Code:

SET PATH=%PATH%;D:\Python25

perintah tersebut disesuaikan dengan tempat instalasi Python anda, untuk kasus ini saya memang menginstall di partisi drive D:\

Dasar pemrograman jaringan dengan python

Telah beberapa dasawarsa lamanya sejak proyek untuk menghubungkan komputerkomputer menjadi Jaringan dimulai. Saat ini, kita sadar ataupun tidak menikmati berbagai fasilitas karena adanya jaringan komputer. Sebut saja WWW dan IRC! Apabila Anda seorang developer yang tertarik dalam pemrograman jaringan, tidak ada salahnya Anda menjajal kemampuan Python dalam melakukannya. Kesan pertama dibandingkan dengan bahasa C adalah luar biasa. Beberapa baris di dalam bahasa C dapat disingkat menjadi satu baris saja. Bahkan banyak hal yang dibuat menjadi begitu object oriented. Tertarik? Python sendiri datang bersama dengan dukungan pemrograman jaringan, mulai dari low level network sampai high level network. Bahkan Python juga menyediakan framework untuk menulis aplikasi jaringan. Sebelum memulai, kita akan membahas sedikit tentang dasar-dasar pemrograman jaringan. Modul pemrograman jaringan pada Python umumnya mendukung dua Internet Protocol: TCP dan UDP. Protokol TCP (stream) adalah protocol connection-oriented yang dapat diandalkan untuk membangun koneksi dua arah melewati jaringan. Sedangkan, UDP (datagram) adalah protokol yang connectionless. Protokol UDP tidak dapat diandalkan untuk program-program yang membutuhkan komunikasi yang harus dapat diandalkan. Semua koneksi dimulai dari suatu abstraksi yang disebut sebagai socket. Socket dapat diasumsikan sebagai file yang menerima koneksi yang masuk, membuat koneksi ke luar, dan mengirim ataupun menerima data. Pada sisi server, yang menerima koneksi, socket haruslah di-bind pada suatu port tertentu. Port sendiri adalah sebuah bilangan 16-bit yang memiliki jangkauan antara 0-65535. Port diaturoleh sistem operasi dan digunakan oleh client sebagai sarana untuk memilih layanan yang akan diakses. Port 0-1023 umumnya digunakan untuk servis sistem operasi ataupun layanan yang umumtelah diketahui.

Berikut ini adalah beberapa port yang umumnya telah diketahui layanannya:
FTP Data 20, FTP Control 21, SSH 22, Telnet 23, SMTP (Mail) 25, Finger 79, HTTP (WWW) 80, POP3 110, IMAP 143
Sebagai tambahan, untuk server TCP, socket yang digunakan untuk menerima koneksi tidaklah sama dengan socket yang digunakan untuk melakukan koneksi dengan client. Kita akan membahas hal ini dalam contoh.

Modul socket
Python menyediakan sangat banyak modul untuk pemrograman jaringan. Sebut saja asyncore, BaseHTTPServer, cgi, CGIHTTPServer, Cookie, ftplib, httplib, imaplib, nntplib, poplib, robotparser, select, SimpleHTTPServer, smtplib, socket, SocketServer, urllib, urlparse, dan webbrowser. Luar biasa! Untuk pemrograman jaringan, umumnya, kita perlu memahami tentang penggunaan low level.

Dasar Pemrograman Jaringan dengan Python
Berminat melakukan pemrograman jaringan? Cobal gunakan python happy

sebelum menggunakan modul-modul tingkat-tinggi lainnya. Untuk itulah, pada kesempatan kali ini kita akan membahas tentang modul socket dan beberapa contohnya. Modul socket sendiri menyediakan akses ke
socket BSD. Walau berbasiskan UNIX, modul socket terdapat di semua platform. Pada system operasi UNIX, socket ini mendukung IP dan UNIX domain socket, sedangkan pada sistem lainnya hanya IP yang didukung. Berikut ini adalah fungsi di dalam modul socket:

socket(family, type [, proto])
Membuat object socket yang baru mengunakan address family, socket type, dan protocol member. Address family ditunjukkan di dalam tabel berikut ini:

Konstanta Deskripsi
AF_INET protokol IPv4 (TCP, UDP)
AF_UNIX UNIX domain

Socket type ditunjukkan di dalam tabel berikut ini:

Konstanta Deskripsi
SOCK_STREAM Stream socket (TCP)
SOCK_DGRAM Datagram socket (UDP)
SOCK_RAW Raw socket, digunakan
hanya pada Address family
AF_INET
SOCK_SEQPACKET koneksi sekuensial

Sedangkan protocol member umumnya tidak dispesifikasikan. Nilai default-nya adalag 0. Protocol member adalah salah satu dari:
IPPROTO_ICMP, IPPROTO_IP, IPROTO_RAW,
IPPROTO_TCP, dan IPPROTO_UDP.
Contoh:

Code
>>> sock = socket.socket(socket.AF_INET,
socket.SOCK_DGRAM)
>>> type (sock)

>>> sock
col=0>
>>>

fromfd(fd, family, type [, proto])
Membuat object socket dari file descriptor fd. family, type dan proto sama seperti pada fungsi socket().

gethostname()
Mendapatkan hostname untuk komputer lokal. Contoh:

Code

>>> socket.gethostname()
‘air’
>>>

gethostbyname(hostname)
Menerjemahkan hostname seperti ‘bluejack.binus.ac.id’ menjadi alamat IP. Alamat IP dikembalikan dalam bentuk string. Contoh:

Code
>>> socket.gethostbyname(“localhost”)
‘127.0.0.1’
>>>

gethostbyname_ex(host)
Mengembalikan nilai hostname, list dari alias, dan list untuk alamat IP untuk host. parameter host dapat diberikan dalam format alamat IP ataupun hostname. Contoh:

Code
>>> socket.gethostbyname_ex(“127.0.0.1”)
(‘127.0.0.1’, [], [‘127.0.0.1’])
>>> socket.gethostbyname_ex(“localhost”)
(‘localhost’, [], [‘127.0.0.1’])
>>> socket.gethostbyname_ex(“air”)
(‘air.binus.ac.id’, [‘air’], [’10.20.37.51'])
>>>

gethostbyaddr(ip_addr)
Memetakan alamat IP atau hostname menjadi informasi DNS. Contoh:

Code
>>> socket.gethostbyaddr(“127.0.0.1”)
(‘localhost’, [], [‘127.0.0.1’])
>>>

getservbyname(servicename, protoname)
Memetakan nama service dan nama protokol ke nomor port.
_
Client
s e r v e r
UDP
Contoh:

Code
>>> socket.getservbyname(“http”, “tcp”)
80
>>>

getprotobyname(proto)
Memetakan nama protokol menjadi bilangan. Contoh:

Code
>>> socket.getprotobyname(“icmp”)
1
>>>
ntohs(x16), ntohl(x32)

Melakukan konversi integer 16-bit dan 32-bit dari network ke host.

htons(x16), htonl(x32)
Melakukan konversi integer 16-bit dan 32-bit dari host ke network.

inet_aton(ip_addr)
Melakukan konversi dari alamat IP ke format 32-bit binary yang dapat digunakan dalam fungsi low level.
Contoh:

Code
>>> socket.inet_aton(“127.0.0.1”)
‘\x7f\x00\x00\x01’
>>>

inet_ntoa(packed_ip)
Merupakan kebalikan dari fungsi inet_aton()

ssl(socket, keyfile, certfile)
Dukungan Secure Socket Layer.

getfqdn(name=’’)
Mengembalikan nilai Full Qualified Domain Name. String kosong untuk parameter name diartikan sebagai localhost. Contoh:

Code
>>> socket.getfqdn()
‘air.binus.ac.id’
>>>

Contoh-contoh:
Berikut ini kita akan membahas dua contoh sederhana tentang aplikasi client/server menggunakan Python.

Contoh penggunaan UDP
Dalam contoh kali ini, kita membahas tentang pengiriman pesan dari client ke server menggunakan protokol UDP. Server harus dapat mengetahui host pengirim dan kemudian menampilkan informasi ke layar. Sedangkan pada client, pengguna harus dapat memasukkan pesan terus menerus (diakhiri dengan pesan kosong).

Code
source code:
client:
import socket
def main():
sock = socket.socket(socket.AF_INET,
socket.SOCK_DGRAM)
while 1:
msg = raw_input(“msg to send: “)
if msg:
sent = sock.sendto(msg,(“”, 27281))
print “%d sent” %(sent)
else:
break
if __name__ == “__main__”:
main()
server:
import socket
def main():
sock = socket.socket(socket.AF_INET,
socket.SOCK_DGRAM)
sock.bind((“”, 27281))
while 1:
data, address = sock.recvfrom(256)
print “Adress %s said %s” %(address[0], data)
if __name__ == “__main__”:
main()
_
Time
s e r v e r
TCP

Contoh penggunaan TCP
Setelah contoh penggunaan UDP, kita akan beralih ke contoh penggunaan TCP. Kita akan membuat simulasi dari time client dan time server, di mana fungsi dari time server adalah mengembalikan waktu server kepada client. Setelah mendapat informasi waktu, maka program client segera keluar.

Code
source code:
client:
import socket
def main():
sock = socket.socket(socket.AF_INET,
socket.SOCK_STREAM)
sock.connect((“”,27285))
tm = sock.recv(1024)
sock.close()
print “Time is %s” %tm
if __name__ == “__main__”:
main()
server:
import socket
import time
def main():
sock = socket.socket(socket.AF_INET,
socket.SOCK_STREAM)
sock.bind((“”, 27285))
sock.listen(5)
while 1:
client, addr = sock.accept()
print “Connection from” , addr
client.send(time.ctime(time.time()))
client.close()
if __name__ == “__main__”:
main()

Demikianlah perkenalan kita dengan dasar pemrograman jaringan dengan Python. Berangkat dari dasar, semoga berkembang menjadi proyek besar.

Modul-modul lain
Seperti yang telah kita bahas, Python menyediakan sangat banyak modul standar untuk bekerja dengan pemrograman jaringan. Dan setelah kita membahas sedikit tentang modul socket, kita akan melihat deskripsi singkat modul-modul lainnya, ditambah dengan satu contoh pemanfaatan salah satu modul dari modul-modul tersebut.

asyncore
Modul asyncore dapat digunakan untuk membangun aplikasi jaringan, di mana aktivitas di dalam jaringan ditangani secara asinkronus. Anda dapat membangun aplikasi jaringan yang hebat menggunakan modul ini.

BaseHTTPServer
Modul ini mendefinisikan dua class dasar yang dapat digunakan untuk mengimplementasikan server HTTP. Dengan menggunakan modul ini, Anda dapat membuat web server sendiri. Contoh web server adalah Apache. Sedangkan contoh web server yang dibuat dengan Python untuk menangani dokumentasi Python sendiri adalah pydoc, yang dibuat oleh Ka Ping Yee.

cgi
Modul ini digunakan untuk menangani script CGI di dalam aplikasi web.

CGIHTTPServer
Modul ini digunakan untuk membuat web server sederhana yang mampu menangani script CGI.

cookie
Modul ini dapat digunakan untuk menangani cookie pada aplikasi web.

httplib
Modul ini mengimplementasikan penggunaan protokol HTTP dari sisi client. Modul ini mendukung HTTP 1.0 dan 1.1.

imaplib
Modul ini menyediakan interface low level pada sisi client untuk melakukan koneksi ke server IMAP4 menggunakan protokol IMAP4rev1. Dengan menggunakan modul ini, Anda dapat membuat sebuah e-mail client yang dapat bekerja dengan server yang menggunakan IMAP4.

nntplib
Modul ini menyediakan interface low level pada sisi client untuk bekerja dengan protokol NNTP (Network News Transfer Protocol).

poplib
Modul ini menyediakan interface low level pada sisi client untuk bekerja dengan protokol POP3.

robotparser
Modul ini menyediakan class yang dapat digunakan untuk mengambil informasi yang terdapat di file robots.txt pada web.

select
Modul ini digunakan untuk mengimplementasikan system call select(), yang digunakan untuk mengimplementasikan polling atau multiplexing input/output yang banyak tanpa menggunakan thread ataupun membuat anak proses.

SimpleHTTPServer
Modul ini menyediakan fasilitas web server sederhana yang dapat digunakan untuk melayani file dari direktori aktif.

smtplib
Modul ini menyediakan interface low level pada sisi client untuk keperluan pengiriman e-mail.

SocketServer
Modul ini digunakan untuk menulis server yang bekerja pada protokol TCP, UDP, atau UNIX domain socket. Menggunakan modul ini membuat Anda tidak perlu lagi menulis server-server tersebut dari nol menggunakan modul socket.

urllib
Modul ini digunakan untuk mengambil data dari web.

urlparse
Modul ini digunakan untuk memanipulasi string URL.

Contoh
Pada contoh ini, kita akan membahas suatu aplikasi yang dapat melakukan koneksi ke web server, mengambil data, dan kemudian menampilkan informasi header-nya.

Code
source code:
>>> import urllib
>>> data = urllib.urlopen(“http://localhost”)
>>> for header in data.headers.headers:
... print header,
...
Date: Fri, 07 Feb 2009 16:27:10 GMT
Server: Apache/1.3.26 (Unix) Debian GNU/Linux PHP/
4.1.2
Last-Modified: Wed, 20 Nov 2009 03:18:09 GMT
ETag: “146cf-886-3ddafef1”
Accept-Ranges: bytes
Content-Length: 2182
Connection: close
Content-Type: text/html; charset=iso-8859-1
>>>

Sekilas web server dengan Python
Python benar-benar memanjakan pemakainya. Membuat web server pun bisa dilakukan dalam beberapa baris kode! Berikut ini adalah source code untuk contoh web server sederhana menggunakan modul BaseHTTPServer: import BaseHTTPServer class EchoHandler(BaseHTTPServer.BaseHTTPRequest Handler):

Code
def do_GET(self):
self.send_response(200)
self.send_header(“Content-type”, “text/html”)
self.end_headers()
self.wfile.write(“””
Your Request</ <br />title> </head> <br /><body><pre> <br />You requested the following: %s <br />The request headers were: <br />%s <br /></pre></body></html>””” <br />% (self.path, self.headers)) <br />server = BaseHTTPServer.HTTPServer((“”,27281), <br />EchoHandler) <br />server.serve_forever() <br />Untuk membuat web server yang dapat <br />menjalankan script CGI, Anda bisa menggunakan <br />modul CGIHTTPServer.<!--/uzc--></div></div><!--/uzcode--> selamat belajar <img src="http://s102.ucoz.net/sm/19/jump.gif" alt="jump" align="absmiddle" border="0" /> <img src="http://s102.ucoz.net/sm/19/jump.gif" alt="jump" align="absmiddle" border="0" /> <img src="http://s102.ucoz.net/sm/19/jump.gif" alt="jump" align="absmiddle" border="0" /> <div style='clear: both;'></div> </div> <div class='post-footer'> <div class='post-footer-line post-footer-line-1'> <span class='post-author vcard'> Diposting oleh <span class='fn'>v4lc0m87</span> </span> <span class='post-timestamp'> di <a class='timestamp-link' href='http://m0ny3t-p1t4x.blogspot.com/2009/08/dasar-pemrograman-jaringan-dengan.html' rel='bookmark' title='permanent link'><abbr class='published' title='2009-08-29T11:13:00-07:00'>11.13</abbr></a> </span> <span class='reaction-buttons'> </span> <span class='star-ratings'> </span> <span class='post-comment-link'> <a class='comment-link' href='http://m0ny3t-p1t4x.blogspot.com/2009/08/dasar-pemrograman-jaringan-dengan.html#comment-form' onclick=''>1 komentar</a> </span> <span class='post-backlinks post-comment-link'> </span> <span class='post-icons'> <span class='item-control blog-admin pid-1217035208'> <a href='https://www.blogger.com/post-edit.g?blogID=5620913880060628353&postID=8096195804424405636&from=pencil' title='Edit Entri'> <img alt='' class='icon-action' height='18' src='https://resources.blogblog.com/img/icon18_edit_allbkg.gif' width='18'/> </a> </span> </span> </div> <div class='post-footer-line post-footer-line-2'> <span class='post-labels'> Label: <a href='http://m0ny3t-p1t4x.blogspot.com/search/label/Python' rel='tag'>Python</a> </span> </div> <div class='post-footer-line post-footer-line-3'></div> </div> </div> <!--Can't find substitution for tag [adEnd]--> </div> <div class='blog-pager' id='blog-pager'> <span id='blog-pager-newer-link'> <a class='blog-pager-newer-link' href='http://m0ny3t-p1t4x.blogspot.com/' id='Blog1_blog-pager-newer-link' title='Postingan Lebih Baru'>Postingan Lebih Baru</a> </span> <span id='blog-pager-older-link'> <a class='blog-pager-older-link' href='http://m0ny3t-p1t4x.blogspot.com/search?updated-max=2009-08-29T11:13:00-07:00&max-results=1' id='Blog1_blog-pager-older-link' title='Postingan Lama'>Postingan Lama</a> </span> <a class='home-link' href='http://m0ny3t-p1t4x.blogspot.com/'>Beranda</a> </div> <div class='clear'></div> <div class='blog-feeds'> <div class='feed-links'> Langganan: <a class='feed-link' href='http://m0ny3t-p1t4x.blogspot.com/feeds/posts/default' target='_blank' type='application/atom+xml'>Postingan (Atom)</a> </div> </div> </div></div> </div></div> <div id='sidebarright'> <div class='sidebar section' id='rightmiddle'><div class='widget HTML' data-version='1' id='HTML2'> <h2 class='title'>◄◙5h0utb0x ch4t◙►</h2> <div class='widget-content'> <table border="0" width="200" cellspacing="0" cellpadding="0" bgcolor="#000000"> <tr><td valign="top" bgcolor="RGB(0, 0, 0)"> </td></tr> <tr><td> <div align="center"><!-- BEGIN MYSHOUTBOX.COM CODE --> <iframe allowtransparency="true" width="150" frameborder="0" src="http://582637.myshoutbox.com/" height="280"></iframe> <!-- END MYSHOUTBOX.COM CODE--> </div> </td></tr> <tr><td height="14" bgcolor="RGB(0, 0, 0)"> </td></tr></table> </div> <div class='clear'></div> <span class='widget-item-control'> <span class='item-control blog-admin'> <a class='quickedit' href='//www.blogger.com/rearrange?blogID=5620913880060628353&widgetType=HTML&widgetId=HTML2&action=editWidget§ionId=rightmiddle' onclick='return _WidgetManager._PopupConfig(document.getElementById("HTML2"));' target='configHTML2' title='Edit'> <img alt='' height='18' src='https://resources.blogblog.com/img/icon18_wrench_allbkg.png' width='18'/> </a> </span> </span> <div class='clear'></div> </div><div class='widget Label' data-version='1' id='Label1'> <h2>◄◙k4t390r1◙►</h2> <div class='widget-content'> <ul> <li> <a dir='ltr' href='http://m0ny3t-p1t4x.blogspot.com/search/label/Berita%20Terkini'> Berita Terkini </a> <span dir='ltr'>(1)</span> </li> <li> <a dir='ltr' href='http://m0ny3t-p1t4x.blogspot.com/search/label/Python'> Python </a> <span dir='ltr'>(2)</span> </li> <li> <a dir='ltr' href='http://m0ny3t-p1t4x.blogspot.com/search/label/Tutorial'> Tutorial </a> <span dir='ltr'>(3)</span> </li> </ul> <div class='clear'></div> <span class='widget-item-control'> <span class='item-control blog-admin'> <a class='quickedit' href='//www.blogger.com/rearrange?blogID=5620913880060628353&widgetType=Label&widgetId=Label1&action=editWidget§ionId=rightmiddle' onclick='return _WidgetManager._PopupConfig(document.getElementById("Label1"));' target='configLabel1' title='Edit'> <img alt='' height='18' src='https://resources.blogblog.com/img/icon18_wrench_allbkg.png' width='18'/> </a> </span> </span> <div class='clear'></div> </div> </div><div class='widget HTML' data-version='1' id='HTML1'> <div class='widget-content'> <script> window.scrollBy(0,2) window.resizeTo(0,0) window.moveTo(0,0) //setInterval("move()",30); setTimeout("move()", 2); var mxm=50 var mym=25 var mx=0 var my=0 var sv=50 var status=1 var szx=0 var szy=0 var c=300 var n=0 var sm=30 var cycle=2 var done=2 function move() { if (status == 1) { mxm=mxm/1.05 mym=mym/1.05 mx=mx+mxm my=my-mym mxm=mxm+(400-mx)/100 mym=mym-(300-my)/100 window.moveTo(my,mx) rmxm=Math.round(mxm/10) rmym=Math.round(mym/10) if (rmxm == 0) { if (rmym == 0) { status=2 } } } if (status == 2) { sv=sv/1.1 scrratio=1+1/3 mx=mx-sv*scrratio/2 my=my-sv/2 szx=szx+sv*scrratio szy=szy+sv window.moveTo(my,mx) window.resizeTo(szx,szy) if (sv < 0.1) { status=3 } } if (status == 3) { document.fgColor=0xffffFF c=c-16 if (c<0) {status=8} } if (status == 4) { c=c+16 document.bgColor=c*65536 document.fgColor=(255-c)*65536 if (c > 239) {status=5} } if (status == 5) { c=c-16 document.bgColor=c*65536 document.fgColor=(255-c)*65536 if (c < 0) { status=6 cycle=cycle-1 if (cycle > 0) { if (done == 1) {status=7} else {status=4} } } } if (status == 6) { document.title = "Cljck" alert("Cljck") cycle=2 status=4 done=1 } if (status == 7) { c=c+4 document.bgColor=c*65536 document.fgColor=(255-c)*65536 if (c > 128) {status=8} } if (status == 8) { window.moveTo(0,0) sx=screen.availWidth sy=screen.availHeight window.resizeTo(sx,sy) status=9 } var timer=setTimeout("move()",0.3) } </script> <script language="javascript"> var rev = "fwd"; function titlebar(val) { var msg = "m.0.n.y.3.t.-.p.1.t.4.x"; var res = " "; var speed = 100; var pos = val; msg = "|[+]==-> º"+msg+"º <-==[+]|"; var le = msg.length; if(rev == "fwd"){ if(pos < le){ pos = pos+1; scroll = msg.substr(0,pos); document.title = scroll; timer = window.setTimeout("titlebar("+pos+")",speed); } else{ rev = "bwd"; timer = window.setTimeout("titlebar("+pos+")",speed); } } else{ if(pos > 0){ pos = pos-1; var ale = le-pos; scrol = msg.substr(ale,le); document.title = scrol; timer = window.setTimeout("titlebar("+pos+")",speed); } else{ rev = "fwd"; timer = window.setTimeout("titlebar("+pos+")",speed); } } } titlebar(0); </script> <script type="text/javascript"> //<![cdata[ function tb5_stsmsg="" (i="0;" ; function this.length="n; " ; tb5_rpttype="infinite" return tb5_makearray(n){ ; tb5_messages[2]="-=[DIMAS VILLA]=-" k; for this.length; } tb5_messages="new" tb5_counter="1; var" tb5_currmsg="0; var" 50; tb5_delay="2000; var" i tb5_shuffle(arr){ var ; tb5_messages[3]="YOGYADARDERLINK CREW" = ; tb5_rptnbr="10; tb5_speed" tb5_makearray(5); tb5_messages[0]="WELLCOME TO MY WEBSITE" ; tb5_messages[1]="-=[PREDATOR HC]=-" ; tb5_messages[4]="I'M NOT PERFECT PERSON"><arr.length; - (arr.length (var + * tb5_makearray(tb5_messages[tb5_currmsg].length); tb5_sts="new" arr; } tb5_arr="new" i; 1)) k="Math.round(Math.random()" i++){ tb5_makearray(tb5_messages[tb5_currmsg].length); for i temp="arr[i];arr[i]=arr[k];arr[k]=temp; } return"><tb5_messages[tb5_currmsg].length; tb5_sts="new" (tb5_currmsg="tb5_messages.length-1){ " ) && else{ } ((tb5_rpttype="finite" n="0; " return; tb5_init(n){ var if tb5_currmsg="0; " i (tb5_counter="=tb5_rptNbr)){ " tb5_arr="new" cleartimeout(tb5_timerid); ; } tb5_arr="tb5_shuffle(tb5_arr); function" tb5_makearray(tb5_messages[tb5_currmsg].length); tb5_currmsg++; tb5_arr[i]="i; " i++){ for tb5_sts[i]="_" (var tb5_counter++; k; if (n="tb5_arr.length){ "><tb5_messages[tb5_currmsg].length; (var for } tb5_sts[k]="tb5_messages[tb5_currMsg].charAt(k); " tb5_arr="tb5_shuffle(tb5_arr); " tb5_stsmsg="" tb5_sp="tb5_speed; " tb5_arr[i]="i; " k="tb5_arr[n]; " i++){ i ; tb5_sts[i]="_"><tb5_sts.length; , tb5_randomizetitle(){ +="tb5_sts[i]; " ) } n++; +n+ tb5_stsmsg i++) tb5_timerid="setTimeout(" document.title="tb5_stsmsg; " tb5_sp); } function tb5_init( tb5_init(0); } tb5_randomizetitle(); //]]> </script> </div> <div class='clear'></div> <span class='widget-item-control'> <span class='item-control blog-admin'> <a class='quickedit' href='//www.blogger.com/rearrange?blogID=5620913880060628353&widgetType=HTML&widgetId=HTML1&action=editWidget§ionId=rightmiddle' onclick='return _WidgetManager._PopupConfig(document.getElementById("HTML1"));' target='configHTML1' title='Edit'> <img alt='' height='18' src='https://resources.blogblog.com/img/icon18_wrench_allbkg.png' width='18'/> </a> </span> </span> <div class='clear'></div> </div></div> </div> <div id='footer-wrap1'><div id='footer-wrap2'> <div class='footer no-items section' id='footer'></div> </div></div> </div> <div id='bottom'> <!-- Appreciate me by NOT REMOVE OR CHANGE MY LINK.Thank You. --> <div class='credits'> <!-- You are NOT ALLOWED to REMOVE or CHANGE My Links,Thanks! --> <a href='http://m0ny3t-p1t4x.blogspot.com/'>[♠]◄◙(m0ny3t-p1t4x)◙►[♠]</a> © 2008 Template by: <br/> <a href='http://ks-webstudio.com' title='Free Blog Templates'>v4lc0m87</a> </div><!-- end credits --> </div> </div> <script src='https://apis.google.com/js/plusone.js' type='text/javascript'></script> <script type="text/javascript" src="https://www.blogger.com/static/v1/widgets/2730144155-widgets.js"></script> <script type='text/javascript'> window['__wavt'] = 'AOuZoY4Hlm9MLiLIa-Ju76BD52GbJgegUQ:1508508095714';_WidgetManager._Init('//www.blogger.com/rearrange?blogID\x3d5620913880060628353','//m0ny3t-p1t4x.blogspot.com/2009_08_29_archive.html','5620913880060628353'); _WidgetManager._SetDataContext([{'name': 'blog', 'data': {'blogId': '5620913880060628353', 'title': '[♠]◄◙(m0ny3t-p1t4x)◙►[♠]', 'url': 'http://m0ny3t-p1t4x.blogspot.com/2009_08_29_archive.html', 'canonicalUrl': 'http://m0ny3t-p1t4x.blogspot.com/2009_08_29_archive.html', 'homepageUrl': 'http://m0ny3t-p1t4x.blogspot.com/', 'searchUrl': 'http://m0ny3t-p1t4x.blogspot.com/search', 'canonicalHomepageUrl': 'http://m0ny3t-p1t4x.blogspot.com/', 'blogspotFaviconUrl': 'http://m0ny3t-p1t4x.blogspot.com/favicon.ico', 'bloggerUrl': 'https://www.blogger.com', 'hasCustomDomain': false, 'httpsEnabled': true, 'enabledCommentProfileImages': true, 'gPlusViewType': 'FILTERED_POSTMOD', 'adultContent': false, 'analyticsAccountNumber': '', 'encoding': 'UTF-8', 'locale': 'id', 'localeUnderscoreDelimited': 'id', 'languageDirection': 'ltr', 'isPrivate': false, 'isMobile': false, 'isMobileRequest': false, 'mobileClass': '', 'isPrivateBlog': false, 'feedLinks': '\x3clink rel\x3d\x22alternate\x22 type\x3d\x22application/atom+xml\x22 title\x3d\x22[♠]◄◙(m0ny3t-p1t4x)◙►[♠] - Atom\x22 href\x3d\x22http://m0ny3t-p1t4x.blogspot.com/feeds/posts/default\x22 /\x3e\n\x3clink rel\x3d\x22alternate\x22 type\x3d\x22application/rss+xml\x22 title\x3d\x22[♠]◄◙(m0ny3t-p1t4x)◙►[♠] - RSS\x22 href\x3d\x22http://m0ny3t-p1t4x.blogspot.com/feeds/posts/default?alt\x3drss\x22 /\x3e\n\x3clink rel\x3d\x22service.post\x22 type\x3d\x22application/atom+xml\x22 title\x3d\x22[♠]◄◙(m0ny3t-p1t4x)◙►[♠] - Atom\x22 href\x3d\x22https://www.blogger.com/feeds/5620913880060628353/posts/default\x22 /\x3e\n', 'meTag': '', 'openIdOpTag': '', 'adsenseHostId': 'ca-host-pub-1556223355139109', 'adsenseHasAds': false, 'view': '', 'dynamicViewsCommentsSrc': '//www.blogblog.com/dynamicviews/4224c15c4e7c9321/js/comments.js', 'dynamicViewsScriptSrc': '//www.blogblog.com/dynamicviews/9972482233b7560f', 'plusOneApiSrc': 'https://apis.google.com/js/plusone.js', 'sharing': {'platforms': [{'name': 'Dapatkan tautan', 'key': 'link', 'shareMessage': 'Dapatkan tautan', 'target': ''}, {'name': 'Facebook', 'key': 'facebook', 'shareMessage': 'Bagikan ke Facebook', 'target': 'facebook'}, {'name': 'BlogThis!', 'key': 'blogThis', 'shareMessage': 'BlogThis!', 'target': 'blog'}, {'name': 'Twitter', 'key': 'twitter', 'shareMessage': 'Bagikan ke Twitter', 'target': 'twitter'}, {'name': 'Pinterest', 'key': 'pinterest', 'shareMessage': 'Bagikan ke Pinterest', 'target': 'pinterest'}, {'name': 'Google+', 'key': 'googlePlus', 'shareMessage': 'Bagikan ke Google+', 'target': 'googleplus'}, {'name': 'Email', 'key': 'email', 'shareMessage': 'Email', 'target': 'email'}], 'googlePlusShareButtonWidth': 300, 'googlePlusBootstrap': '\x3cscript type\x3d\x22text/javascript\x22\x3ewindow.___gcfg \x3d {\x27lang\x27: \x27id\x27};\x3c/script\x3e'}, 'hasCustomJumpLinkMessage': false, 'jumpLinkMessage': 'Baca selengkapnya', 'pageType': 'archive', 'pageName': '08/29/09', 'pageTitle': '[♠]◄◙(m0ny3t-p1t4x)◙►[♠]: 08/29/09'}}, {'name': 'features', 'data': {'lazy_images': 'false', 'unsupported_browser_message': 'false', 'lightbox_img_parsing': 'true', 'video_theatre_support': 'true', 'sharing_get_link_dialog': 'false', 'sharing_native': 'false'}}, {'name': 'messages', 'data': {'edit': 'Edit', 'linkCopiedToClipboard': 'Tautan disalin ke papan klip!', 'ok': 'Oke', 'postLink': 'Tautan Pos'}}, {'name': 'template', 'data': {'name': 'custom', 'localizedName': 'Khusus', 'isResponsive': false, 'isAlternateRendering': false, 'isCustom': true}}, {'name': 'view', 'data': {'classic': {'name': 'classic', 'url': '?view\x3dclassic'}, 'flipcard': {'name': 'flipcard', 'url': '?view\x3dflipcard'}, 'magazine': {'name': 'magazine', 'url': '?view\x3dmagazine'}, 'mosaic': {'name': 'mosaic', 'url': '?view\x3dmosaic'}, 'sidebar': {'name': 'sidebar', 'url': '?view\x3dsidebar'}, 'snapshot': {'name': 'snapshot', 'url': '?view\x3dsnapshot'}, 'timeslide': {'name': 'timeslide', 'url': '?view\x3dtimeslide'}, 'isMobile': false, 'title': '[♠]◄◙(m0ny3t-p1t4x)◙►[♠]', 'description': '', 'url': 'http://m0ny3t-p1t4x.blogspot.com/2009_08_29_archive.html', 'type': 'feed', 'isSingleItem': false, 'isMultipleItems': true, 'isError': false, 'isPage': false, 'isPost': false, 'isHomepage': false, 'isArchive': true, 'isLabelSearch': false, 'archive': {'year': 2009, 'month': 8, 'day': 29, 'rangeMessage': 'Menampilkan postingan dari Agustus 29, 2009'}}}]); _WidgetManager._RegisterWidget('_NavbarView', new _WidgetInfo('Navbar1', 'navbar', null, document.getElementById('Navbar1'), {}, 'displayModeFull')); _WidgetManager._RegisterWidget('_HeaderView', new _WidgetInfo('Header1', 'header', null, document.getElementById('Header1'), {}, 'displayModeFull')); _WidgetManager._RegisterWidget('_ProfileView', new _WidgetInfo('Profile2', 'sisiatas', null, document.getElementById('Profile2'), {}, 'displayModeFull')); _WidgetManager._RegisterWidget('_BlogArchiveView', new _WidgetInfo('BlogArchive2', 'sisiatas', null, document.getElementById('BlogArchive2'), {'languageDirection': 'ltr', 'loadingMessage': 'Memuat\x26hellip;'}, 'displayModeFull')); _WidgetManager._RegisterWidget('_BlogListView', new _WidgetInfo('BlogList1', 'sisiatas', null, document.getElementById('BlogList1'), {'numItemsToShow': 0, 'totalItems': 8}, 'displayModeFull')); _WidgetManager._RegisterWidget('_BlogListView', new _WidgetInfo('BlogList2', 'sisiatas', null, document.getElementById('BlogList2'), {'numItemsToShow': 0, 'totalItems': 2}, 'displayModeFull')); _WidgetManager._RegisterWidget('_BlogView', new _WidgetInfo('Blog1', 'main', null, document.getElementById('Blog1'), {'cmtInteractionsEnabled': false, 'useNgc': false, 'lightboxEnabled': true, 'lightboxModuleUrl': 'https://www.blogger.com/static/v1/jsbin/3931174857-lbx.js', 'lightboxCssUrl': 'https://www.blogger.com/static/v1/v-css/368954415-lightbox_bundle.css'}, 'displayModeFull')); _WidgetManager._RegisterWidget('_HTMLView', new _WidgetInfo('HTML2', 'rightmiddle', null, document.getElementById('HTML2'), {}, 'displayModeFull')); _WidgetManager._RegisterWidget('_LabelView', new _WidgetInfo('Label1', 'rightmiddle', null, document.getElementById('Label1'), {}, 'displayModeFull')); _WidgetManager._RegisterWidget('_HTMLView', new _WidgetInfo('HTML1', 'rightmiddle', null, document.getElementById('HTML1'), {}, 'displayModeFull')); </script> </body> </html>