Optimasi JavaScript (1) : Pendahuluan

Submitted by rismaka on July 4, 2009 at 7:00 am Tags: , , , , , ,

javascript

Setelah sekian lama tak terupdate, kini saatnya kita kembali ke tema seputar optimasi website pada umumnya dan wordpress khususnya. Dan topik yang akan dibahas kali ini adalah tentang cara mengoptimasi javascript. Tujuan dari optimasi ini tak lain adalah untuk meningkatkan performa atau kecepatan loading website atau blog. Kita sudah membahas ini berkali-kali, dan sudah berulang kali saya (siapa saya??!!) para web developer sangat menganjurkan pemilik web/blog agar mengoptimasi web/blog mereka terkait masalah kecepatan web dan juga kenyamanan pengunjung.

Apa itu JavaScript?

JavaScript adalah salah suatu bahasa program yang biasa digunakan untuk membuat halaman web lebih interaktif dan lebih atraktif. Menurut wikipedia:

JavaScript is a scripting language used to enable programmatic access to objects within other applications. It is primarily used in the form of client-side JavaScript for the development of dynamic websites. JavaScript is a dialect of the ECMAScript standard and is characterized as a dynamic, weakly typed, prototype-based language with first-class functions. JavaScript was influenced by many languages and was designed to look like Java, but to be easier for non-programmers to work with.

Dalam dunia web designer, javascript biasanya digunakan sebagai fitur tambahan atau “penghias” web, yaitu agar tampilan website ataupun blog dapat lebih bagus, baik itu dari segi animasi, visual, maupun kebergunaan. Dalam dunia periklanan, javascript juga digunakan untuk menampilkan iklan-iklan yang sesuai kata kunci (keyword) seperti contohnya google adsense.

Jika kita menyimpan (save) suatu halaman web dengan lengkap (web page complete), biasanya kita menemukan sebuah file yang berekstensi .js. File itulah yang disebut javascript. Pada blog wordpress pun juga demikian. Biasanya beberapa theme / template wordpress mempunyai fitur yang membutuhkan javascript di dalamnya. Javascript biasanya dipanggil di bagian header dengan kode sebagai berikut:

<script type="text/javascript" src="http://namadomain.com/nama_script.js">

Penggunaan JavaScript, Masih Perlukah?

Perlu tidaknya suatu web/blog menggunakan javascript tergantung dari kebergunaan javascript itu sendiri. Jika suatu web/blog ditujukan sebagai lahan pencari uang dengan bisnis PPC (paid per click) semisal adsense, adbrite, kliksaya, kumpulblogger, dan lain-lain, maka tidak bisa tidak javascript harus ada, karena itu merupakan kebutuhan primer yang tidak bisa tergantikan. Begitu pula jika suatu web/blog menggunakan template yang mendukung ajax (ajax compatibility) dalam aplikasinya, maka penggunaan javascript merupakan suatu keharusan.

Penggunaan javascript sebagai pemantau statistik kunjungan web, seperti google analytics, plugin statpress, wp-stats, dan lain sebagainya, juga merupakan kebutuhan yang dirasa penting bagi pemilik website/blog, walaupun dari sisi pengunjung/pembaca hal tersebut bukanlah sesuatu yang penting. Bisa dikatakan penggunaan javascript dalam hal ini adalah kebutuhan sekunder.

Lain halnya jika suatu web/blog menggunakan javascript sebagai penghias saja. Seperti misalnya penggunaan jcarousel sebagai animasi, ataupun pemasangan javascript untuk menampilkan “recent readers” seperti mybloglog, blogcatalog, follow this blog-nya google, ataupun game sudoku. Penggunaan javascript dalam hal ini merupakan kebutuhan tersier, dan seyogyanya untuk disingkirkan karena akan memperlambat kecepatan loading web/blog saja. Kecuali jika anda cukup egois untuk menyingkirkannya…

Pentingnya Optimasi JavaScript

Dibandingkan dengan komponen web yang lain seperti file html, CSS, gambar, icon, dan lain-lain, JavaScript merupakan komponen yang paling lama untuk divisualisasikan. Dan parahnya, jika dalam suatu halaman web terdapat javascript di bagian atas dari komponen tertentu (katakanlah=komponen A), maka komponen A itu tidak akan tertampilkan sebelum browser selesai memanggil file javascript tersebut. Hal inilah yang menyebabkan suatu halaman web/blog biasanya loadingnya lambat/lama.

Hal lainnya adalah biasanya javascript mempunyai ukuran file yang besar. File besar = lama waktu downloadnya = menurunkan performa. Disamping itu pula, hampir kebanyakan theme/template yang mendukung javascript, mempunyai banyak file javascript yang dipanggil secara tersendiri (terpisah), hal itu akan menyebabkan bertambahnya jumlah HTTP request, yang tentunya akan semakin menambah beban persoalan. Silahkan baca kembali artikel berjudul HTTP request sebagai faktor utama penentu performa web.

Saya ingin mengatakan, bahwa kunci utama optimasi javascript ini adalah meniadakan javascript itu sendiri. Itulah cara ekstrem-nya. Namun semua itu tergantung dari kebergunaannya bagi pengelola web/blog maupun bagi pengunjung. Jika kebutuhan kita akan javascript merupakan kebutuhan tersier, akan lebih bijaksana jika kita menyingkirkan semua javascript itu. Namun jka kebutuhan kita merupakan kebutuhan sekunder ataupun primer, ada baiknya jika kita menerapkan beberapa tips optimasi yang akan saya ulas pada pembahasan berikutnya. Sengaja saya membagi pembahasan mengenai javascript ini menjadi tiga artikel, karena setiap optimasi yang akan dilakukan membutuhkan penjabaran yang cukup lengkap.

Optimasi JavaScript Secara Umum

Pada dasarnya optimasi untuk javascript tidak berbeda jauh dengan optimasi untuk file Cascading StyleSheets (CSS), karena keduanya bersumber pada simbol atau karakter yang sama, yakni “huruf”, “angka”, dan “white space (ruang kosong), sehingga optimasinya pun tak jauh-jauh dari: kompress karakter, kompress ukuran file, kombinasi, letak kode pemanggilan, sumber (source) file yang akan dipanggil, dan lain-lain. Hal utama yang membedakan javascript dari CSS adalah karena javascript itu spesial. Ia tidak bisa dikompress dan dikombinasikan begitu saja. Ia pun tak bisa dipanggil dengan letak kode yang sembarang. Semua harus ada aturannya.

Bersambung insya Allah…

This entry was writen by rismaka, The Admin, A part time blogger, Biochemist, and Energy Consultant in PT. BKA. More profile on Contact.

48 Comments | Leave a respond | Back To Top

  • Prakasa Arya says:
    using Firefox 3.5 on Windows XP

    Tapi javascript membuat web menjadi lebih hidup dan atraktif :D. Yup betul, kadang ngekompres javascript malah jadi rusak fungsinya, beda ama CSS.

    Ditunggu kelanjutannya boss, dah gak sabar nih pengen memperdalam bahasa javascript :D

  • Dinda Watson says:
    using Firefox 3.5 on Windows XP

    Aku menggunakan java script seperlunya aja deh
    ga usah dipake untuk alert message, bahkan chatbox ditempatku aja ku hilangkan

  • ryan says:
    using Firefox 3.0.11 on Windows XP

    kalau dibandingkan dengan php, javascript itu seperti ini:

    Javascript – client side programming (diproses di browser)
    PHP – server side programming (dieksekusi di server)

    untuk sekarang PHP dan Javascript saling melengkapi, jadi kalau salah satunya ditiadakan, bukan tidak mungkin suatu aplikasi web akan timpang :)

  • nomercy says:
    using Firefox 3.0.11 on Linux Mint 7

    *menunggu sambungannya … :lol: hahaha*

    sangat menarik kalau bicara soal javascript …
    saya lebih memandang kegunaannya (usable) daripada hal lainnya … karena js merupakan jembatan penyeberangan untuk mengaplikasikan suatu perintah/fungsi khusus yang memang tidak dapat digantikan oleh kode html biasa …
    seberapa besar kerugian dari akibat pemakaian js seharusnya dibayar setimpal oleh kegunaannya …

    seandainya saja dalam dunia internet, khususnya browser dan koneksitas, tidak ada kendala maka seharusnya implementasi dari penggunaan javascript bebas dilakukan …

    • ganda says:
      using Internet Explorer 8.0; on Windows XP

      Untuk hal2 seperti itu, saya lebih menyarankan untuk tidak menggunakan library, karena semua fungsinya sudah terdapat pada satu lib tersebut. sebaiknya web developernya harus menghilangkan perbagian dari script tersebut, yah walau jelas ini akan menyita waktu yang sangat banyak dari pada membuat dari awal. Saran saya, script javascriptnya lebih baik di buat sendiri.

  • using Firefox 3.0.11 on Windows Server 2003

    javascript memang tergantung kebutuhan …
    jika memang itu dibutuhkan, pasanglah sesuai kebutuhan saja, atau lebih enaknya pasang javascript di footer (bisa nggak yak :D )

  • using Firefox 3.0.1 on Windows XP

    Script Bikinan Orang Jawa ini memang harus digunakan secara tepat……..salah2 malah pengunjung pada lari gara2 kebanyakan PopUp apalagi dengan sifatnya yang jalan di client membuat loadingnya lebih lama

  • Aden Kejawen says:
    using Firefox 3.0.1 on Windows XP

    Kalo butuh harus ada ya memang hrus ada kalo gak ya mending dihindari Javascriptnya

  • Darmawan says:
    using Firefox 3.0.11 on Windows XP

    pakai banyak javascript tp ringan bagaimana ya, kayak di blogspot biasanya hanya disuruh pasang di bagian belakang biar lebih ringan

    • rismaka says:
      using Firefox 3.5 on Windows XP

      Di bagian belakang maksudnya itu bagian bawah ya mas? Iya benar, salah satu bentuk optimasi ini adalah dengan memindah javascript ke bagian footer (kaki), dengan begitu proses render halaman kontent dapat berlangsung lebih cepat tanpa adanya javascript yg menghambat di bagian atas. Pembahasan ini nanti akan dituangkan pada artikel selanjutnya. Tunggu saja :)

  • Reza Fauzi says:
    using Firefox 3.5 on Windows XP

    cara bikin JS gimana sih?? hehe maklum bukan webmaster

  • nomercy says:
    using Firefox 3.0.11 on Linux Mint 7

    lama banget neh sambungannya … dah gak sabar sayanya … ada yang mau ditanyakan soal optimasi javascript nih …

    • rismaka says:
      using Firefox 3.5 on Windows XP

      Hahahah… sabar mas.. Saya juga lagi bingung nih gimana nulisnya. Mungkin saya-nya saja yang terlalu perfeksionis orangnya. Saya tidak bisa menulis dengan kalimat yang belum bisa dipahami oleh orang awam. Hasilnya adalah pusing sendiri, karena harus memikirkan kata-kata dan kalimat yang tepat :D (Dan juga saya lagi sibuk ngurus theme yang baru)

      FYI, dari kemarin saya coba menulis, hasilnya masih mentok di beberapa paragraf saja.. hiks…

  • infini3 says:
    using Firefox 3.5 on Windows Vista

    Wah, jadi penasaran nih artikel lanjutannya.

  • fanari says:
    using Firefox 3.5 on Windows XP

    saya optimasi JavaScript pakai YUI kompresor, terus saya letakkan tag script di bagian footer.
    eh apa bener memanggil framework javascript seperti jQuery sebaiknya langsung dari code.google.com? soalnya setelah baca2 artikel cara itu bisa meningkatkan kecepatan download paralel

    • rismaka says:
      using Firefox 3.5 on Windows XP

      YUI kompresor bagus tuh mas. Kalau saya biasa pakai gzip dan minify.

      Mengenai pemakaian framework tsb saya kurang tahu persisinya. Yang saya ketahui developer dari yahoo sendiri menyebutkan bahwa setiap javascript dapat menghambat download paralel, dengan kata lain sebelum sebuah javascript terpanggil, browser tidak dapat mendownload file-file lainnya (sekalipun file tsb paralel dg script tsb). Tapi entahlah kalau sekarang sudah bisa. Saya kurang mengikuti juga perkembangan yang ada.

      • ganda says:
        using Internet Explorer 8.0; on Windows XP

        dari yang saya baca di jQuery.com, memang sebaiknya langsung dari code.google.com, apalagi google menerapkan shared cache di web nya. CMIIW

        • rismaka says:
          using Firefox 3.5 on Windows XP

          Owh begitu ya.. Tapi berdasarkan pengalaman, saat saya mencobanya, malah lambat bang. Mungkin karena saat itu server google lagi lemot. Biasanya lemotnya itu di jam-jam malam.

          Saya pribadi lebih suka dengan menguploadnya di server sendiri, karena seimbang kecepatannya.

          • ganda says:
            using Internet Explorer 8.0; on Windows XP

            hmm… sepertinya memang googlenya yang lambat. apalagi google menangani bermacam2 layanan. hmm… wajar sih klo lambat. tapi bukankah download sudah menjadi paralel?

          • rismaka says:
            using Firefox 3.5 on Windows XP

            Iya, memang paralel. Tapi yang telah dijelaskan oleh developer yahoo sendiri, bahwa javascript akan menghambat download paralel utk file yang lain. Jadi bisa dikatakan, kalau javascriptnya belum terpanggil, maka file yang lain tidak akan terdownload.

          • ganda says:
            using Internet Explorer 8.0; on Windows XP

            bukannya tergantung browsernya? pada dasarnya kan browser mengunduh file 2 atau 4 file sekaligus. bukan begitu? Udah pernah mencobanya belum bro. bisa di test pakai firebug FX

  • abrari says:
    using Firefox 3.0.6 on Windows XP

    Yang paling penting dalam pemrograman (dan juga paling susah dan menyebalkan (karena itulah ilkom diperlukan :) )) tentu saja optimasi algoritmanya. Teknik mengurangi kompleksitas algoritma, efisiensi variabel, memori, pointer, serta hal-hal membingungkan lainnya.

    Walaupun file javaskripnya pendek, kecil, atau servernya ngebut, kalo algoritmanya “naif” (begitu istilah untuk algoritma yang kacau dan asal jadi) maka sang browser juga akan kebingungan untuk merepresentasikannya (mengeksekusinya).

    Ane sendiri juga gak mudeng :)

    Btw, boleh juga tuh peniadaan javaskrip. Biar kembali lagi ke internet zaman batu :)

  • phiy says:
    using Firefox 3.0.11 on Windows Vista

    *baca2 komen di atas*
    dulu aku juga pake twitter tools, tapi karna ada alasan khusus, jadi dicabut deh..

    kalo diliat dari sepinya widgetku, keknya blogku ga pake banyak javascript ya. keknya ini mah..

    trus, mau nanya, agak ga nyambung nih yak,
    pernah bahas AJAX ga?
    aku punya masalah di situ soalnya.
    coba mampir kemari dah bentaran:
    wordpress.org/support/topic/278108

    kalo bisa bantu, bilang2 yak :D

    • rismaka says:
      using Firefox 3.5 on Windows XP

      Kalau boleh tau kenapa twitter tools nya dicabut mas?

      Mengenai blogmu, sepertinya perlu dilihat source code-nya. Walaupun theme yang kita pakai tidak ada javascriptnya, tapi beberapa plugin suka menyisipkan javascript di bagian header. Jadi perlu diperiksa lagi source code blogmu.

      AJAX itu bukannya club sepakbola :D

      Saya copy paste aja ya pertanyaanmu di forum itu:

      Hi! I like this plugin, but i found a problem here.
      I choose to use AJAX, but it doesn’t work.

      On the description of this plugin, it’s said that:

      If you wish to use AJAX, the comment objects of your theme must has an ID like “comment-xxx”. It’s a standard of WordPress themes now, yet some themes may still not meet this requirement.

      So i think the problem’s come from my theme.

      The questions are:
      1) what is “ID like ‘comment-xxx’” ?
      2) can i fix this problem? How?

      Any help would be appreciated.

      Ada yang bisa bantu mas Phy ga ya???

      • ganda says:
        using Internet Explorer 8.0; on Windows XP

        bukannya wp 2.7 sudah support threaded comment? ngapain pakai plugin lagi yah? Untuk model ajax tersebut, katanya harus punya koment ID.

        Solusinya menurut saya begini, buka comments.php. Tapi berhubung comments.php isinya tidak bisa sama, contohnya saya menggunakan list untuk menampilkan komentar, sedangkan mas phiy pakai div. jadi saya tidak bisa spesifik menjelaskannya. harus lihat kode comments.php nya.

  • WordPress abc

    [...] pada bagian header. Hal ini dapat menghambat performa atau kecepatan loading blog. Lihat kembali kerugian yang disebabkan oleh penggunaan javascript. Yah, walaupun perbedaannya tidak signifikan, namun tetap saja dalam hal performa, faktor sekecil [...]

Leave a comment!