Selasa, 19 Juni 2007

belajar lagi tentang smarty bagian ka 3 (tilu)


Sekarang kita akan mencoba mendalami Smarty lebih jauh, yaitu dng membuat aplikasi guestbook Konsepnya adalah sebuah guestbook sederhana dng pilihan tampilan 2 bahasa. Proyek yg dbuat ini akan terdiri dari 4 bagian, yaitu:
1. Main (guestbook.php) –> script utama, berisi parsing ke template dan proses2 database. Letakkan di direktori utama (mis: path-to-web-server\guestbook)
2. Konfigurasi –> file konfigurasi. Letakkan di subdir configs (mis: path-to-web-server\guestbook\configs)
2.a. Indonesia.conf –> berisi konfigurasi untuk mode bahasa Indonesia
2.b. Inggris.conf –> berisi konfigurasi untuk mode bahasa Inggris
3. Template (guestbook.tpl) –> file template, berisi template tampilan. Letakkan di subdir templates (mis: path-to-web-server\guestbook\templates)
4. Style sheet (style.css) –> CSS file, untuk pendukung tampilan. Letakkan di direktori utama (mis: path-to-web-server\guestbook)

Entah kenapa, Smarty memberikan pesan error saat menggunakan metode

untuk memasukkan kode CSS. Sedangkan pada penggunaan inline style (tag style) dan embedded style (link rel) tidak ada masalah.

Berikut source code-nya:
1. guestbook.php

[php]< ?php require 'libs/Smarty.class.php'; $smarty = new Smarty; $smarty->assign(”content”,”Smarty says, “Hello World”");
$smarty->display(’guestbook.tpl’);
?>[/php]

2. a. Indonesia.conf

[code]# Konfigurasi untuk bhs Indonesia
pageTitle = “Demo Pembuatan Buku Tamu menggunakan Smarty”
textTitle = “Buku Tamu dengan Smarty”
textDesc = “Demo ini menunjukkan penggunaan pustaka Smarty. Dengan Smarty. kita dapat memisahkan bagian logika dengan bagian presentasi dari aplikasi kita. Selain itu kita juga dapat memisahkan konfigurasi dari aplikasi tersebut. Hasilnya adalah manajemen proyek yg lebih baik efektif dan efisien.”
formTextName = “Nama”
formTextEmail = “Email”
formTextComment = “Komentar”
formTextSubmit = “Isi Buku Tamu”
formTextDiv = “:”[/code]

2. b. Inggris.conf

[code]# Konfigurasi untuk bhs Inggris
pageTitle = “Guestbook Demo Using Smarty”
textTitle = “Guestbook with Smarty”
textDesc = “This demo shows how Smarty library works. With Smarty, you can easily split your application coding/logic, design/layout, and configuration, thus make project management much more easier.”
formTextName = “Name”
formTextEmail = “Email”
formTextComment = “Comment”
formTextSubmit = “Submit”
formTextDiv = “:”[/code]

3. guestbook.tpl

[html]{config_load file=”inggris.conf”}





{#textTitle#}
{#textDesc#}
{#formTextName#}
{#formTextDiv#}


{#formTextEmail#}
{#formTextDiv#}


{#formTextComment#}
{#formTextDiv#}


{$content}

[/html]

4. style.css

[css]body {
background-color: #f4f4f4;
color: #000;
margin: 0px;
}

#main {
width:90%;
background-color:#ffffff;
float:left;
border-right:2px dashed #333333;
border-bottom:2px dashed #333333;
padding-bottom:40px;
}

#main #textTitle {
text-align: center;
margin-top:10px;
margin-bottom:10px;
font-weight:bolder;
font-size:1.5em;
}

#main #textDesc {
font-size:0.8em;
padding:5px;
margin-left:10%;
margin-right:10%;
margin-bottom:20px;
text-align:center;
border:2px solid #cccccc;
background-color:#e9e9e9;
-moz-border-radius:7px;
}

#main #formPost {
float:left;
margin-left:5%;
margin-right:5%;
padding:10px;
border:1px solid #999999;
width:250px;
background-color:#f9f9f9;
}

#main #formPost #tableRow {
border-bottom:1px solid #cccccc;
padding-bottom:5px;
margin-bottom:5px;
}

#main #formPost #tableCol1 {
float:left;
margin-left:10px;
width:60px;
}

#main #formPost #tableCol2 {
float:left;
margin-left:10px;
width:10px;
text-align:center;
}

#main #formPost #tableCol3 {
float:left;
margin-left:10px;
width:80px;
}

input,textarea {
background-color:#f3f3cc;
border:1px solid #333333;
}

#main #content {
float: left;
font-size: 0.9em;
}[/css]

Sekarang coba kita jalankan (http://localhost/guestbook/guestbook.php). Contoh hasilnya dapat dilihat di screenshot di bawah. Cobalah untuk mengganti “inggris.conf” dengan “indonesia.conf” pada baris pertama dari index.tpl dan lihat hasilnya. Secara otomatis buku tamu Anda akan berganti bahasa.

belajar lagi smarty bagian 2

Bagian II
Download Smarty
Di: http://smarty.php.net/
Selain paket Smarty, jangan lupa download file dokumentasinya, supaya lebih gampang buat belajar

Instalasi Smarty
Ekstrak ke dalam root direktori web server Anda atau ke dalam direktori yg ada pada setting include_path pada php.ini. Punyaku kutaruh di dalam direktori PHP (c:\php\smarty)
Jika tidak diletakkan dalam root direktori web server dan setting PHP belum diubah, buka file php.ini (dlm direktori windows (IIS) atau dlm direktori php (Apache), tergantung web servernya). Cari setting “include_path=”. Punyaku ada di bagian Path and Directories, dan scr default di-non-aktif-kan. Jika belum aktif, aktifkan dulu dng menghilangkan tanda ‘;’, selanjutnya tambahkan path tempat Anda menginstall Smarty. Punyaku adalah:
[php]include_path = “.;c:\php\includes;c:\php\pear;c:\php\smarty”[/php]

Simpan dan selesai

Testing Smarty
Sbg percobaan awal, kita akan mencoba contoh program pada bagian I. Sebelumnya, perlu diketahui bahwa untuk menggunakan Smarty, kita harus membuat 3 buah sub-direktori, yaitu: configs, templates, dan templates_c. Contoh, jika root direktori web server kita adalah c:\web dan kita membuat contoh Smarty ini pada subdir test, maka struktur direktorinya adalah:

[code]c:\
web\
test\
configs\
templates\
templates_c\[/code]

Direktori configs digunakan untuk menyimpan file2 konfigurasi, sedangkan direktori templates, spt namanya, digunakan untuk menyimpan file template. Direktori templates_c sendiri digunakan oleh Smarty untuk menyimpan file templates yg sudah dikompilasi (diparsing).

Kalo pk linux/unix, jgn lupa untuk set permission untuk direktori templates_c supaya writable (chmod 666 maybe).
Skr, copy source index.php di atas, simpan dan letakkan pada direktori test. Selanjutnya, copy source index.tpl di atas, simpan dan letakkan pada direktori templates. Buka browser dan akses file index.php (http://localhos/test/index.php). Jika lancar, akan muncul tulisan “Smarty says, …“.

Bagian selanjutnya akan membahas mengenai contoh implementasi Smarty yg lebih detil.

Ngulik smarty template engine bagian 1 neh

Bagian I
Pendahuluan
Smarty adalah pustaka untuk PHP yg digunakan sebagai template engine pada pembuatan aplikasi-aplikasi PHP. Dengan menggunakan Smarty, kita dapat memisahkan pembuatan design dan coding dengan mudah. Seperti yg disebutkan pada dokumentasi Smarty sbb:

One design goal of Smarty is the separation of business logic and presentation logic. This means templates can certainly contain logic under the condition that it is for presentation only. Things such as including other templates, altering table row colors, upper-casing a variable, looping over an array of data and displaying it, etc. are all examples of presentation logic. This does not mean that Smarty forces a separation of business and presentation logic. Smarty has no knowledge of which is which, so placing business logic in the template is your own doing. Also, if you desire no logic in your templates you certainly can do so by boiling the content down to text and variables only.

Lalu apa guna Smarty? Spt disebutkan di atas, tujuan Smarty adalah memisahkan business logic (coding part) dengan presentation logic (design part). Artinya, dalam suatu proyek aplikasi yg dikerjakan scr kelompok, bagian desainer dan programmer dapat bekerja secara bersamaan, krn bagian mereka masing2 sudah dipisahkan dengan penggunaan Smarty. Untuk yg biasa ber-solo-karir atau bekerja sendiri pun, dengan adanya bantuan Smarty akan memudahkan proses manajemen proyek aplikasi yg dibuat.

Salah satu keunggulan utama Smarty yg scr pribadi paling dirasakan adalah fitur file konfigurasi untuk template. Sebuah file konfigurasi dapat digunakan oleh lebih dari satu template. Hal ini berguna untuk meletakkan hal-hal yang bersifat generik. Selain itu, dng sedikit kreativitas, file konfigurasi dapat dimanfaatkan sbg sarana personalisasi situs. Sebagai contoh, untuk membuat situs dng 2 bahasa, Indonesia dan Inggris, kita cukup mempersiapkan 2 file konfigurasi, satu untuk bahasa Indonesia dan satunya lagi bahasa Inggris. Ini akan dijelaskan lebih lanjut pada contoh implementasi.

Untuk daftar fitur Smarty, berikut di antaranya spt dikutip dari dokumentasi Smarty:

Some of Smarty’s features:
- It is extremely fast.
- It is efficient since the PHP parser does the dirty work.
- No template parsing overhead, only compiles once.
- It is smart about recompiling only the template files that have changed.
- You can make custom functions and custom variable modifiers, so the template language is extremely extensible.
- Configurable template delimiter tag syntax, so you can use {}, {{}}, , etc.
- The if/elseif/else/endif constructs are passed to the PHP parser, so the {if …} expression syntax can be as simple or as complex as you like.
- Unlimited nesting of sections, ifs, etc. allowed.
- It is possible to embed PHP code right in your template files, although this may not be needed (nor recommended) since the engine is so customizable.
- Built-in caching support
- Arbitrary template sources
- Custom cache handling functions
- Plugin architecture

Cara kerja Smarty sendiri tidak jauh berbeda dgn engine2 template yg lain. Intinya adalah melakukan parsing ke dalam template yg telah ditentukan. Untuk parsing, kita menggunakan sebuah file PHP yg didalamnya berisi proses business logic dan proses parsing itu sendiri. Berikut ini contohnya:

[php]< ?php //nama file: index.php require 'libs/Smarty.class.php'; $smarty = new Smarty; $smarty->assign(”content”,”Smarty says, “Hello World”");
$smarty->display(’index.tpl’);
?>[/php]

Sedangkan untuk contoh file template sbb:

[html]


{$content}

[/html]

Jika index.php di atas dieksekusi, maka akan menghasilkan kode HTML sbb:

[html]


Smarty says, “Hello World”

[/html]

Cukup gampang kan? {$nama_variabel} sendiri hanyalah salah satu dari atribut yg didukung oleh Smarty. Ada {#nama_variabel#} untuk mengakses variabel dari file konfigurasi, atribut “|” untuk pemanggilan function, dan lain sebagainya. Smarty juga memberikan kemudahan dalam pembuatan form dan tabel. Misal fungsi html_select_date untuk membuat (komponen) form pemilihan tanggal scr otomatis, html_select_time untuk memilih jam/waktu, html_options untuk membuat pilihan option scr otomatis, dll.

belajar oop php euy

Orang bilang ga ada kata terlambat untuk belajar, dan pisau yang tumpul apabila diasah terus-menerus maka akan jadi tajam juga. Dengan bermodalkan dua hal itu saya membulatkan tekad untuk belajar OOP, belajar dari dasar... terseok-seok, karena otak sudah terlanjur akrab dengan pemrograman prosedural.

Berikut istilah-istilah yang biasa digunakan dalam OOP, sedikit saya rangkum sebagai langkah awal dalam memahami OOP.
Warning : pengertian berikut dirangkum dengan pemahaman saya yang masih sangat awam akan konsep OOP

Object :
Kumpulan Variabel dan Fungsi yang saling berkaitan
Class :
Adalah blueprint atau rancangan dari object. Jadi dari satu class bisa dibuat banyak object . Object adalah instance dari class.
Contoh : class = sepeda
Object = sepedaGunung, sepedaTandem
Polymorphism :
Berarti suatu benda seakan-akan mempunyai banyak bentuk. Dua objek atau lebih dikatakan polymorphic bila objek-objek itu mempunyai antar muka yang identik namun mempunyai perilaku yang berbeda. Muncul karena interaksi konsep inheritance dan dynamic binding.
Contoh : method sayHello() pada class dog, class cat atau class dog akan menghasilkan keluaran yang berbeda. dog = "guk..guk.." sedangkan cat = "miau..miau.."Jadi class yang berbeda dapat menjawab sebuah pesan yang sama, namun sesuai dengan kemampuan class tersebut.
Inheritance :
adalah pewarisan sifat, sebuah subclass akan mewarisi sifat dari superclass-nya. Subclass dapat melakukan override terhadap sifat dan kemampuan warisan superclass-nya.
enkapsulasi :
Memastikan pengguna sebuah object tidak dapat mengganti keadaan dalam diri sebuah object dengan cara yang tidak layak, hanya method dalam object tersebut yang dapat diberi ijin untuk mengakses keadaannya.

Lanjut ya.... Materi berikut ini merupakan hasil terjemahan dari artikel "An Introduction to OOP in PHP" . Artikel asli dapat langsung dilihat disini

Yang Keren Dari OOP

Mari mulai dari awal dan pelajari konsep dasar. Awalnya, seorang developer PHP menuliskan coding mereka dalam bahasa prosedural. Pada koding semacam ini, Satu hal terjadi setelah hal lainnya dan hal paling menarik yang dapat terjadi adalah penyertaan file lain. Function tersebar disana-sini, dan kumpulan library dari function tersebut dapat membantu memindahkan sesuatu dengan lebih cepat. Ada keterbatasan pada jenis pemrograman seperti ini. Koding dengan cara prosedural cenderung 'merepotkan' bila bekerja dengan 'large site'. Memindahkan sesuatu dengan bantuan include files dapat membantu, tapi bukan penyelesaian dari masalah.

OOP dapat membantu mengatasi semua kerepotan tersebut. Mari kita bicarakan tentang pengertian dari 'object' yang dimaksud dalam OOP. Object adalah kumpulan tipe variabel dalam PHP yang dapat melakukan banyak hal-hal menyenangkan Mereka (object) dapat dilewatkan from place to place sambil maintenace semua properti dan method yang mereka miliki di dalam diri mereka. Jika ini masih belum masuk akal buat anda, bertahan saja, saya akan membantu. Langkah pertama adalah mengetahui cara menciptakan sebuah objek milik anda sendiri!


Object Kesayangan Kita

Object hanyalah type variabel (seperti yang sudah dijelaskan diatas) dengan feature istimewa yang menyertainya. Untuk membuat sebuah object, anda membutuhkan sesuatu yang disebut class. Pikirkanlah class sebagai suatu framework dibelakang sebuah object yang mendefinisikan kegunaan serta variabel-variabel yang disimpan didalamnya. Berikut contohnya:

class myClass {
function myClass(){
}
}
?>

Pada contoh diatas, "myClass" merupakan nama dari class, dan kata 'class' adalah kata kunci yang akan dicari oleh PHP untuk mengetahui apa yang anda lakukan. Didalam pendefinisian class tersebut terdapat fungsi dengan nama "myClass". Saya tidak bermaksud membuat anda bingung, ada alasan mengapa fungsi tersebut diberi nama yang sama dengan class yang menampungnya. Fungsi tersebut merupakan fungsi khusus yang disebut constructor. Hal ini seperti membuat pondasi dan membangun dinding dari sebuah bangunan baru, fungsi 'myClass' dijalankan ketika objek pertama kali diciptakan.

Ah~! sekarang kita sampai pada bagian yang menyenangkan! Object Creation!

Jadi, sekarang kita telah mempunyai sebuah contoh class yang siap untuk digunakan. Tapi untuk dapat mengambil sesuatu didalamnya, kita perlu membuat sebuah object yang mewakilinya. Berikut contohnya :

$mine=new myClass();
?>

Variabel $mine adalah sebuah object yang baru diciptakan. Jika anda melakukan perintah print_r() pada object tersebut anda akan melihat keistimewaannya. Untuk memberitahu PHP bahwa kita ingin menjadikannya sebuah object, kita gunakan kata kunci 'new' diikuti nama class. Contoh diatas BELUM benar-benar melakukan sesuatu, tapi hal itu akan berubah setelah kita berkenalan dengan properties.

Meletakkan Properties
Seperti hal lainnya yang berkaitan dengan class, property sebenernya adalah sesuatu yang telah anda tahu sebelumnya. Property hanyalah sebuah variabel dalam penyamaran. Mengapa mereka berbeda? Didalam sebuah class anda dapat mempunyai variabel, tapi ada variabel yang berasal dari pemanggilan dari level yang lebih tinggi. Variabel ini dapat diakses dari dalam maupun dari luar kelas dan merupakan variabel global didalam sebuah object. Berikut contohnya:

class myClass {
var $my_var = 'testing';
function myClass(){
}
}
$mine=new myClass();
echo $mine->my_var;
?>

Pada contoh diatas, kita menggunakan struktur class seperti pada contoh sebelumnya, tapi kita tambahkan sesuatu yang sedikit berbeda. Variabel '$my_var' yang didefinisikan pada bagian atas menyimpan sebuah nilai yang dapat kita ambil kemudian. Setelah kita membuat sebuah object, ada sebuah operator baru yang diperkenalkan, yaitu '->'. Basically, ini memberitahukan PHP bahwa variabel yang anda referensikan adalah bagian dari object 'mine'. PHP secara otomatis akan menarik current value dari object tersebut dan menampilkannya. dan hal ini tidal hanya sebatas variabel saja, anda juga dapat menggunakan tanda panah ini (->) untuk memanggil method (fungsi didalam class), sebagai contoh :

class myClass {
function myClass(){
}
function echoMe(){
echo 'me';
}
}
$mine=new myClass();
$mine->echoMe();
?>
Apabila script tersebut dijalankan maka akan menghasilkan tulisan "me" pada halaman browser, sederhana bukan??

Langkah Selanjutnya
Sekarang kita akan mengaplikasikan pengetahuan yang sudah kita punya untuk membuat sesuatu yang berguna - misalnya saja sebuah contoh grafik sederhana. Pada contoh berikut kita akan membuat sebuah kotak pada halaman browser (dengan menggunakan tag DIV) dan dengan bantuan PHP serta CSS, akan dilakukan beberapa perubahan terhadapnya. Berikut contohnya:

class myHappyBox {
var $box_height = 100;
var $box_width = 100;
var $box_color = '#EC0000';
function myHappyBox(){
}
function setHeight($value){
$this->box_height=$value;
}
function setWidth($value){
$this->box_width=$value;
}
function setColor($value){
$this->box_color=$value;
}
function displayBox(){
echo sprintf('

',$this->box_height,$this->box_width,$this->box_color);
}
}
$box=new myHappyBox();
$box->displayBox();
?>

Ada beberapa hal baru yang harus diperhatikan disini. Kita sudah tahu bahwa kita akan membuat sebuah gambar kotak dengan menggunakan class ini, dan kita tahu bahwa kotak mempunyai poperty tertentu - yaitu panjang, lebar dan warna. Pada contoh class diatas dapat dilihat ketiga property tersebut mempunyai default value (nilai yang telah ditentukan). Dengan menyimpan default value, anda dapat langsung memanggil displayBox() dan akan menghasilkan kotak berukuran 100x100 pixel berwarna merah tanpa perlu lagi mengeset panjang, lebar dan warna kotak tersebut. Tapi bagaimana jika kita ingin mengubah salah satu nilai dari property tersebut? Untuk itulah dibuat fungsi-fungsi lainnya selain displayBox().

Ada tiga buah fungsi didalam class myHappyBox. Yaitu fungsi untuk menentukan panjang, mamentukan lebar dan menentukan warna, dan ketiga fungsi tersebut bekerja dengan dasar yang sama. Masing-masing dari mereka mengambil nilai dan mengeset property global pada nilai tersebut. jadi, apabila kita ingin mengubah ukuran dari kotak tersebut, hal yang harus dilakukan adalah sebagai berikut:

$box=new myHappyBox();
$box->setHeight(30);
$box->setWidth(300);
$box->displayBox();
?>

Koding diatas akan merubah kotak default dan akan ditampilkan kotak baru dengan lebar yang jauh lebih besar dari pada panjangnya. Perubahan serupa dapat juga dilakukan dengan method setColor() yang akan merubah warna dari kotak, dengan isian nilai pada method setColor() adalah berupa HTML color (Hex).

BUNGKUS !!!!
Jadi, inilah dasar OOP - bukan sesuatu yang menakutkan ataupun perlu dihindari. Malahan OOP bisa jadi suatu hal TERBAIK yang dapat terjadi antara anda dan coding yang anda tulis. Tentu saja menulis ulang aplikasi yang sedang anda buat dengan gaya OOP bisa menjadi sesuatu yang merepotkan, tapi akan selalu ada proyek selanjutnya yang dapat dipertimbangkan. Dan ingat, Ada banyak hal lain yang harus dipelajari selain object, class, method, maupun property seperti yang telah dijelaskan diatas. Anda dapat langsung mengacu ke website PHP.net dan lihat langsung 'their great resources' pada topik OOP. Disitu akan terdapat jawaban atas pertanyaan-pertanyaan yang mungkin sekarang muncul dalam benak anda setelah anda menyelesaikan tutorial ini.










my photos


persib kalah di copa indonesia

Bandung - Persijap Jepara maju ke babak 16 besar Copa Indonesia, setelah menyingkirkan tuan rumah Persib Bandung lewat pertandingan dramatis yang diakhiri adu penalti.

Dengan hasil tanpa gol di leg pertama pekan lalu, Persib awalnya lebih diunggulkan. Namun tim asuhan Yudi Suryata membalikkan prediksi. Persijap memaksa bermain 0-0 hingga akhir pertandingan dan babak tambahan, serta menang 4-3 dalam drama adu penalti.

Menjamu Persijap di stadion Siliwangi, Selasa (19/6/2007), Persib tampil lebih mendominasi. Namun serangan yang dibangun, gagal menghasilkan gol karena kurang tenangnya lini depan. Selain itu kiper Persijap Fance Haryanto juga bermain cukup gemilang mengamankan gawangnya.

Di babak kedua Persib masih tetap lebih banyak menguasai permainan. Dicky Firasat yang menjadi andalan Maung Bandung, dua kali melepaskan tendangan keras ke gawang lawan. Namun usaha pertamanya di menit ke-50 masih bisa ditahan Fance, sementara yang kedua pada menit ke-60 melebar di sisi kiri gawang.

Persijap bukannya tanpa peluang. Sesekali serangan balik yang dilakukan bisa mendekati kotak penalti Persib. Namun kesempatan tersebut terbuang karena hanya mengandalkan tendangan jarak jauh.

Tidak ada gol yang tercipta hingga menjelang sepuluh menit terakhir, membuat pertandingan meningkat lebih keras. Namun wasit bertindak cukup tegas terhadap tiap pelanggaran hingga tidak berkembang lebih buruk.

Kedudukan tanpa gol bertahan hingga akhir waktu normal, dan pertandingan harus dilanjutkan dengan perpanjangan waktu.

Dua menit memasuki babak pertama waktu tambahan, Persib mendapat peluang. Tendangan bebas Lorenzo Cabanas ke depan kotak penalti, disambar Patricio Jimenez. Namun bola yang mengalir deras berhasil diblok kiper Fance. Bola mental yang disambut Bayu Suta pun kembali gagal di tangan sang kiper.

Setelah melewati 15 menit, tetap tidak ada gol tercipta. Namun demikian kedua tim tetap menerapkan permainan terbuka. Di menit ke-110, Persib kembali mendapat peluang. Cabanas bebas menguasai bola di kotak penalti, dan melepaskan tendangan kaki kiri. Namun kesempatan tersebut kembali digagalkan Fance.

Kedudukan 0-0 bertahan hingga babak kedua perpanjangan waktu berakhir. Pertandingan pun harus diselesaikan lewat adu penalti.

Persib yang mendapat giliran menendang lebih dulu, melakukan awal yang buruk. Tendangan Cabanas ke kanan gawang berhasil ditepis Fance.

Setelah kegagalan Fance ini, tiga penendang berikutnya dari kubu Persib yakni, Sonny Kurniawan, Redouane Barkouwi, Patricio Jiminez berhasil mencetak gol. Sementara Persijap mencetak empat gol lewat Evaldo Silva, Donny Siregar, Kasiyadi, Amarildo.

Akhir pertandingan pun ditentukan oleh penendang kelima Persib Suwita Patha. Tendangannya melambung di atas mistar Fance. Dengan demikian, Persijap sudah dipastikan unggul 4-3 tanpa harus melakukan tendangan kelima.

Di babak 16 besar, Persijab akan bertemu pemenang antara Pelita Jaya Purwakarta vs PSS Sleman yang baru bertanding hari Kamis, (21/6/2007)