This Blog

Syndication

News

Awards

Microsoft MVP Logo
Grab this badge here!

Certificates

Transcript ID#: 6724122
Brainbench ASP.NET Certificate
 
Brainbench ASP.NET 2.0 Certificate
 
Brainbench .NET Framework 2.0 Certificate

Ahmad Masykur

var myObject = { "languages" : [ "C#", "VB.NET", "ASP.NET", "Javascript", "SDCC", "Assembler" ] }; //

May 2008 - Posts

  • Internet Explorer Open Modal Window

    Pada Internet Explorer terdapat salah satu fitur untuk membuat pop-up window  yang bersifat modal, yaitu ketika window pop-up muncul maka window pemanggilnya tidak bisa diakses (terkunci). Fasilitas ini sangat menarik karena dalam pembuatan aplikasi web seringkali harus membuat window kecil untuk input/pemilihan data.

    Lebih lengkap silakan baca di Internet Explorer Open Modal Window

    Share this post: | | | |
  • Object Oriented JavaScript : Overloading dan Type-Checking

    Pada dasarnya JavaScript merupakan dynamic language programming yang hanya tidak type-safe. Dalam JavaScript hanya mengenal lima macam tipe data string, number, boolean, function dan object. Setiap variable adalah variant yaitu dapat diisi dengan tipe data apa saja.

    Contoh:

    var i = 0;

    Variabel i juga dapat diisi dengan nilai string.

    var i = 0;
    i =
    "nilai i";

    Begitu pula dalam sebuah parameter fungsi, parameter dapat diisi dengan berbagai macam time data dan itu memang diperbolehkan dalam  javascript.

    function Penambahan(x, y) {
        return
    x + y;
    }

    Pada contoh kode di atas, nilai x dan y bisa diisi dengan angka (baik bulan / integer maupun pecahan / float) dan juga bisa diisi dengan string.

    function Penambahan(x, y) {
        return x + y;
    }
    Penambahan(1, 2);
    // menghasilkan nilai 3
    Penambahan("1", "2"); // menghasilkan nilai string "12"

    Dari contoh di atas, semua jenis data dapat masuk kedalam fungsi tanpa diperiksa tipe datanya. Bagaimana dengan overloading seperti yang umum dipake oleh bahasa pembrograman yang telah mendukung object oriented? Dalam JavaScript tidak mendukung overloading secara internal tapi dapat dilakukan sedikit trik supaya overloading dapat dilakukan pada JavaScript.

    JavaScript memilika satu keyword typeof untuk mengecek tipe data apa yang terdapat dalam variable. Fungsi penambahan di sebelumnya dapat dioverload seperti kode di bawah.

    function Penambahan(x, y) {
        // pengecekan apakah kedua parameter terisi atau tidak
        if ((typeof x == "undefined") || (typeof y ==
    "undefined)) {
            alert("Parameter x dan y harus diisi"
    );
            return null
    ;
        }
        // Jika x dan y adalah string
        if ((typeof x == "string") && (typeof y == "string"
    )) {
            return x + " plus "
    + y;
        }
        // Overload x dan y adalah number
        if ((typeof x == "number") && (typeof y == "number"
    )) {
            return
    x + y;
        }
    else
    {
            return null
    ;
        }
    }
    Penambahan(1, 2);
    // menghasilkan nilai 3
    Penambahan("1", "2"); // menghasilkan nilai string "1 plus 2"


    Keyword typeof hanya dapat mengecek object, function, boolean, string, dan number. Array dan object yang terdefinisi tidak dapat dicek melalui keyword ini. Untuk mengatasi masalah ini dapat digunakan contructor dari masing-masing variabel. Fungsi penambahan di dapat diganti dengan.

    function Penambahan(x, y) {
        // Jika x dan y adalah string
        if ((typeof
    .constructor == String) && (y.constructor == String)) {
            return x + " plus "
    + y;
        }
        // Overload x dan y adalah number
        if
    ((x.constructor == Number) && (y.constructor == Number)) {
             return
    x + y;
        }
        // Overload x dan y adalah array
        if
    (x.contructor == Array) && (y.constructor == Array) {
            var
    ret = [];
            var
    i=0;
            for
    (i=0; i < x.length; i++) {
                ret.push(x[ i ]+y[ i ]);
            }
            return
    ret;
        }
    else
    {
            return null
    ;
        }
    }
    var
    array
    Penambahan(1, 2);
    // menghasilkan nilai 3
    Penambahan("1", "2");
    // menghasilkan nilai string "1 plus 2"
    Penambahan([1, 2, 3], [2, 4, 5]); // menghasilkan nilai array [3, 6, 8]

    Selain type-checking, dalam fungsi JavaScript, terdapat satu array variabel yaitu arguments yang berisi semua parameter yang dimasukkan. Karena arguments berupa array, maka kita dapat memasukkan berapapun jumlah parameter tanpa batas. Sebagai contoh.

    function Penambahan() {
        var
    ret = 0;
       
    var
    i;
        for
    (i=0; i arguments.length; i++) {
            if
    (argumentsIdea.constructor == Number) {
                ret += argumentsIdea;
            }
        }
        return
    ret;
    }
    Penambahan(1, 2);        
    // menghasilkan nilai 3
    Penambahan(1, 2, 3);     
    // menghasilkan nilai 6
    Penambahan(1, 2, 3, "4");
    // menghasilkan nilai 6 karena parameter "4" bertipe string
                              // Dalam fungsi selain number tidak masuk dalam perhitungan

    Dengan type-checking dan variabel arguments, kita dapat membuat overloading function sebagaimana halnya bahasa pemprograman lain.

    Demikian pemaparan singkat mengenai salah satu fitur pemprograman object oriented menggunakan javascript. Semoga tulisan ini bisa bermanfaat bagi semua.

    Share this post: | | | |