BAB I PENDAHULUAN A. Pengenalan Komputer Komputer berasal dari kata latin yaitu camputare (to compute) yang artinya menghitung. Pada awalnya komputer diciptakan diperuntukkan bagi pengolahan data komputasi yang banyak digunakan dalam pengolahan matematis. Perkembangan komputer hingga saat sekarang ini membuat fungsi dan kategori komputer menjadi berkembang hingga perpaduan antara komunikasi dan hiburan. Saat ini komputer banyak digunakan sebagai sarana multimedia, sarana kantoran dan sarana komunikasi. Sebuah komputer secara blok dapat dijelaskan sebagai suatu urutan dimana ada masukan (data), ada unit yang memproses untuk menghasilkan suatu keluran (output).
Gambar 1. Blok Utama Komputer Secara umum komputer dikatakan sebagai sebuah alat elektronik yang terdiri dari komponen-komponen elektronik yang dikendalikan dengan prinsip logika. Pengendalian komponen-komponen ini digunakan agar komponen dapat berfungsi tidak hanya satu kali melainkan dapat diprogram untuk beberapa kali. Komponen-komponen yang terlihat secara fisik dikatakan sebagai hardware, komponen komputer yang digunakan untuk mengatur dan memanajemen peralatan dikatakan software.
Pemograman Berorientasi Objek (OOP) -- 1
© 2007, Busran, MT – Institut Teknologi Padang
Hardware komputer dikategorikan menjadi 3 yaitu hardware yang terhubung ke komputer yang difungsikan untuk mengambil dan memasukkan data, hardware yang dikelompokkan menjadi peralatan untuk mengolah data masukan secara matematika dan logika dan kategori hardware yang digunakan sebagai media tempat keluarnya hasil olahan data.
B. Bahasa pemrograman (programming language) Bahasa adalah suatu sistem untuk berkomunikasi. Bahasa tertulis menggunakan simbol (yaitu huruf) untuk membentuk kata. Dalam ilmu komputer, bahasa manusia disebut bahasa alamiah (natural languages), dimana komputer tidak bisa memahaminya, sehingga diperlukan suatu bahasa komputer. Komputer mengerjakan transformasi data berdasarkan kumpulan perintah program - yang telah dibuat oleh pemrogram. Kumpulan perintah ini harus dimengerti oleh komputer, berstruktur tertentu (syntax) dan bermakna. Bahasa pemrograman merupakan notasi untuk memberikan secara tepat program komputer. Berbeda dengan bahasa alamiah, mis. Bahasa Indonesia, Inggris dsb. yang merupakan bahasa alamiah(natural language), sintaks dan semantik bahasa pemrograman (komputer) ditentukan secara kaku, sehingga bahasa pemrograman juga disebut sebagai bahasa formal (formal language). Jadi, dalam bahasa pemrograman yang digunakan sebagai alat komunikasi untuk memberikan perintah kepada komputer tidak berlaku kebebasan berekspresi seperti laiknya dalam bahasa alamiah. Pemrograman dalam pengertian luas meliputi seluruh kegiatan yang tercakup dalam pembuatan program, termasuk analisis kebutuhan (requirement's analysis) dan keseluruhan tahapan dalam perencanaan (planning), perancangan (design) dan pewujudannya (implementation). Dalam pengertian yang lebih sempit, pemrograman merupakan pengkodean (coding atau program writing sama dengan penulisan program) dan pengujiannya (testing) berdasarkan rancangan tertentu. Pemahaman yang lebih sempit ini sering digunakan dalam pembuatan programprogram terapan komersial yang membedakan antara system analyst yang bertanggung jawab dalam menganalisa kebutuhan, perencanaan dan perancangan program dengan Pemograman Berorientasi Objek (OOP) -- 2
© 2007, Busran, MT – Institut Teknologi Padang
pemrogram (programmer) yang bertugas membuat kode program dan menguji kebenaran program.
Generasi bahasa pemrograman: • Generasi I: machine language • Generasi II: assembly language : Asssembler • Generasi III: high-level programming language: C, PASCAL, dsb. • Generasi IV: 4 GL (fourth-generation language): SQL
Gambar 2. Tingkatan bahasa komputer
Bahasa Tingkat Rendah (low-level language) Merupakan bahasa harware yang terkenal dengan assembly atau bahasa mesin. Lebih dekat ke mesin (hardware), dimana high-level programming languages dekat pada bahasa manusia. Untuk dapat memprogram bahasa tingkat rendah, programmer harus mengerti tentang manajemen hardware, register dan sistem alokasi memori.
Pemograman Berorientasi Objek (OOP) -- 3
© 2007, Busran, MT – Institut Teknologi Padang
- Bahasa Mesin (machine language) Bahasa mesin merupakan representasi tertulis machine code (kode mesin), yaitu kode operasi suatu mesin tertentu. Bahasa ini bersifat khusus untuk mesin tertentu dan "dimengerti" langsung oleh mesin, sehingga pelaksanaan proses sangat cepat. Bahasa mesin kelompok komputer tertentu berlainan dengan bahasa mesin kelompok komputer yang lain. Abstraksi bahasa ini adalah kumpulan kombinasi kode biner "0" dan "1" yang sangat tidak alamiah bagi kebanyakan orang - kecuali insinyur pembuat mesin komputer. Karena tidak alamiah bagi kebanyakan orang, bahasa mesin juga disebut bahasa tingkat rendah. - Bahasa Assembly (assembly language) Bahasa rakitan (assembly language) merupakan notasi untuk menyajikan bahasa mesin yang lebih mudah dibaca dan dipahami oleh manusia. Bahasa ini sudah menggunakan simbol alpabet yang bermakna (mnemonic). Contoh “MOV AX 1111”, pindahkan ke register AX nilai 1111. Proses data oleh komputer berdasarkan perintah bahasa rakitan adalah cepat. Meski demikian masih merepotkan-bahkan bagi kebanyakan pemrogram, karena masih harus mengingat-ingat tempat penyimpanan data. Bahasa rakitan juga bersifat khusus untuk mesin tertentu. Contoh: Assembler. - Bahasa Tingkat Tinggi (high-level language) Adalah bahasa pemrograman yang dekat dengan bahasa manusia, kelebihan utama dari bahasa ini adalah mudah untuk di baca, tulis, maupun diperbaharui, sebelum bisa dijalankan program harus terlebih dahulu di-compile. Contoh Ada, Algol, BASIC, COBOL, C, C++, FORTRAN, LISP, dan Pascal, dsb. Pada generasi bahasa pemrograman terakhir sekarang ini, kedua cara interpretasi dan kompilasi digabungkan dalam satu lingkungan pengembangan terpadu (IDE = integrated development environment). Cara interpretasi memudahkan dalam pembuatan program secara interaktif dan cara kompilasi menjadikan eksekusi program lebih cepat. Pertama program dikembangkan interaktif, kemudian setelah tidak ada kesalahan keseluruhan program dikompilasi. Contoh bahasa program seperti ini adalah Visual BASIC yang berbasis Pemograman Berorientasi Objek (OOP) -- 4
© 2007, Busran, MT – Institut Teknologi Padang
BASIC dan Delphi yang berbasis PASCAL. Bahasa tingkat tinggi bersifat portable. Program yang dibuat menggunakan bahasa tingkat tinggi pada suatu mesin komputer bersistem operasi tertentu, hampir 100% bisa digunakan pada berbagai mesin dengan aneka sistem operasi. Kalaupun ada perbaikan sifatnya kecil sekali. - 4GL (fourth-generation language) Lebih dekat ke bahasa manusia dibandingkan dengan high-level programming languages. Biasanya dipakai untuk mengakses database. Contoh perintah pada bahasa SQL: FIND ALL RECORDS WHERE NAME IS "JOHN". Bahasa generasi ke-4 ini lebih berkembang dibandingkan dengan bahasa-bahasa sebelumnya, perkembangan bahasa ini hingga penerapan pemograman client-server. C. Compiler dan Intepreter Compiler Adalah suatu program yang menterjemahkan bahasa program (source code) ke dalam bahasa objek (object code). Compiler menggabungkan keseluruhan bahasa program dikumpulkan kemudian disusun kembali. Tahapan Kompilasi: 1. Pertama source code ( program yang ditulis) dibaca ke memory komputer. 2. Source code tersebut diubah menjadi object code (bahasa assembly) . 3. Object code dihubungkan dengan library yang dibutuhkan untuk membentuk file yang bisa di eksekusi. Compiler memerlukan waktu untuk membuat suatu program yang dapat dieksekusi oleh komputer. Tetapi, program yang diproduksi oleh Compiler bisa berjalan lebih cepat dibandingkan dengan yang diproduksi oleh Interpreter, dan bersifat independen. Interpreter Berbeda dengan compiler, Interpreter menganalisis dan mengeksekusi setiap baris dari program tanpa melihat program secara keseluruhan. Keuntungan dari Interpreter Pemograman Berorientasi Objek (OOP) -- 5
© 2007, Busran, MT – Institut Teknologi Padang
adalah dalam eksekusi yang bisa dilakukan dengan segera. Tanpa melalui tahap kompilasi, untuk alasan ini interpreter digunakan pada saat pembuatan program berskala besar. Tipe Pemrograman 1. Pemrograman terstruktur Pemrograman terstruktur adalah cara pemrosesan data yang terstuktur. Terstruktur dalam: analisa, cara dan penulisan program. Prinsip pemrograman terstruktur: •
Gunakan rancangan pendekatan dari atas ke bawah (top down design).
•
Bagi program ke dalam modul-modul logika yang sejenis,
•
Gunakan sub-program untuk proses-proses sejenis yang sering digunakan.
•
Gunakan pengkodean terstruktur: IF ... THEN, DO ... WHILE dan lain-lainnya.
•
Hindarkan penggunaan perintah GO TO bila tidak diperlukan,
•
Gunakan nama-nama bermakna (mnemonic names), dan
•
Buat
dokumentasi
yang
akurat
dan
berarti.
Dalam perencanaan dan perancangan dari atas ke bawah, kategori dan penyelesaian masalah dimulai dari bagian yang utama kemudian dibagi menjadi bagian yang lebih kecil. Rancangan cara ini memudahkan penulisan, pengujian, koreksi dan dokumentasi program. Tahapan rancangan atas ke bawah dalam pemrograman: 1. Tentukan keluaran (output) yang diminta, masukan (input) yang diperlukan dan proses-proses utama yang diperlukan untuk transformasi data. 2. Membagi proses utama ke dalam modul-modul fungsional. 3. Buat algoritma msing-masing modul, dari modul utama ke sub-sub modul. 4. Setiap modul dalam proses rancangan atas ke bawah biasanya dibatasi dalam isi maupun batasan-batasan berikut: •
Setiap modul hanya mempunyai satu masukan dan keluaran
•
Setiap modul hanya mewakili satu fungsi program. Pemograman Berorientasi Objek (OOP) -- 6
© 2007, Busran, MT – Institut Teknologi Padang
Rancangan (design) terstruktur: 1. Membagi program menjadi sub-program 2. Menekankan fungsionalitas. 3. Cocok untuk sistem yang banyak mempunyai fungsi independen. Gaya penulisan program terstruktur:Menggunakan indentasi sehingga jelas struktur dan kontrol program.Memudahkan
pembacaan,
pemahaman,
penelusuran
kesalahan
dan
pembuatan koreksi. 2. Bahasa pemrograman prosedural – terstruktur Bahasa pemrograman prosedural adalah bahasa pemrograman yang mendukung pembuatan program sebagai kumpulan prosedur. Prosedur-prosedur ini dapat saling memanggil dan dipanggil dari manapun dalam program dan dapat menggunakan parameter yang berbeda-beda untuk setiap pemanggilan. Prosedur adalah bagian dari program untuk melakukan operasi-operasi yang sudah ditentukan dengan menggunakan parameter tertentu. Bahasa pemrograman terstruktur adalah pemrograman yang mendukung abstraksi data, pengkodean terstruktur dan kontrol program terstruktur. Kontrol program terstruktur: 1. Runtun - urut (sequence) 2. Pilihan (selection) 3. Pengulangan (repetition - loop)
D. Algoritma Perencanaan dan perancangan program komputer juga disebut pembuatan algoritma. Secara umum, algoritma: "kumpulan urutan perintah yang menentukan operasi-operasi tertentu yang diperlukan untuk menyelesaikan suatu masalah ataupun mengerjakan suatu tugas".
Pemograman Berorientasi Objek (OOP) -- 7
© 2007, Busran, MT – Institut Teknologi Padang
Algoritma merupakan pemberian (description) pelaksanaan suatu proses. Sebuah proses dikerjakan oleh pemroses mengikuti algoritma yang sudah dibuat. Algoritma merupakan urutan langkah instruksi yang logis. Bila data yang digunakan benar, maka algoritma akan selalu berhenti dengan memberikan hasil yang benar pula. Pembuatan algoritma harus selalu dikaitkan dengan: •
Kebenaran algoritma, yakni bila program selesai maka hasilnya juga benar.
•
Kompleksitas - lama dan jumlah - waktu proses dan penggunaan memori. Algoritma - dan tentu program yang baik, bercirikan: o Tepat sasaran: memenuhi spesifikasi pekerjaan dan bekerja sesuai tujuan. o Flexible dan portable: - Flexible untuk dikembangkan lebih lanjut Portable untuk digunakan pada berbagai sistem dan mesin. o Bersih dari kesalahan sistem ataupun lojik. o Murah:
Efisien dalam penggunaan piranti memori dan penyimpanan lainnya.
Cepat waktu pelaksanaannya.
Didokumentasi dengan baik untuk pengoperasian, pemeliharaan dan pengembangan.
Aturan Penulisan Teks Algoritma Tidak ada notasi yang baku dalam penulisan teks algoritma. Algoritma bukanlah program yang harus mengikuti aturan-aturan tertentu. Meski demikian, algoritma dituliskan mendekati gaya bahasa pemrograman umumnya. Misal, tulis nilai X dan Y, dituliskan dalam algoritma sebagai write(X,Y). Perhatikan dalam notasi write(X,Y) ini hanya memerintahkan penyajian nilai X ke piranti keluaran (output). Dalam notasi itu juga tidak memasalahkan format ataupun bentuk-bentuk tampilan lainnya, seperti dicetak dalam satu baris X dan Y, pemakaian pemisah antara X dan Y menggunakan koma atau spasi.
Pemograman Berorientasi Objek (OOP) -- 8
© 2007, Busran, MT – Institut Teknologi Padang
Hal-hal yang bersifat teknis ini baru dipikirkan waktu penulisan program. Algoritma adalah bebas bahasa pemrograman.
Teks Algoritma Mengikuti alur konsep pemrograman prosedural, suatu teks algoritma disusun dalam tiga bagian, yaitu: •
Bagian kepala algoritma,
•
Bagian deklarasi, dan
•
Bagian deskripsi algoritma.
Setiap bagian disertai dengan penjelasan atau dokumentasi tentang maksud pembuatan teks. Bagian penjelasan diawali dan diakhiri dengan simbol { dan }. Algoritma NAMA_ALGORITMA { Penjelasan tentang algoritma yang menguraikan secara
singkat
hal-hal
yang
dilakukan
oleh
algoritma
}
DEKLARASI { Semua nama yang digunakan, meliputi nama-nama: tipe, konstanta, variabel.
Juga
DESKRIPSI
{
nama Semua
sub-program
langkah
atau
aksi
dinyatkan algoritma
di
dituliskan
sini di
sini
} }
E. Diagram Alir (flowchart) Merupakan bentuk grafis/visual dari algoritma. Flowchart sering digunakan dalam pembuatan sebuah program untuk melihat aliran program secara keseluruhan. Bentuk umum dari simbol-simbol dalam diagram alir: Simbol untuk mulai (start) atau akhir (end) program Simbol untuk pembacaan (read) data atau penulisan hasil (write) pada layar Simbol untuk suatu proses terhadap data pada program Pemograman Berorientasi Objek (OOP) -- 9
© 2007, Busran, MT – Institut Teknologi Padang
Simbol untuk suatu pernyataan pilihan (optional) pada program. Simbol untuk penghubung antar aktifitas. Konektor, Simbol untuk memutus aktivitas karena keterbatasan media kertas. Sub program komentar
Contoh pemakaian flowchart:
Pemograman Berorientasi Objek (OOP) -- 10 © 2007, Busran, MT – Institut Teknologi Padang
F. Pemograman Berorientasi Objek Pemogram berorientasi objek adalah salah satu bentuk pemograman komputer yang bertitik tolak pada konsep objek. Pendekatan pemograman pada konsep objek masih menggunakan pendekatan terstruktur yaitu dimana bahasa program dibuat berdasarkan urutan login yang terstruktur, tetapi program yang dibuat bertitik tolak pada keberadaan objek yang ada. Pemograman pada objek ditujukan untuk mengatur sifat-sifat (properties) sebuah objek. Beberapa karakteristik yang menjadikan ciri-ciri pendekatan berorientasi objek antara lain: •
Pendekatan lebih pada data bukan pada prosedur atau fungsi
•
Program besar dibagi menjadi apa yang dinamakan objek
•
Data data dirancang menjadi suatu karakter dari objek
•
Objek objek dapat saling berintegrasi satu sama lain
Pemograman Berorientasi Objek (OOP) -- 11 © 2007, Busran, MT – Institut Teknologi Padang
Konsep Objek Sebuah objek dalam pemograman adalah diciptakan untuk menangani permasalahan besar. Objek tersebut memiliki propertis (sifat-sifat) seperti sifat alami sebuah objek sesungguhnya. Misalnya objek “Rumah”, sebuah rumah memiliki bagian bagian antara lain bagian atap, dinding, lantai dan lainnya. Masing-masing bagian dari objek tersebut memiliki sifat-sifat yang menjelaskan letak, kondisi objek tersebut. Misalnya lantai memiliki jenis keramik, marmer atau semen biasa juga lantai memiliki warna atau ukuran tertentu. a. Kelas Kelas mencakup sifat sifat yang dimiliki oleh objek. Kelas ini membungkus objek menjadi suatu bentuk yang memiliki sifat sifat tertentu. Sifat ini sering dikatan dengan properties. Misalnya elang, merpati, nuri, kasuari adalah suatu kelas dari burung. Suatu kelas tunggal dapat digunakan untuk membangun sejumlah objek. b. Abstraksi Abstraksi adalah salah satu cara untuk mengungkapkan hal hal yang paling penting (esensial) dari sebuah objek, misalnya warna mata, ukuran mata, bentuk mata adalah abstraksi sari sebuah objek mata c. Pewarisan (Inheritance) Pewarisan pada dasarnya adalah mengijinkan objek objek pada suatu kelas untuk mengakses variabel variabel serta fungsi fungsi yang termuat dalam kelas yang sudah terlebih dahulu terdefenisikan. d. Enkapsulasi Enkapsulasi (pembungkusan) berarti meninggalkan aspek eksternal dengan tujuan agar objek dapat menerima satu atau lebih metoda apa yang kita inginkan tanpa harus tau bagaimana objek itu melakukannya. Pemograman Berorientasi Objek (OOP) -- 12 © 2007, Busran, MT – Institut Teknologi Padang
e. Generalisasi dan Polimorfis Generalisasi /spesialisasi memungkinkan antar objek berbagi data serta perilaku yang sama pada hirarki pewarisan
Pemograman Berorientasi Objek (OOP) -- 13 © 2007, Busran, MT – Institut Teknologi Padang