TEKNIK PEMROGRAMAN
7.5 TEKNIK PEMROGRAMAN
Teknik pemrograman atau dikenal juga sebagai programming paradigm adalah style (pendekatan) dasar dalam pemrograman hubungannya dengan bagaimana solusi-solusi dari masalah diformulasikan dalam bahasa pemrograman. Berikut ini beberapa programming paradigm yang popular di kalangan programmer.
7.5.1 Pemrograman Prosedural
Pemrograman prosedural didasarkan pada konsep prosedur. Prosedur kadang-kadang disebut sebagai routines, subroutines, methods atau fungsi merupakan bagian tertentu yang berisi urutan langkah untuk menyelesaikan masalah tertentu. Prosedur-prosedur ini dapat dipanggil setiap waktu selama eksekusi program dilakukan. Gambar 7.6 menunjukkan bagaimana konsep pemrograman prosedural dilakukan.
Gambar 7.6. Pemrograman prosedural.
Keuntungan dari pendekatan dengan pemrograman prosedural adalah: Kemampuan untuk menggunakan kembali kode yang sama pada
berbagai tempat tanpa harus menulis ulang.
Mudah dalam mengikuti alur pemrograman. Kuat sebagai dasar pemrograman modular
Bahasa pemrograman yang dapat digunakan dalam pemrograman prosedural haruslah dapat digunakan untuk membuat prosedur dan memanggilnya kembali. BASIC, PASCAL, C, COBOL, FORTRAN, PHP, Perl adalah bahasa-bahasa pemrograman yang dapat digunakan untuk pemrograman procedural.
7.5.2 Pemrograman Terstruktur
Pemrograman terstruktur sebenarnya merupakan bagian dari pemrograman prosedural. Pada level pengkodean, pemrograman terstruktur biasanya mudah diikuti karena struktur aliran yang bersifat urut dan berjenjang. Tujuan utama teknik pemrograman terstruktur adalah :
o membuat program yang benar o membuat program yang dapat dipercaya o membuat program yang mudah dibaca, dipahami dan dikoreksi sehingga
mudah ketika dimodifikasi di masa dating. Ada 3 tiga komponen dalam pemrograman terstruktur, yaitu top-down
design, modular design, dan structured coding. top-down design
Top down design dimulai dengan penentuan tujuan program secara menyeluruh dan bukan pada bagaimana cara mencapainya. Setelah tujuan terdefinisi dengan jelas, barulah dibuat garis besar proses yang akan dilaksanakan. Kemudian secara bertahap garis besar ini diuraikan menjadi tahapan-tahapan yang lebih rinci, sehingga akhirnya semua bagian program selesai. Contoh pada Gambar 7.7 memperlihatkan bagaimana top-down design dilakukan.
Pada Gambar 7.7, tujuan dari program adalah mencari luas segitiga. Gambar sebelah kiri menunjukkan garis besar proses yang akan dilakukan program. Sedangkan gambar sebelah kanan merupakan detil proses untuk masing-masing bagian. Pada persoalan yang sederhana seperti di atas model top-down design tidak banyak memberikan manfaat, namun jika masalah semakin kompleks, model ini akan sangat bermanfaat.
Gambar 7.7. Top-Down Design.
modular design Modular design adalah membagi program dalam modul-modul yang lebih
kecil yang lebih sederhana. Sebenarnya ketika melakukan top-down design kita juga sekaligus sudah merencanakan dan melakukan modular design.
Setiap modul program terdiri dari dari sekumpulan pernyataan yang memiliki fungsi/kegunaan tertentu di dalam program. Secara umum, apapun program yang akan dibuat, biasanya mengandung bagian-bagian berikut ini:
o Dokumentasi program o Bagian pemasukan data o Bagian pemeriksaan data o Bagian manipulasi dan perhitungan terhadap data o Bagian pembaharuan file (file update) o Pengubahan data (editing) o Pembuatan laporan (report Generator) Dengan menggunakan modular design, kita dapat membuat bagian-
bagian di atas sebagai suatu modul yang terpisah-terpisah.
structured coding Structured coding atau kodifikasi terstruktur terdiri dari dua hal: o Cara penulisan yang terstruktur
Cara penulisan yang terstruktur akan sangat memudahkan dalam membaca program dan memperbaiki jika ada kesalahan. Perhatikan contoh berikut:
Contoh 7.1. Kode 1
If JlhAnak > 3 Then PTKP = PTKP + (3 * 120000) Else PTKP = PTKP + (JlhAnak * 120000) End If
Kode 2
If JlhAnak > 3 Then PTKP = PTKP + (3 * 120000) Else PTKP = PTKP + (JlhAnak * 120000) End If
Perhatikan kedua potongan kode di atas dan kita lihat bagaimana penulisan yang terstruktur memberikan hasil yang berbeda. Kode
2 jauh lebih mudah dibaca dari pada Kode 1. Cara penulisan yang terstruktur dapat dilakukan dengan: Menggunakan identitas atau judul atau keterangan pada baris,
namun tidak boleh berlebihan. Menggunakan indentasi seperti terlihat contoh 7.1.
o Penggunaan pernyataan secara terstruktur. Penggunaan pernyataan terstruktur yang dimaksud disini adalah
penggunaan satu atau lebih struktur algoritma yang akan kita pelajari di Bab 9, yaitu struktur berurutan, struktur pemilihan dan struktur pengulangan.
Bahasa pemrograman yang dapat digunakan untuk pemrograman procedural, hampir seluruhnya dapat digunakan untuk pemrograman terstruktur. Buku ini sebagian besar akan membahas bagian algoritma dan Bahasa pemrograman yang dapat digunakan untuk pemrograman procedural, hampir seluruhnya dapat digunakan untuk pemrograman terstruktur. Buku ini sebagian besar akan membahas bagian algoritma dan
7.5.3 Pemrograman Berorientasi Obyek
Pemrograman Berorientasi Obyek (Object Oriented Programming – OOP) adalah programming paradigm yang menggunakan obyek dan interaksinya untuk merancang aplikasi dan program komputer. OOP tidak banyak digunakan sebelum awal tahun 1990an. Tapi sekarang menjadi sesuatu yang sudah lumrah digunakan. Bahasa-bahasa pemrograman seperti keluarga dotNet dari Microsoft (Visual Basic.Net, Visual C#, dan Visual J), Borland Delphi, Java, Phyton, PHP versi 5 ke atas, C++ dan banyak lainnya merupakan bahasa pemrograman yang mendukung konsep OOP.
Beberapa prinsip yang menjadi dasar OOP akan dijelaskan berikut ini. Class
Class atau Kelas mendefinisikan karakteristik abstrak dari sesuatu (object) termasuk atribut atau sifat-sifat dari sesuatu dan apa yang dapat dikerjakan oleh sesuatu (method). Sebagai contoh, mobil adalah sebuah kelas yang memiliki attribut warna, merek, tipe dan lain-lain. Mobil juga punya method antara lain, maju, mundur dan berhenti (lihat Gambar 7.8).
Object Object adalah contoh dari kelas yang sudah didefinisikan. Atribut dan
method dari kelas secara otomatis akan menurun pada object namun dengan kekhususan. Sebagai ilustrasi kita perhatikan Gambar 7.8. pada gambar tersebut, kita bisa identifikasi kelasnya adalah mobil dengan atribut dan methodnya. Objectnya adalah sebuah mobil sedan dengan merk Toyota, dan warnanya adalah merah. Sedan itu juga memiliki method maju, mundur dan berhenti. Pada kasus ini mobil sedan disebut sebagai instance dari kelas mobil.
Gambar 7.8. Class, object, attribute dan method.
Method Method adalah kemampuan dari object atau kelas. Atau dengan kata lain
adalah apa yang bisa dilakukan oleh suatu object. Pada contoh diatas mobil sedan mampu maju, mundur dan berhenti.
Message Passing Message parsing atau kadang disebut sebagai interfacing adalah proses
dimana suatu object mengirim data pada object lain atau meminta object lain untuk menjalankan suatu method.
Inheritance Inheritance atau pewarisan adalah prinsip pewarisan sifat dari orang tua
ke anak atau turunannya yang diterapkan pad kelas. Orang tua memiliki atribut dan method yang lebih umum dibandingkan dengan anak atau turunannya (Gambar 7.9).
Gambar 7.9. Pewarisan.
Seperti terlihat pada gambar 7.9, mobil adalah orang tua dan mungkin dapat dibagi menjadi anak kelas seperti sedan, truk dan bus. Misalnya mobil memiliki atribut warna dan method maju, maka baik sedan, truk dan bus secara otomatis akan memiliki atribut dan method yang sama. Hal ini sangat menguntungkan dalam pemrograman, karena kita hanya perlu mengetikkan kode sekali saja untuk semua. Selain atribut dan method yang dimiliki oleh orang tuanya, anak kelas juga dapat memiliki atribut dan method yang hanya berlaku untuk dirinya.
Encapsulation Prinsip encapsulation adalah prinsip penyembunyian detil dari sebuah
kelas terhadap object yang berinteraksi terhadapnya. Sebagai contoh ketika kita menjalankan mobil, sebenarnya kita sedang berinteraksi dan kita meminta kepada mobil untuk menjalankan methodnya seperti maju, mundur atau berhenti. Kita berinteraksi hanya dengan beberapa bagian dari mobil (interface) seperti persneling, setir, pijakan gas, pijakan rem dan bagian lain. Tapi detil proses yang terjadi didalam mobil bagaimana bisa maju, mundur atau berhenti kita tidak perlu tahu.
Abstraction Abstraction atau disebut juga composition merupakan prinsip
penyederhanaan dari realitas kompleks dengan cara memodelkan kelas sesuai dengan masalahnya. Untuk lebih memperjelas pengertian mari kita lihat Gambar 7.10. Pada gambar tersebut terlihat sebuah mobil jika dipecah-pecah bagian-bagiannya kita akan dapatkan seperti ban, mesin, rangka mobil, kaca, dan lain-lain dan hal in berlaku sebaliknya. Jika kita gabungkan bagian-bagian tersebut maka kita akan mendapatkan sebuah kelas mobil.
Gambar 7.10. Contoh abstraction