All Articles

Object-Oriented-Programming and a little knowledge about DartLang, in my version

Hai, apa kabar teman?

Kali ini aku bakal sharing tentang Object-Oriented Programming atau yang biasa disingkat OOP. Ya ini lebih ke review materi kuliahku sekitar 2 tahun lalu. Tapi kali ini dengan bahasa yang berbeda. Kalo dulu waktu jaman angkatanku menggunakan bahasa C# (C-Sharp).

Object

Sekarang untuk angkatan dibawahku, mereka menggunakan bahasa Dart. Yups Dart, itu lho bahasa baru yang sedang dikembangin sama Google bersamaan dengan Framework Flutter. Dan aku dapet tantangan buat sharing ke adik tingkat tentang OOP tapi menggunakan bahasa Dart.

Aku coba tulis ringkasan materinya disini. Tentunya ini adalah versi ku, apa saja yang aku tau tentang OOP dan Dart.

Oke, Langsung aja. Biar nggak kepanjangan…

OOP. Ya Object-Oriented Programming. Kalo diterjemahkan ke Bahasa Indonesia jadi Pemrograman Berorientasikan Objek. Ya, objek disini jadi karakter utama yang bakal berperan sebagai acuan kita ketika sedang ngoding. Kita fokus kepada objek yang nantinya memiliki properties dan behavior. Apa itu??

Jadi kita analogikan objeknya adalah mobil. Nah yang dimaksud properties disini adalah bagian-bagian dari objek atau apa-apa saja yang ada di objek. Karena contohnya adalah mobil, berarti properties nya bisa pintu mobil, ban, kaca mobil, wiper, setir, jok mobil, dan lain-lain yang semuanya adalah bagian dari mobil itu sendiri.

Loh, kalo behavior? Behavior itu adalah tingkah laku dari objek tersebut. Bisa ngapain aja sih mobil?. Jadi mobil bisa berjalan kedepan, mundur, belok kanan dan kiri, ngerem, membunyikan klakson, dan lain-lain. Itu tadi adalah behavior.

Kita langsung praktek ya. Jadi misalnya kita buat sekolah untuk superhero, anggap seperti Sky High atau Yuei Gakuennya Boku no Hero Academia gitu (kalo pecinta anime pasti tau). Nah disini kalian berperan sebagai wali kelas dalam sebuah kelas yang isinya superhero amatir semua.

Kalian diharuskan untuk mencatat dan menampilkan data diri siswanya beserta skill atau kesaktian yang mereka punya. Nah disini kalian akan membuat sebuah aplikasi sederhana untuk mencatatnya karena kalau menggunakan kertas itu kuno banget.

Langsung ke prakteknya…

Pertama, kalian harus tau kira-kira siapa yang pantas dijadikan objeknya. Disini kita ambil siswa sebagai objeknya. Lalu selanjutnya data apa saja yang akan dicatat dari si objek siswa itu. Sesuai yang ada diatas tadi, maka kita akan mencatat nama lengkap, tanggal lahir, alamat, dan kekuatan yang dimiliki oleh siswa tersebut.

    class Student {        
        String nama;
        String alamat;
        String tglLahir;
        String kekuatan;

        Student(this.nama, this.alamat, this.tglLahir, this.kekuatan);

        studentPower() {
            print("${nama} bisa ${kekuatan}");
        }
    }

Kenapa aku buat Class disini? Karena aku akan membuat sebuah blueprint atau kerangka yang nantinya akan menampung semua properties dan behavior yang ada pada setiap objek siswa yang nanti akan aku buat. Lalu didalamnya saya masukkan properties yang dibutuhkan oleh objek. Yaitu nama lengkap, tanggal lahir, alamat, dan kekuatan para siswa.

Dan aku juga buat konstruktor, tujuannya adalah untuk membuat kerangkanya yang akan dipakai ketika akan mengisi properties atau behavior kepada objek tersebut. Dan sedikit tentang class konstruktor, class konstruktor adalah class yang di-load atau dijalankan pertama kali ketika program atau aplikasi dijalankan. Biasanya digunakan untuk menentukan nilai atau kondisi awal ketika aplikasi tersebut dijalankan.

Kemudian pada method main, aku membuat objek siswa baru. Dengan memasukkan data para siswa kedalam objek Student. Maka aku sekarang mempunyai objek mahasiswa yang bisa digunakan atau ditampilkan. Kemudian sesuai aplikasi yang akan kita buat adalah bisa menyimpan dan menampilkan data para siswa Sky High.

    var ana = new Student("Ana", "Yogyakarta", "26 Februari 1999", "Terbang");
    var bruce = new Student("Bruce", "Bengkulu", "1 Maret 1999", "Mengeluarkan Kentut");
    var ryan =new Student("Ryan", "Kalimantan", "4 April 1999", "Mengendalikan Api");
    var lucas = new Student("Lucas", "Lampung", "21 Juni 1999", "Menjadi Batu");

Membuat list baru untuk wadah menampung objek siswa yang sudah dibuat.

    List<Student> student = new List<Student>();

Menambahkan data siswa kedalam list.

    student.add(ana);
    student.add(bruce);
    student.add(ryan);
    student.add(lucas);

Kemudian dikeluarkan properties objeknya dan dibuatkan format sederhana untuk menampilkannya sebagai data siswa.

    var mappedStudent = student.map((n) => 'Nama = ${n.nama}, Alamat = ${n.alamat}, TTL = ${n.tglLahir},  Kekuatan = ${n.kekuatan}');

Akhirnya ditampilkan menggunakan print method yang ada di bahasa Dart.

    print("Data Siswa Sekolah Superhero Sky High");
    mappedStudent.forEach((n) => print(n));

Nah ini dia hasil akhirnyaa. Hasil

Masih sederhana, cuman menurutku ini udah bisa menjelaskan tentang konsep Object-Oriented Programming yang kita bahas tadi diatas. Sebenarnya di OOP ada 4 konsep dasar yaitu Encapsulation, Abstraction, Inheritance, dan Polymorphism. Dan ini tadi kita secara tidak sadar menggunakan yang konsep Encapsulation.

Encapsulation adalah konsep yang ada di OOP yang bertujuan untuk membungkus atau mengkapsulkan data dan metode yang tersembunyi dalam sebuah class agar tidak dapat di akses dari luar class, Encapsulation juga sangaat penting untuk keamanan serta menghindari dari kesalahan permrograman, nah tadi kan ada kata-kata menkapsulkan atau membungkus nah pembungkusan disini bertujuan untuk menjaga suatu proses program agar tidak dapat diakses secara sembarangan atau di intervensi oleh program lain. sebetulnya dasar encapsulation adalah untuk information hiding dan interface to access data doang.

Sekian aja reviewnya, semoga nggak kepanjangan dan masih enak buat dimengerti. Jangan lupa sarapan, makan siang, makan malemnya. Jangan kebanyakan begadang, kasian ragamu.


Ditulis sambil dengerin lagu di spotify
Lagunya EXO
Di kamar kos tercinta
Bantul, Yogyakarta