SEMANGAT

Minggu, 07 Juli 2013

modul asp web


Apa itu ASP


Sebelum mulai menggunakan, kita perlu mengetahui dasar-dasar Active Server Pages (ASP). ASP merupakan teknologi yang dikembangkan oleh Microsoft, diluncurkan sekitar tahun 1996. ASP adalah tekonolgi server-side scripting, yang berarti segala proses programnya dilakukan di server sebelum dikirim ke client. Server-side scripting ini merupakan kebalikan dari client-side scripting, yang seluruh proses programnya dilakukan di client, contohnya JavaScript. Karena seluruh prosesnya berada di server, maka client akan menerima hasil dalam bentuk HTML biasa. Berbeda dengan client-side scripting, dimana client juga menerima script. Jelas server-side scripting ini lebih aman dan lebih bebas untuk dikembangkan.
Yang biasanya kita katakan sebagai halaman ASP, sebenarnya terdiri dari 3 bagian.

ASP objects. Sebenarnya, yang dinamakan ASP adalah object, atau lebih tepat Component Object Model (COM), bukan bahasa pemrograman yang sering kita lihat. ASP dikembangkan diatas dasar ISAPI. ASP hanya terdiri dari 6 object yang sangat sederhana, tetapi karena digabungkan dengan struktur teknologi Microsoft lainnya, object ini menjadi sangat berguna. Keenam object tersebut adalah Application, Session, Response, Request, Server, dan ObjectContext.
Bahasa Scripting. Dalam bahasa scripting inilah object-object ASP dimanipulasi sesuai dengan yang kita kehendaki. Bahasa scripting yang diberikan oleh Microsoft adalah VBScript dan JScript. Keduanya dapat dipakai untuk menulis script ASP. Perbedaan antara dua bahasa tersebut hanyalah masalah selera. Standarnya adalah VBScript, dan bahasa ini yang paling banyak dipakai oleh developer ASP di seluruh dunia. ASPIndonesia.net juga memakai bahasa dalam artikel-artikel yang ada. Ada pihak ketiga yang kini mengembangkan PerlScript, favorit dari mereka yang berpengalaman di Unix.
ActiveX Server Component. Object ASP hanyalah perekat antara halaman HTML dengan program yang berada di server. Bahasa scripting hanya digunakan untuk membuat alur logika yang diperlukan. Untuk masalah akses ke database, akses ke program lain, dan sebagainya, maka diperlukanlah ActiveX Server Component. ActiveX Server Component ini sering dipakai dalam halaman ASP seperti ini :
Set oConn = Server.CreateObject("ADODB.Connection")
Perintah diatas membuat server memanggil ActiveX Server Component yang bersangkutan. ActiveX Server Component ini dapat dibuat dengan banyak bahasa pemrograman, contohnya Visual Basic, Visual C++, Delphi, Java, dll.
Dengan adanya ketiga bagian diatas, sebuah halaman ASP bisa menjalankan program-program yang sangat rumit di server. Inilah yang menjadi keunggulan ASP yang terutama. Biasanya kita sering melakukan akses database dengan ADODB, mengirim e-mail dengan CDONTS, tetapi ASP juga bisa melakukan hal lain yang jauh lebih rumit dengan komponen yang kita buat sendiri. Semuanya ini didasarkan dari teknologi Component Object Model (COM).

Dengan adanya teknologi ASP ini dalam halaman web dapat diisikan HTML tag, ASP script, panggilan ke komponent di server. Kombinasi ini menghasilkan aplikasi web yang canggih.

ASP FAQ

oleh: Tirta K. Untario
 
Inilah beberapa pertanyaan yang sering ditanyakan mengenai ASP. Daftar FAQ ini akan terus ditambah jika ada perkembangan baru.  

Apa itu ASP?

Active Server Pages adalah teknologi server-side scripting yang dikembangkan oleh Microsoft, memungkinkan Anda untuk menjalankan ActiveX Script dan ActiveX Server Component. Gabungan kedua teknologi ini memungkinkan Anda untuk membuat web yang dinamis. Untuk penjelasan lebih lanjut, bacalah artikel Apa itu ASP.
 
Apa maksudnya web yang dinamis?

Web yang dinamis adalah web yang halaman-halamannya dibentuk ketika ada request pada server. Halaman-halaman ditampilkan pada client kelihatan seperti halaman HTML biasa, tetapi sebenarnya terjadi proses di server untuk membentuk isi dari halaman tersebut setiap kali ada request. Contoh yang mudah ditemukan adalah serach engine. Tiap orang bisa memasukkan query mereka sendiri dan hasilnya ditampilkan secara dinamis, berbeda-beda untuk tiap query.
 
Siapa yang perlu menggunakan Active Server Pages?

Siapa saja yang ingin mengembangkan web-based application. ASP mudah dipelajari oleh setiap orang walalupun mereka bukan seorang programmer profesional. Pengetahuan dasar untuk mengembangkan ASP hanyalah pengetahuan HTML dan scripting, seperti VBScript atau Jscript.
 
Apa saja yang dibutuhkan untuk menjalankan Active Server Pages?

ASP berjalan didalam lingkungan Internet Information Server 2.0 keatas dan Personal Web Server. Internet Information Server dijalankan dengan OS Windows NT Server, sedangkan Personal Web Server dijalankan dengan OS Windows NT Workstation dan Windows 9x. Untuk Windows 2000 baik Profesional, Server, Advanced Server dan Data Center, semuanya menggunakan Internet Information Server 5.0.
 
Apakah ASP mendukung Java?

Ya. Java dapat digunakan untuk menulis ActiveX Server Component yang dibutuhkan.
 
Apakah ASP kompatibel dengan browser selain Internet Explorer?

Browser apa saja compatible dengan ASP karena proses ASP dijalankan di server dan hasil pemrosesannya dalam bentuk plain text. Hasil pemrosesan ini dapat digabungkan dengan tag-tag HTML atau yang lain sehingga bisa kompatibel dengan browser apa saja.
 


Apakah ASP bisa melakukan akses ke database?

Akses ke database merupakan fasilitas ASP yang paling sering digunakan. ASP mendukung akses ke database manapun selama database tersebut mendukung OLEDB atau ODBC.
 
Di platform mana saja ASP bisa berjalan?

Pertama kalinya ASP dikembangkan dengan platform Windows dan komponennya. Belakangan ini sudah ada beberapa pihak ketiga yang membuat application server untuk ASP yang berjalan di platform selain Windows, misalnya Linux, Solaris, dll. Salah satu vendornya adalah Chili!Soft Inc.
 
Apakah ASP itu aman?

Karena ASP merupakan komponen dari IIS, maka ASP memiliki level keamanan seperti yang dimiliki oleh Windows NT dan Windows 2000. File-file ASP di web dapat diberi bermacam-macam proteksi sehingga tidak dapat diakses oleh sembarang orang.



Memakai include pada Script ASP

oleh: Tirta K. Untario

Penting bagi para programmer ASP untuk memakai include. Kegunaannya yang utama adalah untuk modularisasi kode. Include ada 2 jenis:

<!--#include file="namafile" -->
<!--#include virtual="namafile" -->
Parameter file
Parameter file menunjukkan posisi relatif file yang dituju dari halaman yang sedang dibuka. Lihatlah beberapa contoh dibawah ini.

<!--#include file="library.asp" -->
Contoh diatas menunjuk pada file library.asp yang berada pada direktori yang sama.
<!--#include file="scripts/library.asp" -->
Contoh diatas menunjuk pada file library.asp yang berada pada subdirektori scripts dibawah direktori yang sekarang.

<!--#include file="../scripts/library.asp" -->
Contoh diatas menunjuk pada file library.asp yang berada pada direktori scripts yang sejajar dengan direktori sekarang.

<!--#include file="/scripts/library.asp" -->
Jangan pakai contoh diatas. Ini menunjuk pada file library.asp yang berada pada root direktori harddisk, dan secara otomatis, hal ini dolarang oleh webserver.

Parameter virtual

Parameter virtual menunjukkan posisi file yang dituju dari root direktori virtual address. Lihatlah beberapa contoh dibawah ini. Contoh-contoh dibawah ini memakai domain http://localhost

<!--#include virtual="library.asp" -->
Contoh diatas menunjuk pada file http://localhost/library.asp

<!--#include virtual="/include/scripts/library.asp" -->
Contoh diatas menunjuk pada file http://localhost/include/scripts/library.asp

Karakteristik

Nama file yang akan diinclude tidak bisa berupa variabel.
Contoh:

<% strIncludeFile = "library.asp" %>
<!--#include file=strIncludeFile -->



Ketika kita mencoba memakai conditional include, seperti contoh:

<% If intIndex = 1 Then %>
   <!--#include file="content1.asp" -->
<% Else %>
   <!--#include file="content2.asp" -->
<% End If %>
Maka file yang akan di-include akan dipanggil dulu semuanya, baru operasi IF akan dilakukan. Prioritas directive include pada script ASP adalah yang pertama, sehingga semua file include akan dipanggil dan disertakan terlebih dahulu sebelum ada kode ASP yang mulai diproses.

Directive include tidak bisa dimasukkan kedalam blok script ASP, melainkan harus diluar blok script ASP. Contohnya dapat dilihat pada kode-kode diatas.

Tips untuk Keamanan

Jangan menamakan file include Anda dengan .inc. Jika ada seseorang yang mengetahui posisi file include Anda, maka dengan mudah ia dapat melihatnya lewat browser, dan mencuri kode-kode yang mungkin rahasia, karena file .inc akan dianggap sebagai text file biasa. Mesin pencari dan robot bisa saja menemukan dan mengindeks file include Anda.
Namakan file include Anda dengan .asp . File .asp, secara otomatis akan diproses oleh server, sehingga ketika ada yang berusaha mendownloadnya lewat browser, dia tidak dapat melihat source code-nya. 

Memakai Request Object

oleh: Tirta K. Untario
  
Request object, kebalikan dari Response, melakukan pengambilan data dari client untuk diproses lebih lanjut. Ada beberapa collection dari Request object yang akan sering dipakai dalam menulis script ASP.



Request.ServerVariables


Request.ServerVariables, sesuai namanya, mengambil variabel-variabel HTTP yang tersedia di server ataupun client.
Penggunaannya lihat contoh dibawah ini:

<% Request.ServerVariables("namavariable") %>
Nama variabel ini dudah ditetapkan sesuai dengan standar. Untuk contoh dan referensi dari variabel server yang bisa digunakan, silakan klik link dibawah ini.

http://www.aspindonesia.net/demo/00,02,26,1/servervariables.asp

Request.QueryString

Request.QueryString dipakai untuk mengambil data yang dikirim melalui query (URL yang tertulis diatas address bar) atau yang dikirim lewat form dengan metode GET. Querystring dapat dilihat dibelakang tanda ? di address bar.
Contoh querystring :
http://www.aspindonesia.net/default.asp?querystring...

<%
' nilai diatas diambil dengan cara seperti ini
strQueryString = Request.QueryString("variabel")
%>
Contoh penggunaannya :

http://www.aspindonesia.net/demo/00,02,26,1/querystring.asp


Request.Form

Request.Form dipakai untuk mengambil data yang dikirim melalui form dengan metode POST.



<html>
<head></head>
<body>
<form method="post" action="form.asp">
  <input type="text" name="nama">
  <input type="submit" name="submit">
</form>
</body>
</html>
Nilai form diatas diambil dengan cara seperti ini :

<% strForm = Request.Form("nama") %>
Contoh penggunaannya :

http://www.aspindonesia.net/demo/00,02,26,1/form.asp

Request.Cookies

Request.Cookies dipakai untuk mengambil data yang tersimpan di cookie. Penjelasan lebih lanjut mengenai pemakaian cookies akan ditulis di artikel lain.

Memakai Response Object

oleh: Tirta K. Untario

Response object ini sangat penting dan pasti akan dipakai sepanjang kita memakai ASP. Response, sesuai dengan namanya, akan mengirimkan data yang kita mau ke client. Kebalikannya dengan Request, yang akan mengambil data dari client. Ada beberapa Response yang akan sering dipakai didalam menulis script ASP.

Response.Write

Semua yang pernah menulis script ASP pasti pernah memakainya. Contoh:

<% Response.Write "Apakabar" %>
Catatan:
Operasi penggabungan string pada VBScript menggunakan operator &. Contoh:

strKalimat = "Ini kalimat" & "yang pertama" & "<br>"

Response.Cookies

Response.Cookies ini melakukan operasi penulisan cookies pada browser. Harus dilakukan sebelum ada data yang dikirimkan dari server ke client. Karena itu harus ditulis di awal halaman. Jika keadaan memaksa penulisan harus dilakukan ditengah-tengah halaman HTML, maka Response.Buffer harus di-set ke TRUE.
Untuk dokumentasi lengkap mengenai Response.Cookies ini, dapat melihat dokumentasi yang datang dengan PWS atau IIS.

Response.Redirect

Response.Redirect ini mudah sekali dipahami. Ini akan me-redirect client ke halaman yang dituju. Contoh:

<% Response.Redirect "halamankedua.asp" %>
Hasil dari Response.Redirect ini dikirimkan bersama dengan HTTP Headers. Karena itu, sama seperti Response.Cookies, Response.Redirect ini harus ditulis sebelum ada data dikirim ke browser. Jika ingin menulis Response.Redirect ditengah-tengah halaman HTML, maka Response.Buffer harus di-set TRUE.

Response.Buffer

Ada 2 nilai yang bisa dimasukkan, yaitu:

Response.Buffer = FALSE 'Default
Response.Buffer = TRUE
Nilai FALSE akan menjadikan script ASP dikirim ke client segera setelah tiap baris/blok selesai dieksekusi.

Nilai TRUE akan menjadikan script ASP akan dieksekusi dulu sampai selesai, kemudian hasil akhirnya baru dikirim client. Hal ini berguna jika kita perlu memakai Response yang hasilnya harus dikirimkan bersama HTTP Headers, seperti Response.Cookies, Response.Redirect, dan lainnya. Penggunaan Response.Buffer = TRUE ini disarankan, karena akan mempercepat eksekusi script.

Response.Buffer ini harus ditulis pada baris pertama sebuah script, jika script ini tidak memakai directive @. Jika script memakai directive @, maka Response.Buffer harus ditaruh di baris kedua sesudahnya.

Response.Flush

Response.Flush hanya bisa dipakai jika Response.Buffer=TRUE. Response.Flush ini akan mengirimkan data yang disimpan di-buffer ke client, walaupun eksekusi belum selesai. Contoh :

<% Response.Buffer = TRUE %>
<%
' Dalam contoh ini, nilai x akan dikirimkan secara periodik
' segera setelah selesai diproses
For x = 1 to 1000
   Response.Write "Nilai ke : " & x
   Response.Flush
Next
%>

 

Response.End

Response.End hanya bisa dipakai jika Response.Buffer=TRUE. Response.End ini akan menghentikan eksekusi script dan mengirimkan bagian yang selesai dieksekusi ke client. Contoh:

<% Response.Buffer = TRUE %>
<%
' Pada contoh ini, hanya nilai 1 yang dikirimkan ke client,
' karena eksekusi script berhenti.
For x = 1 to 1000
   Response.Write "Nilai ke : " & x
   Response.End
Next
%>

 

Response.Clear

Response.Clear hanya bisa dipakai jika Response.Buffer=TRUE. Response.Clear ini akan menghapus segala data yang tersimpan di-buffer, dan data tersebut tidak akan dikirimkan ke client. Contoh:

<% Response.Buffer = TRUE %>
<%
' Pada contoh ini, tidak ada data yang dikirim
For x = 1 to 1000
   Response.Write "Nilai ke : " & x
Next
Response.Clear
%>
Untuk method dan property yang lain dari Response object, biasanya jarang dipakai. Untuk dokumentasi lengkap mengenai Response object ini, dapat dilihat pada dokumentasi yang datang bersama PWS atau IIS.


Memakai Server Object

oleh: Tirta K. Untario
  
Server object dapat melakukan akses ke methods atau properties yang ada di server. Inilah beberapa method dan properties yang sering digunakan.

Server.CreateObject

Server.CreateObject ini sering sekali dipakai dalam menulis script ASP. Method ini akan membuat object yang berasal dari komponen yang terpasang di server. Contoh penggunaan :
<% Set objConn = Server.CreateObject("ADODB.Connection") %>
Server.HTMLEncode

Server.HTMLEncode ini mengubah tag HTML dalam sebuah string menjadi special character agar tidak dibaca sebagai tag HTML oleh browser. Contoh penggunaan :

<%
strContoh = "<b>Percobaan</b>"
strContoh = Server.HTMLEncode (strContoh)
%>
Hasil dari operasi diatas adalah : <b>Percobaan</b> , bukan Percobaan

Server.URLEncode

Sebuah nilai variabel yang dikirim melalui querystring tidak bisa berisi karakter tertentu, misalnya : spasi, :, /, \, dan beberapa karakter lain. Untuk itu, Server.URLEncode mempermudah pekerjaan kita dengan melakukan encoding kepada nilai variabel yang akan dikirim sehingga bisa langsung dipakai kedalam querystring. Contoh penggunaan :

<%
strContoh = "http://www.aspindonesia.net"
strContoh = Server.URLEncode (strContoh)
%>
Hasil dari operasi diatas adalah : http%3A%2F%2Fwww%2Easpindonesia%2Enet , sehingga nilai dari strContoh dapat langsung dikirimkan melalui querystring seperti contoh ini :
http://www.aspindonesia.net/default.asp?url=<% =strContoh %>

Server.MapPath

Server.MapPath berguna untuk mendapatkan letak direktori fisik di server. Jika suatu saat kita perlu menulis script yang berhubungan dengan file di server, Server.MapPath ini berguna, karena kita tidak perlu memusingkan path dari file tersbut jika pindah server. Contoh penggunaan :

<% = Server.MapPath("default.asp") %>
Hasilnya : D:\Inetpub\aspindonesia\artikel\default.asp

Server.ScriptTimeout

Server.ScriptTimeout mengijinkan kita untuk mengubah timeout dari script ASP secara langsung dan berlaku hanya pada satu script, tanpa perlu mengakses properti di server. Server.ScriptTimeout ini juga dapat digunakan untuk melihat timeout yang ditentukan untuk sebuah script. Nilai default dari ScriptTimeout adalah 90 detik, jika belum dirubah di server.

<%
' untuk melihat timeout dari script yang bersangkutan
Response.Write Server.ScriptTimeout

' untuk mengganti timeout default di server menjadi 100 detik
Server.ScriptTimeout = 100
%>
Timeout di script ini adalah : 90 detik


Redirection dengan ASP

oleh: Tirta K. Untario
  
Mudah sekali untuk melakukan redirection di ASP, sama mudahnya dengan menggunakan JavaScript. Contoh :

<%
'Jangan menggunakan tanda kurung
Response.Redirect "percobaan.asp"
%>
Response.Redirect ini akan dikirimkan bersama-sama dengan HTTP Header. Karena itu, Response.Redirect harus ditulis sebelum data dikirim ke browser. Contoh :
<% Response.Redirect "percobaan.asp" %>
<html>
<!-- Kode HTML Anda -->
</html>
Jika Anda hendak menuliskannya ditengah halaman HTML, maka Response.Buffer = TRUE harus diletakkan pada baris pertama program Anda. Contoh :

<% Response.Buffer = TRUE %>
<html>
<!-- Kode HTML Anda -->
  <% Response.Redirect "percobaan.asp" %>
</html>


Konversi Data dari CSV ke Database

 oleh: Ivan R. Lanin

Comma Seperated Value (CSV) adalah file text biasa yang tiap nilai didalamnya dibatasi oleh karakter koma. Contohnya dapat dilhat dibawah ini:

Contoh file CSV

Ivan R. Lanin,L,1/16/75,Hylabs,Ranggamalela 18,Bandung
Eril S. Lanin,L,5/27/78,Zent,Taman Cibeunying 5,Bandung
CSV sering dipakai untuk melakukan export-import data spreadsheet maupun database karena formatnya yang berupa text file, sehingga universal. Banyak program spreadsheet dan database mempunyai plug-in untuk melakukan export-import CSV. Artikel ini akan menjelaskan bagaimana melakukan import dari CSV untuk dimasukkan kedalam database Access dengan menggunakan ASP.

Pertama-tama, pendeklarasian konstanta dan variabel.

Listing program

<% @Language=VBScript %>
<% Option Explicit %>
<%
'deklarasi konstanta yang akan dipakai
const forReading = 1
const adOpenKeySet = 1
const adLockOptimistic = 3
const adCmdUnknown = 0
'deklarasi variabel
dim sTextName, sDBName, sPathName, sDelimiter
dim sFieldCount, nLoop, sMsg
dim sSQL, oRs, oConn
dim fso, fs, sBuffer
dim aField
'nama file CSV yang akan diimport
sTextName = "csv.csv"

'nama file database
sDBName = "db.mdb"

'delimiter di file CSV, menggunakan koma
sDelimiter = ","

'jumlah field dalam CSV dan database
sFieldCount = 6
Berikutnya, kita perlu membuka koneksi ke database dan file CSV.

on error resume next

'koneksi database
sSQL = "SELECT * FROM tTable"
set oConn = Server.CreateObject("ADODB.Connection")
set oRs = Server.CreateObject("ADODB.Recordset")
oConn.Provider = "Microsoft.Jet.OLEDB.4.0"
oConn.ConnectionString = "Data Source=" & sDBName
oConn.Open
oRs.Open sSQL, oConn, adOpenKeySet, adLockOptimistic, adCmdUnknown
'buka file teks
set fso = Server.CreateObject("Scripting.FileSystemObject")
set fs = fso.OpenTextFile(sPathName & sTextName, forReading)
Kemudian, barulah masuk ke proses yang paling penting, konversi data.

'looping file sampai akhir file
do until fs.AtEndOfStream
  sBuffer = fs.ReadLine
  if sBuffer = "" then exit do
  aField = split(sBuffer, sDelimiter)
  oRs.AddNew
  for nLoop = 0 to sFieldCount-1
    oRs(nLoop) = aField(nLoop)
  next
  oRs.Update
  Erase aField
loop
Proses konversi data yang sesungguhnya hanyalah satu blok kecil diatas. Sampai disini, proses konversi data sudah selesai. Data sudah di-import kedalam database. Kini saatnya melakukan pembersihan variabel dan object.

'bersihkan variabel
fs.Close
set fs = nothing
set fso = nothing

oRs.Close
set oRs = nothing

oConn.Close
set oConn = nothing
Selesai. Selamat mencoba.

Listing lengkap beserta database dan file CSV untuk artikel ini dapat didownload disini : /download/artikel/00,02,23,1.zip

Tampilan Data dalam Halaman
oleh: Ivan R. Lanin
  
Recordset hasil query ke database kadang menghasilkan jumlah data yang cukup banyak sehingga tidak bisa ditampilkan sekaligus ke dalam halaman HTML. Jika jumlah record hanya sekitar 5 atau 20 record mungkin masih bisa ditampilkan dalam satu halaman. Tapi jika jumlahnya sudah mencapai 50, 100, atau lebih, selain tidak indah untuk dilihat untuk meload halaman dengan jumlah record sebanyak ini akan sangat lama. Artikel ini membahas cara untuk menampilkan halaman tampilan data dalam bentuk halaman yang masing-masing hanya mengandung jumlah data tertentu.
Contoh paling mudah konsep tampilan data dalam bentuk halaman adalah jika anda mencari sesuatu di search engine seperti AltaVista, Excite, dll. Data ditampilkan dalam jumlah tertentu per halaman (10 atau lainnya), dan jika anda ingin melihat data lainnya, tinggal menekan tombol navigasi 'next' atau 'previous'.

Di ASP, tampilan seperti itu dapat kita wujudkan dengan memanfaatkan properti PageSize dan AbsolutePage dari objek Recordset. PageSize menentukan jumlah record yang ditampilkan perhalaman, sedang AbsolutePage menentukan halaman yang ditampilkan.

Berikut contoh coding untuk menampilkan sebagian log file ASPIndonesia.net. Log file tersebut dicatat dalam file logs.mdb (format Access) dalam tabel tLOG.

<% @LANGUAGE="VBSCRIPT" %>
<% Option Explicit %>
<%
' konstanta ADO yang akan dipakai
const adOpenStatic = 3
const adLockReadOnly = 1
const adCmdUnknown = 0

' variabel
dim oConn, oRs, sSQL, sDBName
dim nPageSize, nPage, nPageCount
dim nRecord, nRecordCount, nFirstRecord, nLastRecord
dim aField
dim nFieldCount, nLoop

' inisialisasi pertama
sDBName = Server.Mappath("logs.mdb")
sSQL = "SELECT * FROM tLOG"
nPageSize = 12
nPage = Request.QueryString("pg")
if nPage = "" or not IsNumeric(nPage) then
  nPage = 1
else
  nPage = CInt(nPage)
Coding di atas adalah inisialisasi awal variabel. Nama database sesuaikan dengan lokasi fisik file database anda. Variabel nPageSize adalah jumlah record per halaman. Halaman yang ditampilkan diperoleh berdasarkan querystring 'pg'.

' buka connection
set oConn = Server.CreateObject("ADODB.Connection")
oConn.Provider = "Microsoft.Jet.OLEDB.4.0"
oConn.ConnectionString = "Data Source=" & sDBName
oConn.Open

' buka recordset
set oRs = Server.CreateObject("ADODB.Recordset")
oRs.Open sSQL, oConn, adOpenStatic, adLockReadOnly, adCmdUnknown
Selanjutnya buka koneksi ke database, dan tampilkan data jika recordset tidak kosong. Properti PageSize dari recordset diinisialisasikan sesuai dengan jumlah yang ditentukan oleh variabel nPageSize.

' tampilkan data jika ada data
if not oRs.EOF then
  ' penentuan jumlah record perhalaman
  oRs.PageSize = nPageSize
 
  ' hitung jumlah record, halaman, dan field
  nRecordCount = oRs.RecordCount
  nPageCount = oRs.PageCount
  nFieldCount = oRs.Fields.Count
 
  ' redim array field berdasarkan jumlah field
  redim aField(nFieldCount, 2)
  ' masukkan nama field ke dalam variabel array field
  for nLoop = 0 to nFieldCount-1
    aField(nLoop, 0) = oRs.Fields(nLoop).Name
  next
Satu bagian yang cukup vital di sini adalah error trapping. Anda hanya menampilkan halaman mulai dari 1 sampai jumlah total halaman (properti PageCount).

  ' LANJUTAN DARI SCRIPT DIATAS
  ' penentuan halaman yang ditampilkan
  if nPage < 1 then nPage = 1
 
  if nPage > nPageCount then nPage = nPageCount
  oRs.AbsolutePage = nPage
 
  ' penentuan nilai record pertama dan terakhir yang ditampilkan
  nFirstRecord = (nPage - 1) * nPageSize + 1
  nLastRecord = (nPage - 1) * nPageSize + nPageSize
  if nLastRecord > nRecordCount then nLastRecord = nRecordCount
' -----------------------------------------------------------------------------
%>
<html>
<head>
  <title>
    Data <% =nFirstRecord %>-<% =nLastRecord %> dari <% =nRecordCount %>
  </title>
</head>
<body>
Coding untuk navigasi dapat dilihat berikut ini.

<table width="100%">
  <tr>
    <td><b>Data <% =nFirstRecord %>-<% =nLastRecord %> dari
      <% =nRecordCount %></b>
    </td>
    <td align="right">
      <% if nPage > 1 then %>
        <a href="default.asp?pg=1">
          <img src="first.gif"  width="20" height="18" border="0" alt="&lt;&lt;">
        </a>
        <a href="default.asp?pg=<%=(nPage-1)%>">
          <img src="previous.gif"  width="20" height="18" border="0" alt="&lt;">
        </a>
      <% end if %>

      <% if nPage<nPageCount then %>
        <a href="default.asp?pg=<%=(nPage+1)%>">
          <img  src="next.gif" width="20" height="18" border="0"  alt="&gt;">
        </a>
        <a href="default.asp?pg=<%=nPageCount%>">
          <img src="last.gif"  width="20" height="18" border="0" alt="&gt;&gt;">
        </a>
      <% end if %>
    </td>
  </tr>
</table>
<%
Response.Write "<table border=""1"" cellpadding=""3""  cellspacing=""0"">" & vbCrLf
Response.Write " <tr align=""center"" bgcolor=""CCCCCC"">"  & vbCrLf
for nLoop = 0 to nFieldCount-1
  Response.Write " <th><b>" &aField(nLoop, 0)& "</b></th>"  & vbCrLf
next
Response.Write " </tr>" & vbCrLf
for nRecord = nFirstRecord to nLastRecord
  Response.Write " <tr valign=""top"">" & vbCrLf
  for nLoop = 0 to nFieldCount-1
    aField(nLoop, 1) = oRs(aField(nLoop, 0))
    if aField(nLoop, 1) = "" then aField(nLoop, 1) = "&nbsp;"
    Response.Write " <td>" &aField(nLoop, 1)& "</td>"    & vbCrLf
  next
  Response.Write " </tr>" & vbCrLf
  oRs.MoveNext
  if oRs.EOF then exit for
next
Response.Write " </table>" & vbCrLf
%>
Coding untuk navigasi di bawah tabel.

<table width="100%">
  <tr>
    <td><b>Halaman <%=nPage%> dari <%=nPageCount%></b></td>
    <td align="right">
      <% if nPage>1 then %>
        <a href="default.asp?pg=1">
          <img src="first.gif" width="20" height="18" border="0" alt="&lt;&lt;">
        </a>
        <a href="default.asp?pg=<%=(nPage-1)%>">
          <img src="previous.gif" width="20" height="18" border="0" alt="&lt;">
        </a>
      <% end if %>
   
      <% if nPage<nPageCount then %>
        <a href="default.asp?pg=<%=(nPage+1)%>">
          <img src="next.gif" width="20" height="18" border="0" alt="&gt;">
        </a>
        <a href="default.asp?pg=<%=nPageCount%>">
          <img src="last.gif" width="20" height="18" border="0" alt="&gt;&gt;">
        </a>
      <% end if %>
    </td>
  </tr>
</table>
</body>
</html>

<% end if %>
Pelaksanaan clean up.

<%
' clean up
Erase aField
oRs.Close
set oRs = nothing
oConn.Close
set oConn = nothing
%>
Demikian cara untuk menampilkan data dalam bentuk halaman. Anda dapat mengembangkan sendiri penggunaan lebih lanjutnya.
Untuk mendownload contoh artikel ini : /download/artikel/00,03,08,1.zip
Untuk mencoba demo dari teknik diatas : /demo/00,03,08,1/

Menggunakan W3 JMAIL
untuk Mengirim Mail Dari Halaman Web
oleh: Ivan R. Lanin

Anda tentu sering melihat form web untuk mengirimkan email dari halaman web. Untuk dapat melakukan hal ini, kita harus menggunakan komponen tambahan mailer yang diinstall di server. Artikel ini menjelaskan penggunaan W3 JMail, salah satu komponen mailer populer yang gratis dari Dimac, untuk menerima masukan dari pengunjung situs anda.

Pengiriman email dari halaman web, atau lebih dikenal dengan istilah form-to-mail, bisa anda gunakan untuk menerima komentar atau pertanyaan dari pengujung situs yang tidak memiliki klien email. Pertama, buatlah form isian untuk pengiriman komentar.
Listing 1: Form Isian Komentar (form.html)

<html>
<head>
<title>Komentar</title>
</head>
<body bgcolor="#FFFFFF" text="#000000" link="#3333FF"
alink="#0000CC" vlink="#333366">
<h2>Komentar</h2>
<p>Kirimkan komentar anda lewat form isian berikut.</p>
<form method="post" action="sendmail.asp">
<table cellspacing="0" cellpadding="3">
  <tr>
    <td>Nama</td>
    <td><input type="text" name="Nama"></td>
  </tr>
  <tr>
    <td>Email</td>
    <td><input type="text" name="Email"></td>
  </tr>
  <tr>
    <td>Subyek</td>
    <td><input type="text" name="Subyek"></td>
  </tr>
  <tr>
    <td colspan="2">Komentar</td>
  </tr>
  <tr>
    <td colspan="2">
    <textarea name="Komentar" rows="10" cols="40" wrap="virtual">
    </textarea>
    </td>
  </tr>
  <tr>
    <td colspan="2">
    <input type="submit" value="Kirim Komentar">&nbsp;
    <input type="reset">
    </td>
  </tr>
</table>
</form>
</body>
</html>

Form terdiri dari empat field, nama pengirim, email, subyek, dan isi komentarnya. Form akan diposting ke halaman lain (sendmail.asp) yang menangani pengiriman melalui komponen JMail. Penanganan pengiriman sederhana yang belum menggunakan validasi tipe data dan data yang harus dikirim dapat dilihat pada listing 2.

Listing 2: Pengiriman email (sendmail.asp)

<%@ LANGUAGE="VBSCRIPT" %>
<% Option Explicit %>
<%
dim sSMTPServer, sToName, sToEmail
dim sMsg
dim oMailer
sSMTPServer = "192.168.10.2"
sToName = "Ivan Lanin"
sToEmail = "ivan@sangar.misrg"
on error resume next
set oMailer = Server.CreateObject("JMail.SMTPMail")
oMailer.SenderName = Request.Form("Nama")
oMailer.Sender = Request.Form("Email")
oMailer.ServerAddress = sSMTPServer
oMailer.Subject = Request.Form("Subyek")
oMailer.Body = Request.Form("Komentar")
oMailer.AddHeader "Originating-IP", Request.ServerVariables("REMOTE_ADDR")
oMailer.AddHeader "User-Agent", Request.ServerVariables("HTTP_USER_AGENT")
oMailer.AddRecipientEx sToEmail, sToName
oMailer.Execute
set oMailer = nothing
if err then
  sMsg = "Terjadi kesalahan. Pengiriman komentar gagal dilaksanakan."
else
  sMsg = "Pengiriman komentar telah dilaksanakan dengan sukses."
end if
%>
<html>
<head>
<title>Pengiriman Komentar</title>
</head>
<body bgcolor="#FFFFFF" text="#000000" link="#3333FF"
alink="#0000CC" vlink="#333366">

<h2>Pengiriman Komentar</h2>
<p><% =sMsg%></p>

</body>
</html>
Pertama, tentukanlah variabel alamat SMTP server (sSMTPServer) yang anda gunakan untuk mengirim surat. Bentuknya bisa berupa nama server atau nomer IP. Pada contoh di atas digunakan nomer IP. Selanjutnya tentukan nama dan alamat email tujuan (sToName dan sToEmail). Yang diperlukan sebenarnya hanya alamat email, nama hanya digunakan sebagai pelengkap dan bisa tidak ditulis.

Inisiasi variabel obyek mailer (oMailer) sebagai JMail.SMTPMail. Tentu saja anda harus meregistrasi komponen JMail anda ke dalam sistem. Cara untuk meregistrasi komponen diluar lingkup artikel ini. Sebagai tips, jika menggunakan Windows NT, anda harus login dengan hak administrator dan menggunakan regsvr32.exe untuk meregister komponen anda.

Setelah itu, setting beberapa property obyek oMailer.

SenderName : Isi dengan nama pengirim

Sender : Isi dengan email pengirim

ServerAddress : Isi dengan nama atau nomer IP server SMTP

Subject : Isi dengan subyek email

Body : Isi pesan
Method obyek oMailer yang diisi selanjutnya adalah

AddHeader: Menambahkan header surat. Format sintaksnya adalah oMailer.AddHeader [Header], [Nilai]

AddRecipientEx: Menambahkan nama dan alamat email penerima surt. Format sintaksnya adalah Mailer.AddRecipientEx [Email], [Nama]
Laksanakan pengiriman dengan menjalankan method Execute. Jika berhasil, akan ditampilkan pesan bahwa komentar berhasil dikirimkan. Sebaliknya jika tidak, akan ditampilkan pesan bahwa komentar gagal dikirimkan.
Dokumentasi lengkap property dan method JMail dapat dilihat di Dimac.




Menutup Lubang Keamanan pada IIS

oleh Ivan R. Lanin

Coding merupakan hasil karya yang paling berharga untuk seorang programmer. Tentu anda tidak ingin hasil karya anda tersebut dilihat tanpa izin anda? Artikel berikut membahas dua lubang keamanan yang menyebabkan pengunjung dapat melihat source code ASP anda. Artikel ini tidak ditujukan untuk membahas semua lubang keamanan yang ada, melainkan sebagian saja.

Lubang Keamanan #1 ::$DATA
Misalkan site anda adalah http://www.somesite.com dan halaman utama anda adalah default.asp. Jika anda ketikkan http://www.somesite.com/default.asp::$DATA dan anda dapat melihat coding asp anda, berarti anda masih memiliki bug tersebut. Segera lihat keterangan detil untuk mengatasi bug IIS4 ini di situs Microsoft.
Bug ini telah ditemukan sejak Juli 1998 dan sayangnya, merupakan karakteristik semua file NT. Di NT Service Pack 5, masalah ini telah diatasi. Selain menginstall patch NT, anda dapat juga mengatasi bug tersebut dengan mengatur hak akses direktori ASP anda menjadi EXECUTE, dan tidak READ.

Cara kedua adalah manambahkan mapping aplikasi ekstension .asp::$DATA dan .asa::$DATA dengan ASP.DLL. Dengan demikian, setiap user menuliskan namafile.asp::$DATA, IIS akan melakukan mapping ke ASP.DLL, dan source code tidak dapat dilihat.

Tapi tentu saja ini bukan solusi yang paling baik dan hanya bersifat sementara. Paling baik adalah dengan menginstall patch NT.

Mengatur Hak Akses Direktori

• Buka MS Management Console - Internet Service Manager
• Klik kanan di nama domain, dan pilih 'Properties'
• Pilih Tab 'Home Directory'
• Pilih hak akses hanya untuk execute



Menambah Mapping Aplikasi

            • Buka MS Management Console - Internet Service Manager
        • Klik kanan di nama domain, dan pilih 'Properties'
        • Pilih Tab 'Home Directory' dan klik tombol 'Configuration'
        • Tambahkan mapping untuk .asp::$DATA dan .asa::$DATA, dan        diarahkan ke ASP.DLL, persis seperti mapping pada ekstension          .asp.

Lubang Keamanan #2 WEBHITS.DLL BUG
Bug kedua merupakan bug di MS Index Server. Microsoft menyebut bug itu sebagai "Malformed Hit-Highlighting Argument Vulnerability". Bug ini ditemukan pada 20 Januari 2000 dan dibahas di Microsoft Security Bulletin.
Sama seperti bug ::$DATA, misalkan site anda adalah http://www.somesite.com, dan halaman utama anda adalah default.asp. Jika anda ketikkan http://www.somesite.com/null.htw?_CiWebHitsFile=/default.asp%20&CiRestriction=none&CiHiliteType=Full dan anda bisa melihat coding asp anda, berarti anda juga terkena bug webhits.dll ini.

Bug ini dapat diatasi dengan menginstall patch dari Microsoft. URL untuk mendowload patch tersebut dapat anda temukan di artikel TechNet Microsoft di atas. Selain itu, cara lain untuk mengatasi bug ini adalah dengan menghilangkan semua mapping aplikasi selain .asp dan .asa dan terutama .htw. Tapi cara ini mungkin kurang tepat kalau anda memang membutuhkan mapping tersebut.

Menghilangkan Mapping Aplikasi

• Buka MS Management Console - Internet Service Manager
             • Klik kanan di nama domain, dan pilih 'Properties'
             • Pilih Tab 'Home Directory' dan klik tombol 'Configuration'
            • Hilangkan mapping aplikasi. KECUALI .ASP dan .ASA

Penutup

Artikel ini bukan ditujukan untuk menghambat anda menggunakan ASP karena kuatir masalah keamanannya. SETIAP aplikasi pasti memiliki bug, karena yang membuat aplikasi hanyalah manusia yang pasti tak terlepas dari kesalahan. Yang perlu kita lakukan adalah bagaimana saling menutup
kekurangan-kekurangan itu. Happy Coding!

Mengakses Search Engine Dunia dari Script ASP Anda
oleh: Gunadi
                 
Kita tentunya ingin atau mengharapkan site yang ita buat sering dikunjungi orang. Dan tentu kita juga ingin memberikan fasilitas yang memudahkan pengunjung site kita untuk mencari sesuatu di internet, tanpa harus berpindah terlebih dahulu dari site kita.
Untuk itu kita dapat menambahkan beberapa mesin pencari yang sudah umum dikenal untuk melakukan pencarian dengan memanfaatkan query string.

Langkah pertama, kita coba masuk ke mesin pencari kesukaan kita, dan ambil query stringnya. Kita dapat mengambil query string tersebut dengan mencoba mencari sesuatu menggunakan mesin pencari tersebut.
Sebagai contoh Yahoo menggunakan query string http://yahoo.com.bin/search?p=TEKSyangDICARI&z=2&hc=0&hs=0 untuk                melakukan pencarian.
Langkah selanjutnya, buatlah sebuah page untuk melakukan pencarian tersebut. Mulai dengan sebuah form sederhana, text box, select box dan tombol submit. Text box digunakan untuk memasukan kata yang mau dicari, sedangkan Select box digunaan untuk memilih mesin pencari yang digunakan.

                 <form action="go_search.asp" method="POST">
                 Kata yang di cari:<br>
                 <input name="Tesk" size="50"> <br>
                 menggunakan search engine :
                 <SELECT NAME="Engine">
                         <OPTION VALUE="Altavista">Altavista</OPTION>
                         <OPTION VALUE="Excite">Excite</OPTION>
                         <OPTION VALUE="Go">Go</OPTION>
                         <OPTION VALUE="Hotbot">Hotbot</OPTION>
                         <OPTION VALUE="Lycos">Lycos</OPTION>
                         <OPTION VALUE="MSN">MSN</OPTION>
                         <OPTION VALUE="WebCrawler">WebCrawler</OPTION>
                         <OPTION VALUE="Yahoo">Yahoo</OPTION>
                 </SELECT><BR>
                 <input type="submit" value="Mulai Cari"> 
                 <INPUT TYPE="reset" value="Batal">
                 </form>

Selanjutnya buatlah script asp untuk mengolah masukan dari form tersebut di atas. Kita dapat menggunakan If...Then atau Select Case statement dengan Response.Redirect untuk menunjuk mesin pencari yang benar. Di bawah ini adalah listingnya :

                 <%
                 select case Request.Form("Engine")
                 case "Altavista"
                         Response.Redirect ("http://www.altavista.com/" & _
                         "cgi-bin/query?pg=q&sc=on&hl=on&q=" & Request.Form("Teks") & _
                         "&kl=XX&stype=stext&search.x=42&search.y=12")
                 case "Excite"
                         Response.Redirect ("http://search.excite.com/" &_
                         "search.gw?search=" & Request.Form("Teks"))
                 case "Go"
                         Response.Redirect ("http://www.go.com/" & _
                         "Titles?col=WW&qt=" & Request.Form("Teks") & _
                         "svx=home_searchbox&sv=IS&lk=noframes")
                 case "Hotbot"
                         Response.Redirect ("http://hotbot.lycos.com/?MT=" & _
                         Request.Form("Teks") & _
                         "&SM=MC&DV=0&LG=any&DC=10&DE=2&x=24&y=6")
                 case "Lycos"
                         Response.Redirect ("http://www.lycos.com/" & _
                         "srch/?lpv=1&loc=searchhp&query=" & _
                         Request.Form("Teks") & "&x=45&y=4")
                 case "MSN"
                         Response.Redirect ("http://search.msn.com/" & _
                         "results.asp?RS=CHECKED&FORM=MSNH&v=1&q=" & _
                         Request.Form("Teks"))
                 case "WebCrawler"
                         Response.Redirect ("http://www.webcrawler.com/" & _
                         "cgi-bin/WebQuery?searchText=" & _
                         Request.Form("Teks"))
                 case else
                         Response.Redirect ("http://ink.yahoo.com/bin/query?p=" & _
                         Request.Form("Teks") & "&z=2&hc=0&hs=0")
                 end select
                 %>

Anda bisa menambahkan mesin pencari yang lain jia anda mengetahui query string yang digunakan oleh mesin pencari tersebut.
Untuk mencoba demo dari script di atas, silahkan buka alamat ini :
http://www6.ewebcity.com/ega/search.asp.
Pada kesempatan yang lain kita akan mencoba membuat fasilitas direktori servis seperti Yahoo atau yang sejenisnya.
Jika ada kesalahan atau ingin memberikan komentar silahkan menghubungi gunadi_ilyas@mip.co.id.

Mengambil Seluruh Nilai Form dan Querystring dalam Sekali Proses
oleh: Tirta K. Untario
                  
Biasanya kita mengambil nilai dari form dan querystring dengan cara seperti ini:

                  <%
                  querystring  = Request.Querystring("variabel")
                  form = Request.Form("variabel")
                  %>

Jika item yang ada dalam querystring atau form banyak, maka cara diatas tidak efektif, melelahkan dan sulit untuk di-debug.
Untuk itu, ada cara untuk mengambil nilai dari form dan querystring dalam sekali proses. Kita tidak perlu lagi melakukan coding untuk tiap item yang ada dalam form. Hal ini juga membuat form atau querystring yang kita buat dapat fleksibel. Perubahan pada form tidak perlu diikuti dengan perubahan coding pada halaman selanjutnya.

Script yang dibutuhkan sangat singkat, lihatlah contoh dibawah ini untuk mengambil nilai dari
                  querystring:

                  <%
                  For Each Item in Request.QueryString
                    For x = 1 To Request.QueryString(Item).Count
                      Response.Write Item & " = " _
                        & Request.QueryString(Item)(x) & "<br>"
                    Next
                  Next
                  %>

                  Untuk mengambil nilai dari form, gunakanlah script dibawah ini:

                  <%
                  For Each Item in Request.Form
                    For x = 1 To Request.Form(Item).Count
                      Response.Write Item & " = " _
                        & Request.Form(Item)(x) & "<br>"
                    Next
                  Next
                  %>

Mudah sekali. Nilai yang diambil berguna untuk debugging, atau juga bisa dimasukkan kedalam dictionary atau array untuk diproses lebih lanjut.

Untuk mengambil seluruh nilai dari cookies, perlu pendekatan lain, karena cookies mempunyai keys. Cara untuk mengambil nilai cookies dalam sekali proses akan dibahas pada artikel lain.
Untuk mencoba demo dari teknik diatas : /demo/00,03,29,1/

Cache pada Script ASP

 oleh: Tirta K. Untario

Kita perlu mengetahui bagaimana script ASP di-cache agar dapat memanipulasi cache jika diperlukan. Kadangkala kita perlu untuk menghindari cache halaman web yang dilakukan baik oleh proxy server ataupun browser, kadangkala kita malah perlu 'memaksa' proxy server untuk melakukan cache pada script yang bersangkutan. Untuk melakukan hal ini, ada beberapa teknik yang bisa dipergunakan.

Response.Expires


Response.Expires ini memasukkan data mengenai berapa menit script ASP di-cache pada browser Anda. Defaultnya adalah unlimited, jadi tidak ada batasan cache. Contoh :

<%
'Script di-cache selama 5 menit setelah dieksekusi
Response.Expires = 5
'Script tidak di-cache sama sekali
esponse.Expires = 0
%>

Response.ExpiresAbsolute


Response.ExpiresAbsolute memasukkan data mengenai sampai kapan script ASP ini di-cache di browser Anda. Nilai yang perlu diisikan berupa format date-time. Property ini akan membaca tanggal dan waktu dari system Anda, bukan server. Contoh :
<%
'Script tidak di-cache setelah 31 Mei 2000 pada pukul 13:30:15
Response.ExpiresAbsolute = #May 31,2000 13:30:15#
'Script tidak di-cache
Response.ExpiresAbsolute  = Now()
%>
Jangan lupa mengapit format date-time Anda dengan #, seperti contoh diatas.

Response.CacheControl


Secara default, script ASP tidak di-cache pada proxy server, hanya pada browser Anda. Ketika Anda berusaha melihat lagi script yang sama, maka request langsung ditujukan kepada web server, bukan proxy server. Jika Anda berusaha melihat script yang sama ketika browser sedang offline, maka request akan ditujukan kepada cache di browser Anda. Contoh :

<%
'Default. Script hanya di-cache pada browser Anda
Response.CacheControl = "private"
'Script bisa di-cache pada proxy server
Response.CacheControl = "public"
'Script tidak di-cache sama sekali
Response.CacheControl = "no-cache"
%>
Penting

Property dari object Response diatas harus dikirimkan bersama dengan HTTP Header. Karena itu, Anda harus menuliskan kode diatas sebelum ada data yang dikirimkan ke browser Anda. Contoh :

<%
Response.Expires = 0
%>
<html>
<!-- Kode html Anda -->
</html>
Jika Anda mau memasukkan property di tengah-tengah script ASP Anda, maka pada baris pertama script ASP, harus diberi Response.Buffer = TRUE. Contoh :

<% Response.Buffer = TRUE %>
<html>
<!-- Kode html Anda -->
<% Response.Expires = 0 %>
</html>


Membuat Buku Tamu dengan Database

oleh: Tirta K. Untario
                 
Buku tamu sering kita jumpai di internet. Juga sudah banyak script-script gratis yang menyediakan fungsi buku tamu ini. Pada artikel ini, kita akan mempelajari teknik dasar dalam membuat buku tamu dengan ASP. Buku tamu ini sangat sederhana. Silakan Anda bereksperimen sendiri dalam mengembangkannya.
Data buku tamu ini disimpan kedalam database Access. Table yang ada didalamnya berbentuk seperti ini:

                  Field
                           Tipe data
                  nama
                           Text(50)
                  email
                           Text(50)
                  tanggal
                           Date/Time
                  komentar
                           Memo


Dalam artikel ini, semua proses akan dilakukan dalam satu script saja, yaitu default.asp.

Kemudian, form untuk memasukkan data berbentuk seperti ini.

                 <form method="post" action="default.asp">
                   Nama : <input type="text" name="nama" size="50" maxlength="50">
                   Email : <input type="text" name="email" size="50" maxlength="50">
                   Komentar : <textarea name="komentar" cols="48" rows="8"></textarea>

                   ' hidden field ini digunakan untuk menentukan
                   ' apakah form sudah dikirim
                   <input type="hidden" name="entry" value="true">
                   <input type="reset" name="Reset" value="Reset">
                   <input type="submit" name="Submit" value="Submit">
                 </form>

Untuk memproses input dari form diatas, diperlukan satu function untuk melakukan validasi terhadap nilai input. Dibawah ini listing contoh function untuk melakuakn validasi sangat sederhana. Function ini hanya memeriksa apakah field tersebut ada isinya, dan kemudian mengubah tag HTML yang ada didalamnya.

                 <%
                 Function Validasi (varString)
                   If varString <> "" Then
                     Validasi = Server.HTMLEncode(Trim(varString))
                   Else
                     Validasi = FALSE
                   End If
                 End Function
                 %>

                 Sekarang, koneksi ke database dibuka.

                 <%
                 strConnString = "Provider=Microsoft.Jet.OLEDB.4.0;" _
                   & "Data Source=" & Server.Mappath("bukutamu.mdb") & ";" _
                   & "Mode=Read|Write;Persist Security Info=False"

                 Set oConn = Server.CreateObject("ADODB.Connection")    
                 oConn.Open strConnString
                 %>

Jika Request.Form("entry") ada isinya, berarti form baru saja dikirimkan. Maka akan
diproses lewat blok kode dibawah ini. Blok kode dibawah ini akan memasukkan nilai dari form yang dikirimkan jika semua validasi selesai.

                 <%
                 If Request.Form("entry") = "true" Then
                   strNama = Validasi(Request.Form("nama"))
                   strEmail = Validasi(Request.Form("email"))
                   strKomentar = Validasi(Request.Form("komentar"))

                   If (strNama = FALSE) OR (strEmail = FALSE) OR (strKomentar = FALSE) Then
                     strStatus = "Data kurang lengkap!"
                   Else
                     strQuery = "INSERT INTO daftar (nama, email, tanggal, komentar) VALUES " _
                       & "('" & strNama & "','" & strEmail & "'," _
                       & "#" & Now() & "#,'" & strKomentar & "')"
                     oConn.Execute strQuery
                   End If
                 End If
                 %>

Setelah proses diatas selesai, maka yang perlu dilakukan selanjutnya adalah mengambil data yang ada dalam database dan kemudian menampilkannya.

                 <%
                 strQuery = "SELECT nama, email, tanggal, komentar " _
                   & "FROM daftar ORDER BY tanggal DESC"

                 Set oRs = Server.CreateObject("ADODB.Recordset")
                 oRs.Source = strQuery
                 oRs.ActiveConnection = oConn
                 oRs.Open

                 While NOT oRs.EOF
                   Response.Write "<p>"
                   Response.Write "Oleh : " & oRs(0) _
                     & "&gt;<a href=""mailto:" & oRs(1) & """>" & oRs(1) & "</a>&gt;<br>"
                   Response.Write "Tanggal : " & FormatDateTime(oRs(2), 1) & "<br>"
                   Response.Write "Komentar : " & oRs(3) & "<br>
                   Response.Write "</p>"
                   oRs.MoveNext
                 Wend
                 %>

Untuk mendownload contoh artikel ini : /download/artikel/00,03,12,1.zip

Membuat Buku Tamu Berbasis Text

oleh: Andriko Perdana
                   
Kalau dalam artikel terdahulu sudah dibahas bagaimana membuat buku tamu dengan basis database, maka pada kesempatan ini akan kita bahas bagaimana membuat buku tamu yang berbasis text.
Komponennya antara lain:

Skrip ASP
Berisi program ASP untuk buku tamu
File dengan ekstensi .txt
Untuk menyimpan data pengunjung yang mengisi buku tamu
Skrip ASP
<%
' Ini untuk mengontrol isi buku tamu, dimana pada tengah malam ' pergantian tanggal isi buku tamu akan di hapus agar daftarnya ' tidak panjang'
Bisa juga anda atur agar tetap ditampilkan semuanya dengan ' mensetnya menjadi False
                  Const bDeleteEntries = True

' Ini untuk memudahkan kita menghapus isi buku tamu jika ada
' pengunjung yang mengisi dengan kata-kata tak senonoh atau
' lainnya, kita bisa hapus di file .txt-nya

                  Dim bForce
                  bForce = Request.QueryString("force")
                  ' bForce = ""

                  ' String variable unutk menaruh file yang dimana pesan
                  ' pengunjung disimpan
                  Dim strFile
                  strFile = Server.MapPath("bukutamu.txt")

                  ' Ini untuk menampilkan formulir yang akan diisi oleh pengunjung
                  If Request.Form.Count = 0 Then
                  %>

                  <H3>Mohon Isi Buku Tamu kami :</H3>
                  <FORM ACTION="bukutamu.asp" METHOD="post">
                  <TABLE>
                  <TR>
                  <TD ALIGN="right"><B>Nama:</B></TD>
                  <TD><INPUT TYPE="text" NAME="nama" SIZE="15"></INPUT></TD>
                  </TR>
                  <TR>
                  <TD ALIGN="right"><B>Pesan:</B></TD>
                  <TD><INPUT TYPE="text" NAME="pesan" SIZE="35"></INPUT></TD>
                  </TR>
                  </TABLE>
                  <INPUT TYPE="submit" VALUE="Masukkan ke buku tamu!"></INPUT>
                  </FORM>

                  <BR>

                  <H3>Pesan-pesan hari ini:</H3>

                  <!--#INCLUDE FILE="bukutamu.txt"-->

                  <%
                  Else

                  ' Masukkan data kedalam text file
                  Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
                  Set objFile = objFSO.OpenTextFile(strFile, 8, True)

                  objFile.Write "<B>"
                  objFile.Write Server.HTMLEncode(Request.Form("nama"))
                  objFile.Write ":</B> "
                  objFile.Write Server.HTMLEncode(Request.Form("pesan"))
                  objFile.Write "<BR>"
                  objFile.WriteLine ""

                  objFile.Close
                  Set objFile = Nothing
                  Set objFSO = Nothing

                  ' Ini untuk memberitahu pengunjung bahwa pesan mereka telah masuk
                  %>

                  <H3>Komentar dan pesan anda telah kami simpan!</H3>
                  <A HREF="bukutamu.asp">Kembali ke Buku Tamu</A>

                  <%
                  End If

                  If bDeleteEntries Then
                    Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
                    Set objFile = objFSO.GetFile(strFile)
                    If DateDiff("d", objFile.DateLastModified, Date()) <> 0 _
                      OR bForce <> "" Then
                      Set objFile = Nothing
                      Set objFile = objFSO.CreateTextFile(strFile, True)
                      ' Ini untuk mengisi file, jika belum ada pengunjung yang mengisi
                      objFile.Write "<B>Andriko:</B> "
                      objFile.WriteLine "Homepage anda bagus!<BR>"
                      objFile.Close
                    End If
                    Set objFile = Nothing
                    Set objFSO = Nothing
                  End If
                  %>

 Simpan script ini dengan nama bukutamu.asp
           

File .txt

File ini untuk menyimpan data dari pengunjung. Buka notepad anda lalu ketikkan sbb:
                  <B>Andriko:</B> Testing<BR>  ...(atau nama anda )

Kemudian simpan dengan nama bukutamu.txt dan taruh dalam direktori yang sama dengan file bukutamu.asp.
Untuk mendownload contoh artikel ini : /download/artikel/00,05,04,1.zip

Membuat Forum Diskusi

oleh: Gunadi
                 
Catatan: Script forum diskusi pada artikel ini bukan script yang dipakai pada forum diskusi di ASPIndonesia.net
Forum diskusi atau juga Buletin Board System (BBS), merupakan fasilitas penting yang dimiliki hampir oleh semua situs organisasi. Karena dengan fasilitas ini akan membuat interaksi yang lebih aktif dari anggotanya. Di sini kita akan membahas bagaimana cara membuat sebuah forum diskusi dengan memanfaatkan database Access.
Langkah pertama, buatlah sebuah database Access (misalnya kita namakan forumdb.mdb).
Kemudian kita buat juga tabel forum dengan struktur sebagai berikut :

                  Nama Field
                               Tipe Field
                  PID
                               Integer
                               (Autonumber)
                  PID_Prev
                               Integer
                  PID_Root
                               Integer
                  When
                               Date/Time
                  Name
                               Text(50)
                  Email
                               Text(50)
                  Subject
                               Text(75)
                  Body
                               Memo


Langkah kedua, buatlah sebuah prosedur pada script ASP yang berfungsi untuk menampilkan data yang PID_Root nya sama dengan 0 (awal semua topik).

                 <%Sub View
                   'Buka Koneksi ke database
                   Set v_conn = Server.CreatedObject("ADODB.Connection")
                   v_conn.Open (conn_string)

                   'Buat Query
                   v_strsql = "Select * From Forum Where PID_Root = 0 Order By When DESC"

                   'Buka RecordSet
                   set v_rs = Server.CreateObject("ADODB.Recordset")
                   v_rs.Open v_strsql, v_conn, 1, 1

                   'Tampilkan Record selama masih ada
                   Do Until v_rs.EOF
                     'Cek apakah PID = PID yang aktif (ditampilkan detailnya)
                     If v_rs("PID") = CInt(Request("pid")) then
                       Response.Write "<FONT COLOR='#FF0000'>"
                       Response.Write "• " & v_rs("Subject") & _
                       " --- (" & v_rs("Name") & ") " & _
                       v_rs("When") & "<BR>"
                       Response.Write "</FONT>"
                     else
                       Response.Write "• <A HREF='forum.asp?md=detail&pid=" & _
                       v_rs("PID") & "'>" & v_rs("Subject") & _
                       "</A> --- (" & rs("Name") & ") " & v_rs("When") & "<BR>"
                     end if
'Panggil Prosedur untuk menampilkan semua record yang rootnya PID ini
'Angka 1 menunjukkan paramter berapa kali spasi ditampilkan
'disebelah kiri record
                         Call DisplayChild(ParentID, 1)
                     v_rs.MoveNext
                   Loop

                   'Tutup Semua Object
                   v_rs.close
                   v_conn.close
                   Set v_rs = Nothing
                   Set v_conn = Nothing
                 End Sub%>

Langkah ketiga, buatlah sebuah prosedur lagi yang berfungsi untuk menampilkan semua record yang PID_Rootnya tidak sama dengan 0 (Child dari setiap topik). Dimana prosedur kita kali ini bersifat rekursif (memanggil dirinya sendiri)

                 <%Sub DisplayChild(ParentID, Spasi)

                   'Buka oneksi ke database
                   Set child_conn= Server.CreateObject("ADODB.Connection")
                   child_conn.Open (conn_string)

                   child_strSql = "Select * from forum where PID_Prev=" & _
                                   ParentID & " order by PID_Prev, When DESC"
                   Set child_rs = Server.CreateObject("ADODB.Recordset")
                   child_rs.Open child_strSql, child_conn, 1, 1

                   if child_rs.EOF or child_rs.BOF then
                     exit sub
                   end if

                   Do until child_rs.EOF
                     for blanknya = 1 to CInt(Spasi)
                       Response.Write "    "
                     next
                     if child_rs("PID") = CInt(Request("pid")) then
                       Response.Write "<FONT COLOR='#FF0000'>"
                       Response.Write "• " & child_rs("Subject") & _
                       " --- (" & child_rs("Name") & _
                       ") " child_rs("When") & "<BR>"
                       Response.Write "</FONT>"
                     else
                       Response.Write "• <A HREF='forum.asp?md=detail&pid=" & _
                       child_rs("PID") & "'>" & child_rs("Subject") & _
                           "</A> --- (" & child_rs("Name") & ") " & _
                       child_rs("When") & "<BR>"
                     end if
                   
                     Call DisplayChild(child_rs("PID"), Spasi + 1)
                     child_rs.Movenext
                   loop

                   'Tutup object
                   child_rs.close
                   set child_rs = nothing
                   child_conn.Close
                   set child_conn = nothing
                 End Sub%>

Langkah terakhir anda tinggal membuat form entry untuk Post dan Replynya, kemudian anda buat juga prosedur untuk menyimpan isi form tersebut.
Sehingga pada Script Utama anda tinggal memanggil semua prosedur yang telah dibuat berdasarkan
                 Request("md").

                 <HTML>
                 <HEAD>
                 <TITLE> Forum Diskusi </TITLE>
                 </HEAD>
                 <BODY BGCOLOR="#FFFFFF">
                 <%
                 select case Request("md")
                 case "detail"
                   Call Detail
                   Call View
                 case "post"
                   Call Post
                 case "reply"
                   Call Reply
                 case "save"
                   Call Save
                 case else
                   Call View
                 end select
                 %>
                 </BODY>
                 </HTML>

Untuk mencoba demo dari script di atas, silahkan buka alamat ini :
http://www6.ewebcity.com/castranet/forum.asp.
Jika ada kesalahan atau ingin memberikan komentar silahkan menghubungi gunadi_ilyas@mip.co.id.

Membuat Text Counter dengan ASP

oleh: Andriko Perdana
                  
Kadang-kadang kita perlu menambahkan counter di halaman depan homepage kita, gunanya sebagai masukan bagi kita untuk mengetahui seberapa sering homepage kita di akses orang. Sebenarnya counter bisa kita buat dengan mudah jika kita menggunakan Microsoft Frontpage, tapi artikel ini akan membahas bagaimana membuat counter dengan ASP.

Ada 2 komponen yang kita gunakan dalam membuat counter ini :
Skrip ASP
Berisi program ASP untuk counter
File dengen ekstensi .txt
Karena counter ini berbasis teks, maka file ini digunakan untuk menyimpan datanya.

Skrip ASP

Mudah sekali sebenarnya untuk membuatnya, pertama lihat skrip dibawah ini:

                  <%
                  ' buka FSO
                  Set FileObject = Server.CreateObject("Scripting.FileSystemObject")
                  HitsFile = Server.MapPath ("hits.txt")

                  ' buka text file yang berisi counter
                  Set InStream= FileObject.OpenTextFile (HitsFile, 1, false )
                  OldHits = Trim(InStream.ReadLine)
                  NewHits = OldHits + 1

                  ' buka text file yang sama untuk ditulis
                  Set OutStream= FileObject.CreateTextFile (HitsFile, True)
                  OutStream.WriteLine(NewHits)

                  ' tutup dan hapus semua object
                  Set FileObject = Nothing
                  InStream.Close
                  Set InStream = Nothing
                  OutStream.Close
                  Set OutStream = Nothing
                  %>


Kemudian di halaman homepage yang ingin diberi counter,kita buat seperti ini:

                  Homepage ini telah diakses <%= NewHits %> kali

                  Skrip lengkapnya :

                  <HTML>
                  <HEAD>
                    <TITLE>counter</TITLE>
                  </HEAD>

                  <BODY>
                  <%
                  ' buka FSO
                  Set FileObject = Server.CreateObject("Scripting.FileSystemObject")
                  HitsFile = Server.MapPath ("hits.txt")

                  ' buka text file yang berisi counter
                  Set InStream= FileObject.OpenTextFile (HitsFile, 1, false )
                  OldHits = Trim(InStream.ReadLine)
                  NewHits = OldHits + 1

                  ' buka text file yang sama untuk ditulis
                  Set OutStream= FileObject.CreateTextFile (HitsFile, True)
                  OutStream.WriteLine(NewHits)

                  ' tutup dan hapus semua object
                  Set FileObject = Nothing
                  InStream.Close
                  Set InStream = Nothing
                  OutStream.Close
                  Set OutStream = Nothing
                  %>

                  Homepage ini telah diakses <% = NewHits %> kali.

                  </BODY>
                  </HTML>

Simpan file ini sebagai counter.asp.

File dengen ekstensi .txt
Buka program text editor seperti notepad, lalu ketik angka 1, kemudian simpan dengan nama hits.txt. Simpan file ini satu direktori dengan counter.asp, jadi deh...:-).
Untuk contoh lihat : http://www.jasnita.net.id

Membuat Tips of The Day

oleh: Sony Ari Yuniarto
                  
Masih ingat script untuk menampilkan banner rotator yang beberapa waktu lalu dimuat? Berikut ini kembali saya sampaikan salah satu teknik untuk menampilkan pesan-pesan yang tersimpan di dalam file text ke sebuah tampilan halaman .asp secara dynamic , ketika halaman .asp tersebut di reload.
Kita akan memanfaatkan object Scripting untuk membaca isi dari sebuah file yang disimpan di web server.

Untuk merealisasikan teknik ini diperlukan 2 file sebagai berikut:
default.asp
Merupakan halaman .asp yang dipakai untuk menampilkan tips of the day.
tips.txt
Merupakan file dimana isi tips tersebut disimpan, tips.txt merupakan file yang akan dibaca oleh script yang terdapat di dalam default.asp
default.asp
Mekanisme untuk membaca isi file .txt yang dipakai oleh script .asp pada halaman ini adalah dengan memanfaatkan method OpenTextFile dari class module FileSystemObject, object
Scripting yang terdapat di web server IIS 4.0.

Tempatkan file tips.txt dimana saja pada webserver. Pada contoh ini, tips.txt akan
diletakkan pada directory yang selevel dengan default.asp. Script selengkapnya sebagai berikut:
                  <%
                  ' Variables
                  Dim objFile
                  Dim objStream
                  Dim TextNumber
                  Dim JumlahTips
                  Dim i

' Jumlah baris ini harus sama dengan jumlah tips yang ada
' dalam file tips.txt
JumlahTips = 30

' buat object FSO
                  Set objFile = Server.CreateObject("Scripting.FileSystemObject")

' buka file tips.txt
                  Set objStream = objFile.OpenTextFile(Server.MapPath ("tips.txt"))

' Randomize Timer ini berguna mendapatkan nilai random yang
' selalu berubah, sebagai tambahan dari function Rnd.
' Bereksperimenlah dengan memakai Rnd tanpa Randomize Timer,
' anda akan melihat perbedaannya.
                  Randomize Timer

' Ini untuk mendapatkan nilai baris secara random
                  TextNumber = Int(Rnd * JumlahTips)

' Jika belum sampai pada nilai baris yang sudah ditentukan,
' baris-baris sebelumnya dilewati
            For i = 1 to TextNumber
                                objStream.SkipLine
                                    Next

' Baris yang didapat secara random tersebut dibaca dengan ini
                  strText= objStream.ReadLine

' Tutup semua variabel
                  objStream.Close
                  Set objStream = Nothing
                  Set objFile = Nothing
                  %>
                  <html>
                  <head>
                  <title>Tips of The Day</title>
                  </head>
                  <body>
                    <% = strText %>
                  </body>

tips.txt
Isi dari file tips.txt merupakan kumpulan tip yang nantinya akan ditampilkan oleh file
default.asp. Anda dapat mengisikan berbagai pesan di dalam file ini, untuk memisahkan satu tip dengan tip lainnya silakan pisahkan dengan menekan tombol enter atau karakter line break.
Tidak ada batasan mengenai jumlah tips yang dapat dimasukkan, selama Anda ingat untuk merubah variabel JumlahTips yang ada.
Untuk mendownload contoh artikel ini : /download/artikel/00,03,20,1.zip
Untuk mencoba demo dari teknik diatas : /demo/00,03,20,1/

Menghitung Pengunjung yang Online

oleh: Andriko Perdana
                  
Kita dapat mengetahui jumlah pengunjung yang sedang online di situs kita. Ini berguna misalnya jika kita ingin menaruh program chatting di homepage, sehingga pengunjung dapat mengetahui apakah ada orang dalam ruangan chatting atau tidak (Pengunjung nggak bakalan mau masuk keruangan kosong....iya kan..:P)
Artikel ini akan membahas cara membuatnya dengan menggunakan file global.asa yang akan digunakan untuk menyimpan data variabel (jumlah hits pengunjung).

File global.asa ini akan berisi 4 buah event handling subroutine, yaitu:
1. Application_OnStart
2. Application_OnEnd
3. Session_OnStart
4. Session_OnEnd

Sebelumnya, Anda perlu mengetahui dasar-dasar penggunaan file global.asa. Untuk saat ini, artikel mengenai global.asa belum selesai ditulis. Mari kita lihat cara pembuatannya.

                  <SCRIPT LANGUAGE=VBScript RUNAT=Server>

                  Sub Application_OnStart
' Pada saat aplikasi dimulai, set Active = 0
' menunjukkan bahwa belum ada yang mengunjungi
                    Application("Active") = 0
                  End Sub

                  Sub Application_OnEnd
                  End Sub

                  Sub Session_OnStart
' Jika ada session baru, maka Active ditambah satu,
' menunjukkan jika ada satu pengunjung yang online
' Tiap session, variabel ini akan bertambah satu
                    Application.lock
                      Application("Active") = Application("Active") + 1
                    Application.unlock
                  End Sub

                  Sub Session_OnEnd
' Jika session sudah berakhir, artinya pengunjung sudah
' meninggalkan situs ini, maka Sctive dikurangi satu
                    Application.lock
                      Application("Active") = Application("Active") - 1
                    Application.unlock
                  End Sub

                  </SCRIPT>

Untuk menampilkan hasilnya, Anda tinggal menulis variabel Application("Active") dimanapun Anda kehendaki. Contohnya :

                  <html>
                  <head>
                  <title>Membuat Curret Visitor</title>
                  </head>
                  <body>
                    Anda adalah salah satu dari <% = Application("Active")%>
                    pengunjung kami saat ini
                  </body>
                  </html>

Jadi deh..gampang kan....:) Pada artikel yang lain, akan dijelaskan penggunaan teknik secara lebih canggih, sehingga dapat melakukan tracking pada pengunjung yang online.
Untuk contohnya dapat dilihat di http://www.jasnita.net.id

Menghitung Jumlah Akses pada Link

oleh: Gunadi
                   
Di milis ASPIndonesia.net pernah ada yang menanyakan bagaimana mengetahui berapa kali sebuah link/image diklik. Nah artikel ini sebagai gambaran jawaban atas pertanyaan tersebut.
Link model ini biasanya dipakai jika pemilik link ingin mengetahui berapa banyak link tersebut diakses orang dari tempat tertentu.
Dalam contoh ini kita andaikan mempunyai daftar data link yang tersimpan di dalam database Access dengan strutur tabel sebagai berikut :

                                              Nama Field
                                                          Tipe Field
                                              url
                                                          Text
                                              Title
                                                          Text
                                              Desc
                                                          Memo
                                              Contact_name
                                                          Text
                                              Contact_email
                                                          Text
                                              Hits
                                                          Number (long)


Untuk bisa menghitung berapa kali sebuah link diklik, kita akan melakukan proses yang ada dalam file
Click_Counter.asp, kemudian setelah data tersebut diproses, kita gunakan
Response.Redirect untuk mengarahkan user ke link yang dimaksud. Script
Click_Counter.asp dapat dilihat pada contoh dibawah ini:

                  <%
' Buka koneksi ke database yang
' menyimpan data-data link
                  Conn_String = "DRIVER={Microsoft Access Driver (*.mdb)};" _
                    & "DBQ=" & Server.MapPath("linkdb.mdb")

                  set my_conn= Server.CreateObject("ADODB.Connection")
                  set rst = Server.CreateObject("ADODB.Recordset")
                  my_Conn.Open (conn_string)

' Memeriksa data link yang ada dalam database
                  StrSql = "SELECT * FROM Link_Click " _
                    & "WHERE url='" & Request.QueryString("url") & "'"

                  rst.Open strSql, my_conn, 1, 1

                  Click_Counter = Rst("Hits")
                  url_link = Rst("url")

' Diperiksa apakah sudah ada akses yang tercatat
' ataukah nilai masih NULL
                  if (Click_Counter = null) or (Click_Counter = 0) then
                    Click_Counter = 0
                  end if

' Penambahan nilai counter
                  Click_Counter = Click_Counter + 1

' Masukkan nilai yang sudah ditambah kedalam database
                  strSql = "UPDATE Link_Click " _
                    & "SET Hits='" & Click_Counter & "' " _
                    & "WHERE url='" & Request.QueryString("url") & "'"

                  my_conn.Execute (StrSql)

' Tutup semua object
                  rst.Close
                  set rst = Nothing

                  my_conn.Close
                  set my_conn = nothing


                  ' Redirect ke link yang dituju
                  Response.redirect url_link
                  %>

Selanjutnya kita akan membuat file link.asp, yang merupakan link generator dari database linkdb.mdb tersebut. Script file tersebut dapat dilhat dibawah ini:

                  <%
' Buka koneksi ke database yang
' menyimpan data-data link
                  Conn_String = "DRIVER={Microsoft Access Driver (*.mdb)};" _
                    & "DBQ=" & Server.MapPath("linkdb.mdb")

                  set my_conn= Server.CreateObject("ADODB.Connection")
                  set rst = Server.CreateObject("ADODB.Recordset")
                  my_Conn.Open (conn_string)

' Ambil data link yang ada
                  StrSql = "SELECT * FROM Link_Click"
                  Rst.Open strSql, my_conn, 1, 1
                  %>

                  <HTML>
                  <HEAD>
                  <TITLE>Contoh Link Counter</TITLE>
                  </HEAD>

                  <BODY BGCOLOR="#FFFFFF">
                  <%
' Mendaftar link yang ada
                  do while not Rst.eof
                    Response.Write "<P>"
                    Response.Write "<A HREF='Click_Counter.asp?url=" _
                      & Rst("url") & "'>" & Rst("title") & "</A>"
                    Response.Write "(sudah diklik : " & Rst("Hits") & " kali)</BR>"
                    Response.Write Rst("Desc")
                    Response.Write "</P>"
                    Rst.MoveNext
                  loop

' Tutup semua object
                  rst.Close
                  Set rst = Nothing
                  my_conn.Close
                  set my_conn = nothing
                  %>

                  </BODY>
                  </HTML>

Skrip di atas bisa dikembangkan untuk iklan/link yang tarifnya berdasarkan banyaknya iklan/link tersebut diklik pengunjung.
Untuk mencoba demo dari teknik di atas buka alamat ini                  http://www6.ewebcity.com/ilumi/link/samplelink.asp

kemudian klik salah satu linknya. Setelah itu coba kembali ke alamat tersebut, lihat perbedaan datanya.
Jika ada kesalahan atau ingin memberikan komentar silahkan menghubungi gunadi_ilyas@mip.co.id

Memakai include pada Script ASP

oleh: Tirta K. Untario
                  
Penting bagi para programmer ASP untuk memakai include. Kegunaannya yang utama adalah untuk modularisasi kode. Include ada 2 jenis:

                  <!--#include file="namafile" -->
                  <!--#include virtual="namafile" -->

Parameter file
Parameter file menunjukkan posisi relatif file yang dituju dari halaman yang sedang dibuka. Lihatlah beberapa contoh dibawah ini.

                  <!--#include file="library.asp" -->

Contoh diatas menunjuk pada file library.asp yang berada pada direktori yang sama.

                  <!--#include file="scripts/library.asp" -->

Contoh diatas menunjuk pada file library.asp yang berada pada subdirektori scripts dibawah direktori yang sekarang.

                  <!--#include file="../scripts/library.asp" -->

Contoh diatas menunjuk pada file library.asp yang berada pada direktori scripts yang sejajar dengan direktori sekarang.

                  <!--#include file="/scripts/library.asp" -->

Jangan pakai contoh diatas. Ini menunjuk pada file library.asp yang berada pada root direktori harddisk, dan secara otomatis, hal ini dolarang oleh webserver.

Parameter virtual
Parameter virtual menunjukkan posisi file yang dituju dari root direktori virtual address. Lihatlah beberapa contoh dibawah ini. Contoh-contoh dibawah ini memakai domain http://localhost

                  <!--#include virtual="library.asp" -->

Contoh diatas menunjuk pada file http://localhost/library.asp

                  <!--#include virtual="/include/scripts/library.asp" -->

Contoh diatas menunjuk pada file http://localhost/include/scripts/library.asp

Karakteristik
Nama file yang akan diinclude tidak bisa berupa variabel. Contoh:

                  <% strIncludeFile = "library.asp" %>
                  <!--#include file=strIncludeFile -->

Ketika kita mencoba memakai conditional include, seperti contoh:

                  <% If intIndex = 1 Then %>
                     <!--#include file="content1.asp" -->
                  <% Else %>
                     <!--#include file="content2.asp" -->
                  <% End If %>

Maka file yang akan di-include akan dipanggil dulu semuanya, baru operasi IF akan dilakukan. Prioritas directive include pada script ASP adalah yang pertama, sehingga semua file include akan dipanggil dan disertakan terlebih dahulu sebelum ada kode ASP yang mulai diproses.

Directive include tidak bisa dimasukkan kedalam blok script ASP, melainkan harus diluar blok script ASP. Contohnya dapat dilihat pada kode-kode diatas.

Tips untuk Keamanan

1. Jangan menamakan file include Anda dengan .inc. Jika ada seseorang yang        mengetahui posisi file include Anda, maka dengan mudah ia dapat melihatnya lewat browser, dan mencuri kode-kode yang mungkin rahasia, karena file .inc akan dianggap sebagai text file biasa. Mesin pencari dan robot bisa saja menemukan dan mengindeks file include Anda.
2. Namakan file include Anda dengan .asp . File .asp, secara otomatis akan diproses oleh server, sehingga ketika ada yang berusaha mendownloadnya lewat browser, dia tidak dapat melihat source code-nya.

Memakai Response Object

oleh: Tirta K. Untario
                  
Response object ini sangat penting dan pasti akan dipakai sepanjang kita memakai ASP. Response, sesuai dengan namanya, akan mengirimkan data yang kita mau ke client. Kebalikannya dengan Request, yang akan mengambil data dari client. Ada beberapa Response yang akan sering dipakai didalam menulis script ASP.

Response.Write
Semua yang pernah menulis script ASP pasti pernah memakainya. Contoh:

                  <% Response.Write "Apakabar" %>

Catatan:
Operasi penggabungan string pada VBScript menggunakan operator &. Contoh:
                  strKalimat = "Ini kalimat" & "yang pertama" & "<br>"
                  Response.Cookies
Response.Cookies ini melakukan operasi penulisan cookies pada browser. Harus dilakukan sebelum ada data yang dikirimkan dari server ke client. Karena itu harus ditulis di awal halaman. Jika keadaan memaksa penulisan harus dilakukan ditengah-tengah halaman HTML, maka Response.Buffer harus di-set ke TRUE. Untuk dokumentasi lengkap mengenai Response.Cookies ini, dapat melihat dokumentasi yang datang dengan PWS atau IIS.

                  Response.Redirect

Response.Redirect ini mudah sekali dipahami. Ini akan me-redirect client ke halaman yang dituju. Contoh:

                  <% Response.Redirect "halamankedua.asp" %>

Hasil dari Response.Redirect ini dikirimkan bersama dengan HTTP Headers. Karena itu, sama seperti Response.Cookies, Response.Redirect ini harus ditulis sebelum ada data dikirim ke browser. Jika ingin menulis Response.Redirect ditengah-tengah halaman HTML, maka Response.Buffer harus di-set TRUE.

                  Response.Buffer

Ada 2 nilai yang bisa dimasukkan, yaitu:
1.Response.Buffer = FALSE 'Default
            2.Response.Buffer = TRUE

Nilai FALSE akan menjadikan script ASP dikirim ke client segera setelah tiap baris/blok selesai dieksekusi.
Nilai TRUE akan menjadikan script ASP akan dieksekusi dulu sampai selesai, kemudian hasil akhirnya baru dikirim client. Hal ini berguna jika kita perlu memakai Response yang hasilnya harus dikirimkan bersama HTTP Headers, seperti Response.Cookies, Response.Redirect, dan lainnya. Penggunaan Response.Buffer = TRUE ini disarankan, karena akan mempercepat eksekusi script.

Response.Buffer ini harus ditulis pada baris pertama sebuah script, jika script ini tidak memakai directive @. Jika script memakai directive @, maka Response.Buffer harus ditaruh di baris kedua sesudahnya.

                  Response.Flush
Response.Flush hanya bisa dipakai jika Response.Buffer=TRUE. Response.Flush ini akan mengirimkan data yang disimpan di-buffer ke client, walaupun eksekusi belum selesai. Contoh :

                  <% Response.Buffer = TRUE %>
                  <%
                  ' Dalam contoh ini, nilai x akan dikirimkan secara periodik
                  ' segera setelah selesai diproses
                    For x = 1 to 1000
                     Response.Write "Nilai ke : " & x
                     Response.Flush
                    Next
                  %>

                  Response.End
Response.End hanya bisa dipakai jika Response.Buffer=TRUE. Response.End ini akan menghentikan eksekusi script dan mengirimkan bagian yang selesai dieksekusi ke client. Contoh:

                  <% Response.Buffer = TRUE %>
                  <%
                  ' Pada contoh ini, hanya nilai 1 yang dikirimkan ke                         client,
                  ' karena eksekusi script berhenti.
                  For x = 1 to 1000
                     Response.Write "Nilai ke : " & x
                     Response.End
                  Next
                  %>
                  Response.Clear

Response.Clear hanya bisa dipakai jika Response.Buffer=TRUE. Response.Clear ini akan menghapus segala data yang tersimpan di-buffer, dan data tersebut tidak akan dikirimkan ke client. Contoh:

                  <% Response.Buffer = TRUE %>
                  <%
                  ' Pada contoh ini, tidak ada data yang dikirim
                    For x = 1 to 1000
                       Response.Write "Nilai ke : " & x
                    Next
                    Response.Clear
                  %>

Untuk method dan property yang lain dari Response object, biasanya jarang dipakai. Untuk dokumentasi lengkap mengenai Response object ini, dapat dilihat pada dokumentasi yang datang bersama PWS atau IIS.

Tampilan Data dalam Halaman

oleh: Ivan R. Lanin
                  
Recordset hasil query ke database kadang menghasilkan jumlah data yang cukup banyak sehingga tidak bisa ditampilkan sekaligus ke dalam halaman HTML. Jika jumlah record hanya sekitar 5 atau 20 record mungkin masih bisa ditampilkan dalam satu halaman. Tapi jika jumlahnya sudah mencapai 50, 100, atau lebih, selain tidak indah untuk dilihat untuk meload halaman dengan jumlah record sebanyak ini akan sangat lama. Artikel ini membahas cara untuk menampilkan halaman tampilan data dalam bentuk halaman yang masing-masing hanya mengandung jumlah data tertentu.

Contoh paling mudah konsep tampilan data dalam bentuk halaman adalah jika anda mencari sesuatu di search engine seperti AltaVista, Excite, dll. Data ditampilkan dalam jumlah tertentu per halaman (10 atau lainnya), dan jika anda ingin melihat data lainnya, tinggal menekan tombol navigasi 'next' atau 'previous'.

Di ASP, tampilan seperti itu dapat kita wujudkan dengan memanfaatkan properti PageSize dan AbsolutePage dari objek Recordset. PageSize menentukan jumlah record yang ditampilkan perhalaman, sedang AbsolutePage menentukan halaman yang ditampilkan.

Berikut contoh coding untuk menampilkan sebagian log file ASPIndonesia.net. Log file tersebut dicatat dalam file logs.mdb (format Access) dalam tabel tLOG.

                 <% @LANGUAGE="VBSCRIPT" %>
                 <% Option Explicit %>
                 <%
' konstanta ADO yang akan dipakai
                 const adOpenStatic = 3
                 const adLockReadOnly = 1
                 const adCmdUnknown = 0

' variabel
                 dim oConn, oRs, sSQL, sDBName
                 dim nPageSize, nPage, nPageCount
                 dim nRecord, nRecordCount, nFirstRecord, nLastRecord
                 dim aField
                 dim nFieldCount, nLoop

' inisialisasi pertama
                 sDBName = Server.Mappath("logs.mdb")
                 sSQL = "SELECT * FROM tLOG"
                 nPageSize = 12
                 nPage = Request.QueryString("pg")
                 if nPage = "" or not IsNumeric(nPage) then
                   nPage = 1
                 else
                   nPage = CInt(nPage)

Coding di atas adalah inisialisasi awal variabel. Nama database sesuaikan dengan lokasi fisik file database anda. Variabel nPageSize adalah jumlah record per halaman. Halaman yang ditampilkan diperoleh berdasarkan querystring 'pg'.

' buka connection
                 set oConn = Server.CreateObject("ADODB.Connection")
                 oConn.Provider = "Microsoft.Jet.OLEDB.4.0"
                 oConn.ConnectionString = "Data Source=" & sDBName
                 oConn.Open

' buka recordset
                 set oRs = Server.CreateObject("ADODB.Recordset")
                 oRs.Open sSQL, oConn, adOpenStatic, adLockReadOnly,                     adCmdUnknown

Selanjutnya buka koneksi ke database, dan tampilkan data jika recordset tidak kosong. Properti PageSize dari recordset diinisialisasikan sesuai dengan jumlah yang ditentukan oleh variabel nPageSize.

' tampilkan data jika ada data
                 if not oRs.EOF then
' penentuan jumlah record perhalaman
                   oRs.PageSize = nPageSize
                  
' hitung jumlah record, halaman, dan field
                   nRecordCount = oRs.RecordCount
                   nPageCount = oRs.PageCount
                   nFieldCount = oRs.Fields.Count
                  
' redim array field berdasarkan jumlah field
                   redim aField(nFieldCount, 2)
                  
' masukkan nama field ke dalam variabel array field
                   for nLoop = 0 to nFieldCount-1
                     aField(nLoop, 0) = oRs.Fields(nLoop).Name
                   next

Satu bagian yang cukup vital di sini adalah error trapping. Anda hanya menampilkan halaman mulai dari 1 sampai jumlah total halaman (properti PageCount).

' LANJUTAN DARI SCRIPT DIATAS
' penentuan halaman yang ditampilkan
                   if nPage < 1 then nPage = 1
                  
                   if nPage > nPageCount then nPage = nPageCount
                   oRs.AbsolutePage = nPage
                  
' penentuan nilai record pertama dan terakhir yang ditampilkan
                   nFirstRecord = (nPage - 1) * nPageSize + 1
                   nLastRecord = (nPage - 1) * nPageSize + nPageSize
                   if nLastRecord > nRecordCount then nLastRecord =                   nRecordCount
                 ' -----------------------------------------------------------------------------
                 %>
                 <html>
                 <head>
                   <title>
                     Data <% =nFirstRecord %>-<% =nLastRecord %> dari                                    <% =nRecordCount %>
                   </title>
                 </head>
                 <body>

Coding untuk navigasi dapat dilihat berikut ini.

                 <table width="100%">
                   <tr>
                     <td><b>Data <% =nFirstRecord %>-<% =nLastRecord %> dari
                       <% =nRecordCount %></b>
                     </td>
                     <td align="right">
                       <% if nPage > 1 then %>
                         <a href="default.asp?pg=1">
                           <img src="first.gif"  width="20" height="18"                                     border="0" alt="&lt;&lt;">
                         </a>
                         <a href="default.asp?pg=<%=(nPage-1)%>">
                           <img src="previous.gif"  width="20"                                      height="18" border="0" alt="&lt;">
                         </a>
                       <% end if %>

                       <% if nPage<nPageCount then %>
                         <a href="default.asp?pg=<%=(nPage+1)%>">
                           <img  src="next.gif" width="20" height="18"                                     border="0"  alt="&gt;">
                         </a>
                         <a href="default.asp?pg=<%=nPageCount%>">
                           <img src="last.gif"  width="20" height="18"                                      border="0" alt="&gt;&gt;">
                         </a>
                       <% end if %>
                     </td>
                   </tr>
                 </table>

                 <%
                 Response.Write "<table border=""1"" cellpadding=""3""               cellspacing=""0"">" & vbCrLf
                 Response.Write " <tr align=""center""                    bgcolor=""CCCCCC"">"  & vbCrLf
                 for nLoop = 0 to nFieldCount-1
                 Response.Write " <th><b>" &aField(nLoop, 0)&                          "</b></th>"  & vbCrLf
                 next
                 Response.Write " </tr>" & vbCrLf
                 for nRecord = nFirstRecord to nLastRecord
                   Response.Write " <tr valign=""top"">" & vbCrLf
                   for nLoop = 0 to nFieldCount-1
                     aField(nLoop, 1) = oRs(aField(nLoop, 0))
                     if aField(nLoop, 1) = "" then aField(nLoop, 1) =                           "&nbsp;"
                     Response.Write " <td>" &aField(nLoop, 1)& "</td>"                               & vbCrLf
                   next
                   Response.Write " </tr>" & vbCrLf
                   oRs.MoveNext
                   if oRs.EOF then exit for
                 next
                 Response.Write " </table>" & vbCrLf
                 %>

                 Coding untuk navigasi di bawah tabel.

                 <table width="100%">
                   <tr>
                     <td><b>Halaman <%=nPage%> dari                    <%=nPageCount%></b></td>
                     <td align="right">
                       <% if nPage>1 then %>
                         <a href="default.asp?pg=1">
                           <img src="first.gif" width="20" height="18"                                      border="0" alt="&lt;&lt;">
                         </a>
                         <a href="default.asp?pg=<%=(nPage-1)%>">
                           <img src="previous.gif" width="20"                                       height="18" border="0" alt="&lt;">
                         </a>
                       <% end if %>
                    
                       <% if nPage<nPageCount then %>
                         <a href="default.asp?pg=<%=(nPage+1)%>">
                           <img src="next.gif" width="20" height="18"                                      border="0" alt="&gt;">
                         </a>
                         <a href="default.asp?pg=<%=nPageCount%>">
                           <img src="last.gif" width="20" height="18"                                       border="0" alt="&gt;&gt;">
                         </a>
                       <% end if %>
                     </td>
                   </tr>
                 </table>
                 </body>
                 </html>
                 <% end if %>

Pelaksanaan clean up.
                 <%
                 ' clean up
                 Erase aField
                 oRs.Close
                 set oRs = nothing
                 oConn.Close
                 set oConn = nothing
                 %>

Demikian cara untuk menampilkan data dalam bentuk halaman. Anda dapat mengembangkan sendiri penggunaan lebih lanjutnya.
Untuk mendownload contoh artikel ini : /download/artikel/00,03,08,1.zip
Untuk mencoba demo dari teknik diatas : /demo/00,03,08,1/

Tips Menulis Script ASP

oleh: Tirta K. Untario

Inilah beberapa tips yang perlu dipakai dalam penulisan script ASP. Beberapa poin yang perlu dipertimbangkan dalam menulis script ASP adalah : kecepatan, kemudahan debugging, keamanan, dan skalabilitas.
Hal yang paling penting untuk diingat: aplikasi web merupakan aplikasi
client-server yang mempunyai tingkat concurrency tinggi, tidak sama dengan aplikasi desktop biasa yang bisa asal jalan. Kesalahan kecil pada aplikasi desktop mungkin bisa tidak berpengaruh, tetapi dalam aplikasi web, setelah halaman itu diakses secara bersama-sama, bisa mengakibatkan crash.
Namun perlu disadari bahwa untuk mencapai keempat poin diatas secara sempurna adalah tidak mungkin. Script yang cepat mungkin tidak mudah untuk di-debug, demikian juga sebaliknya.

Tips-tips pada artikel ini akan selalu diupdate jika ada perkembangan. Jika ada yang mempunyai tips yang belum tertulis disini, silakan mengirimkan tips Anda ke tku@aspindonesia.net

Tips #1 : Response.Buffer = TRUE

Ini akan mengakibatkan sebuah script ASP akan disimpan dulu didalam buffer di server dan diproses, jika semua proses sudah selesai, baru data akan dikirim kan ke client. Ini mempercepat eksekusi dariscript ASP secara keseluruhan.
                  

Tips #2 : @ENABLESESSIONSTATE = FALSE

Jangan gunakan session jika tidak perlu. Kebanyakan aplikasi web yang ada jarang membutuhkan session. Seluruh script di ASPIndonesia.net dibuat tanpa menggunakan session. Penggunaan session akan memperlambat webserver karena memerlukan memory dan proses yang lebih besar daripada jika tanpa session. Secara default, IIS memberikan session pada tiap script yang dieksekusi. Untuk mematikannya, tulislah <%@ENABLESESSIONSTATE = FALSE %> pada baris pertama tiap script. Artikel yang lebih dalam mengenai session sedang dalam penulisan.


Tips #3 : Gunakan adovbs.inc atau adojavas.inc seperlunya

File adovbs.inc dan adojavas.inc besarnya sekitar 14 Kb. Jika file ini di-include pada setiap script, jelas akan memperlambat server, walaupun perbedaannya kecil sekali. Ambil saja constant yang diperlukan, yang tidak Anda perlukan jangan dimasukkan. Biasanya yang diperlukan dalam aplikasi web biasa hanyalah 2 Kb dari 14 Kb yang ada.
                  

Tips #4 : Variabel lokal lebih cepat diakses daripada variabel global

Variabel lokal diakses lebih cepat daripada variabel global. Jika perlu memanggil variabel global berulang kali dalam satau halaman script, lebih baik variabel global itu dimasukkan dulu kedalam variabel lokal.
                  

Tips #5 : Hindari pemanggilan COM object lebih dari dua kali

Pemanggilan data dari COM object membutuhkan waktu yang lama. Jika data yang dipanggil dari COM object akan dipakai berulang kali dalam satu halaman script, maka masukkan data tersebut kedalam variabel lokal. Contoh : strNama = Request.Form("nama"). Jangan memanggil
Request.Form("nama") berulang kali dalam satu halaman. Cukup sekali saja, kemudian variabel strNama yang dipakai dalam pengolahan berikutnya.
                  
Tips #6 : Tipe data Collection itu lambat Tipe data collection biasanya diakses dengan statement For Each.
Tipe data ini lambat diakses. Jika dalam halaman script hal ini harus dilakukan berulang kali, masukkan data yang ada dalam collection kedalam variabel lokal, misalnya array.
                  
Tips #7 : Hindari redim array Hindari redimensioning array.
Redimesioning memerlukan waktu yang lama dan alokasi memory bisa kacau. Lebih baik deklarasikan array sebesar yang dibutuhkan pada awal script.
                  

Tips #8 : Satu scripting language per halaman

Jika satu halaman menggunakan VBScript, seluruh halaman itu lebih baik menggunakan VBScript, jangan JScript atau PerScript. Demikian juga sebaliknya. Pergantian bahasa scripting dalam satu halaman akan membuang waktu sia-sia, juga akan membingungkan Anda dalam melakukan debugging.
                  

Tips #9 : Response.Write dalam satu blok <% %> lebih cepat

Response.Write yang ditaruh dalam satu blok lebih cepat daripada yang ditaruh dalam blok yang terpisah-pisah. Artikel yang membahas hal ini lebih dalam dapat dilihat pada Inline Tags vsResponse.Write.
                  

Tips #10 : COM melawan script

Script yang dieksekusi dengan menggunakan interpreter, jelas lebih lambat daripada compiled objects. Jangan menaruh logika yang rumit dalam sebuah script. Jika script Anda sudah panjang sekali, lebih baik masukkan proses didalam script itu kedalam ActiveX Server Component.
                   

Tips #11 : Option Explicit

Tulislah Option Explicit jika Anda menggunakan VBScript. Selain mempermudah debugging, perintah ini akan membatasi deklarasi variable yang biasanya dapat dilakukan dengan bebas. Dengan begitu, memory tidak akan terbuang percuma untuk mendeklarasikan variabel yang terjadi karena salah ketik. Jika Anda menuliskan Option Explicit, maka setiap variabel sebelum digunakan harus dideklarasikan dengan perintah Dim. Contoh : Dim strNama. Bacalah dokumentasi VBScript untuk lebih jelasnya.
                  

Tips #12 : Gunakan #include

Gunakan #include demi modularisasi kode Anda. Hal ini akan sangat mempermudah Anda jika hendak mengubah sedikit bagian dari kode yang dipakai di seluruh aplikasi. Artikel yang membahas hal ini lebih dalam dapat dilihat pada Memakai #include pada Script ASP.
                  

Tips #13 : Namakan file include dengan .asp

Namakan file include Anda dengan .asp demi keamanan. Bacalah artikel Memakai #include pada Script ASP untuk penjelasan lebih lanjut.
                   

Tips #14 : Static lebih cepat daripada dinamis

Halaman web yang statis lebih cepat diproses daripada halaman web yang dinamis, yang membutuhkan akses ke database setiap kali ada request. Gunakan halaman statis jika dimungkinkan untuk mempercepat akses ke web Anda. IIS Resource Kit menyediakan komponen yang bernama ASP2HTM. Komponen ini berguna untuk mengubah file .asp menjadi file .htm.
                  

Tips #15 : Response.IsClientConnected

Jika Anda melakukan akses database yang panjang, atau akses ke program yang cukup lama, pastikan menggunakan Response.IsClientConnected untuk memeriksa apakah client masih berhubungan dengan server. Jika client sudah terputus dengan server (kemungkinan karena bosan), hentikan segera akses ke database atau program lain itu, demi menghemat resource yang tersedia.
                  

Tips #16 : Client side validation

Bergantunglah client-side validation, jangan server-side validation untuk memeriksa input dari user. Jelas lebih cepat dan mengurangi beban server. Jika data yang dimasukkan penting dan sulit divalidasi melalaui client, boleh saja dipakai server-side validation. Yang penting disini adalah menghemat waktu dan resource di server.
                  

Tips #17 : Jangan memakai On Error Resume Next jika belum final

Jika script yang dibuat belum final, jangan memakai On Error Resume Next. Error message standar yang ada jauh lebih mudah dipahami daripada membuat error message sendiri. Tentunya hal ini tidak berlaku bagi user. Karena itu, pakailah On Error Resume Next jika script yang ditulis sudah final.
                  

Tips #18 : Di global.asa jangan ada event yang kosong

Event yang kosong dalam global.asa tetap akan diperiksa oleh server, sehingga membuang waktu. Jika ada event yang tidak diperlukan, lebih baik jangan ditulis. Jika global.asa tidak diperlukan, lebih baik jangan dibuat. Artikel yang berisi penjelasan lebih lanjut mengenai
global.asa sedang dalam penulisan.
                  

Tips #19 : Jangan bergantung pada Session_OnEnd

Session_OnEnd kadangkala tidak dieksekusi oleh server. Jika diperlukan beberapa langkah pemrograman setelah session berakhir, lebih bai dilakukan pada script ASP yang terakhir diakses.
                  

Tips #20 : Optimasi ADO, IIS dan database server

Script ASP tidak berdiri sendiri, melainkan berhubungan erat dengan IIS, ADO dan database. Tiap elemen ini perlu dioptimasi untuk mendapatkan hasil yang optimal. Artikel mengenai optimasi ADO, IIS dan database ini sedang dalam penulisan.

0 komentar:

Posting Komentar