P. 1
MAKALAH ALGORITMA 2

MAKALAH ALGORITMA 2

|Views: 2,718|Likes:
Published by Santi Puspitasari

More info:

Published by: Santi Puspitasari on Mar 22, 2011
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as DOCX, PDF, TXT or read online from Scribd
See more
See less

12/09/2013

pdf

text

original

1|P a ge

MAKALAH ALGORITMA
PENGENALAN ALGORITMA & PENGENALAN TEHNIK ± TEHNIK BAHASA PEMROGRAMAN

UNIVERSITAS GUNADARMA FAKULTAS ILMU KOMPUTER BEKASI 2011
Disusun oleh : 

    

Ari Sediana Nuriman Sufgiarto Santi Puspitasari Sandy Prabowo Nunik Arvin Amari

2|P a ge

KATA PENGANTAR
Puji syukur kami panjatkan kehadirat Tuhan Yang Maha Esa karena atas berkat rahmatnya penyusunan makalah dengan judul ³Pengenalan Algoritma & Pengenalan Tehnik ± tehnik Bahasa Pemrograman´ ini dapat diselesaikan dengan baik. Dan berkat rahmat ± Nya kami mendapatkan pengetahuan dan wawasan sehingga kami menjadi tahu tentang pentingnya mempelajari bahasa pemrograman, dan perlunya kita mengenal tehnik ± tehnik pemrograman. Tidak lupa kami ucapkan terima kasih kepada para narasumber dari sejumlah informasi yang kami dapatkan dari internet. Selain itu kami juga mengucapkan terima kasih yang sebesar ± besarnya kepada Bpk. Makmun selaku dosen pembimbing kami dalam pembuatan makalah kali ini. Tak ada gading yang tak retak, maka kami pun menyadari bahwa makalah ini masih banyak kekurangan baik dari segi tulisan ataupun materi yang disampaikan. Untuk itu saran dan kritik yang bersifat membangun senantiasa kami terima dengan hati terbuka. Semoga tulisan ini dapat memberikan informasi dan wawasan kepada anda sekalian, sehingga nantinya akan bermanfaat untuk para pembacanya, akhir kata kami ucapkan terima kasih

Bekasi, Maret 2011

Penyusun

3|P a ge

DAFTAR ISI
Halaman

Kata Pengantar«««««««««««««««««««««««« Daftar Isi««««««««««««««««««««««««««. BAB I PENGENALAN ALGORITMA I.1 Sejarah Algoritma««««««««««««««««« .. I.2. Definisi Algoritma«««««««««««««««««.. I.3. Tujuan belajar Algoritma & Pemrograman«««««««« I.4. Pengenalan Jenis ± jenis Bahasa Pemrograman««««««. I.5. Efisiensi Algoritma«««««««««««««««««. BAB II PENGENALAN TEHNIK ±TEHNIK BAHASA PEMROGRAMAN 2.1.Object Oriented Programming( OOP )«««««««««« . 2.2.Functionally««««..«««««.««««««««««.. . 2.3.Terstruktur«««««««««««««««««.«««« 2.4.Modular«««««.««««««««««««««««« 2.5 Visual & Even Driven Programming««««««««««« REFERENSI««««««««««««««««««««««««.

i ii 1 2 4 5 9 11 13 14 15 16 19

4|P a ge

BAB I PENGENALAN ALGORITMA

I.1. Sejarah Algoritma
Istilah algoritma mungkin bukan sesuatu yang asing bagi kita, ditinjau dari asal-usul katanya, 'Algoritma' mempunyai sejarah yang agak aneh. Orang hanya menemukan kata Algorism yang berarti proses menghitung dengan angka Arab. Seseorang dikatakan 'Algorist' jika menghitung menggunakan angka Arab. Para ahli bahasa berusaha menemukan asal kata ini namun hasilnya kurang memuaskan. Akhirnya para ahli sejarah matematika menemukan asal kata tersebut yang berasal dari nama penulis buku Arab terkenal dan seorang ahli matematika dari uzbekistan yang bernama Abu Abdullah Muhammad Ibnu Musa Al-Khuwarizmi dibaca orang barat menjadi Algorism. Abu Abdullah Muhammad Ibn Musa al-Khwarizmi (770-840) lahir di Khwarizm (Kheva), kota di selatan sungai Oxus (sekarang Uzbekistan) tahun 770 masehi. Kedua orangtuanya kemudian pindah ke sebuah tempat di selatan kota Baghdad (Irak), ketika ia masih kecil. Khwarizm dikenal sebagai orang yang memperkenalkan konsep algoritma dalam matematika, konsep yang diambil dari nama belakangnya. Al khwarizmi juga adalah penemu dari beberapa cabang ilmu matematika yang dikenal sebagai astronom dan geografer. Ia adalah salah satu ilmuwan matematika terbesar yang pernah hidup, dan tulisan-tulisannya sangat berpengaruh pada jamannya. Teori aljabar juga adalah penemuan dan buah pikiran Al khwarizmi. Nama aljabar diambil dari bukunya yang terkenal dengan judul "Al Jabr Wa Al Muqabilah". Ia mengembangkan tabel rincian trigonometri yang memuat fungsi sinus, kosinus dan kotangen serta konsep diferensiasi. Pengaruhnya dalam perkembangan matematika, astronomi dan geografi tidak diragukan lagi dalam catatan sejarah. Pendekatan yang dipakainya menggunakan pendekatan sistematis dan logis. Dia memadukan pengetahuan dari Yunani dengan Hindu ditambah idenya sendiri dalam mengembangkan matematika. Khwarizm mengadopsi penggunaan angka nol, dalam ilmu
5|P a ge

aritmetik dan sistem desimal. Beberapa bukunya banyak diterjemahkan kedalam bahasa latin pada awal abad ke-12, oleh dua orang penerjemah terkemuka yaitu Adelard Bath dan Gerard Cremona. Risalah-risalah aritmetikanya, seperti Kitab al-Jam'a wal-Tafreeq bil Hisab al-Hindi, Algebra, Al-Maqala fi Hisab-al Jabr wa-al-Muqabilah, hanya dikenal dari translasi berbahasa latin. Buku-buku itu terus dipakai hingga abad ke-16 sebagai buku pegangan dasar oleh universitas-universitas di Eropa. Buku geografinya berjudul Kitab Surat-al-Ard yang memuat peta-peta dunia pun telah diterjemahkan kedalam bahasa Inggris. Buah pikir Khwarizmi di bidang geografi juga sangat mengagumkan. Dia tidak hanya merevisi pandangan Ptolemeus dalam geografi tapi malah memperbaiki beberapa bagiannya. Tujuh puluh orang geografer pernah bekerja dibawah kepemimpinan Al khwarizmi ketika membuat peta dunia pertama di tahun 830. Ia dikisahkan pernah pula menjalin kerjasama dengan Khalifah Mamun Al-Rashid ketika menjalankan proyek untuk mengetahui volume dan lingkar bumi.

I.2. Definisi Algoritma
Algoritma merupakan suatu himpunan hingga instruksi yang secara jelas memperinci langkahlangkah proses pelaksanaan, dalam pemecahan suatu masalah tertentu, atau suatu kelas masalah tertentu, dengan dituntut pula bahwa himpunan instruksi tersebut dapat dilaksanakan secara mekanik. Algoritma boleh dibilang merupakan suatu ³resep´ untuk memecahkan masalah. Sebuah Algoritma dapat disiapkan pada berbagai tingkat permasalahan. Perangkat mesin komputer hanya dapat menjalankan suatu instruksi, jika instruksi telah dibuat dalam suatu bahasa yang dimengerti oleh komputer tersebut. Kita mengenal pengertian prosedur, semi-algoritma, dan algoritma. Namun, secara praktis kita boleh menganggap ketiga pengertian tersebut sebagai satu pengertian yang sama, yakni Prosedur atau Algoritma. Sebuah Prosedur (yang efektif) didefinisikan sebagai himpunan hingga instruksi, yang bersifat diskrit dan jelas, serta dapat dijalankan secara mekanik. Untuk pemecahan dengan komputer, pengertian dapat dijalankan secara mekanik dapat diartikan sebagai dapat dibuatkan Program Komputernya. Semi-Algoritma adalah Produser yang mampu menghasilkan pemecahan atau solusi masalah, bila solusi memang ada, dan kemudian berhenti. Kemudian Algoritma adalah

6|P a ge

Semi-Algoritma yang mampu mendeteksi tidak adanya solusi, bila memang solusi tidak ada, dan mampu pula berhenti. Algoritma adalah jantung ilmu komputer atau informatika. Banyak cabang ilmu computer yang diacu dalam terminologi algoritma. Namun, jangan beranggapan algoritma selalu identik dengan ilmu komputer saja. Dalam kehidupan sehari-haripun banyak terdapat proses yang dinyatakan dalam suatu algoritma. Cara-cara membuat kue atau masakan yang dinyatakan dalam suatu resep juga dapat disebut sebagai algoritma. Pada setiap resep selalu ada urutan langkah-lankah membuat masakan. Bila langkah-langkahnya tidak logis, tidak dapat dihasilkan masakan yang diinginkan. Karena itu suatu Algoritma harus dinyatakan dalam bentuk yang dapat dimengerti oleh pemroses. Jadi suatu pemroses harus : 1. Mengerti setiap langkah dalam Algoritma 2. Mengerjakan operasi yang bersesuaian dengan langkah tersebut Ciri penting algoritma ‡ Algoritma harus berhenti setelah mengerjakan sejumlah langkah terbatas. ‡ Setiap langkah harus didefinisikan dengan tepat dan tidak berarti-dua (Ambiguitas). ‡ Algoritma memiliki nol atau lebih masukkan. ‡ Algoritma memiliki nol atau lebih keluaran. ‡ algoritma harus efektif (setiap langkah harus sederhana sehingga dapat dikerjakan dalam waktu yang masuk akal). Paradigma Pemrograman 1. Pemrograman Prosedural Berdasarkan urutan-urutan, sekuensial Program adalah suatu rangkaian prosedur untuk memanipulasi data. Prosedur merupakan kumpulan instruksi yang dikerjakan secara berurutan.

2. Pemrograman Fungsional Berdasarkan teori fungsi matematika Fungsi merupakan dasar utama program.

3. Pemrograman Terstruktur
7|P a ge

Secara berurutan dan terstrukrtur.Program dapat dibagai-bagi menjadi prosedur dan fungsi. Contoh: PASCAL dan C

4. Pemrograman ModularPemrograman ini membentuk banyak modul. Modul merupakan kumpulan dari prosedur dan fungsi yang berdiri sendiri Sebuah program dapat merupakan kumpulan modul-modul. Contoh: MODULA-2 atau ADA

5. Pemrograman Berorientasi Obyek Pemrograman berdasarkan prinsip obyek, dimana obyek memiliki data/variabel/property dan method/event/prosedur yang dapat dimanipulasi Contoh: C++, Object Pascal, dan Java.

6. Pemrograman Berorientasi Fungsi Pemrograman ini berfokus pada suatu fungsi tertentu saja. Sangat tergantung pada tujuan pembuatan bahasa pemrograman ini. Contoh: SQL (Structured Query Language), HTML, XML dan lain-lain.

7. Pemrograman Deklaratif Pemrograman ini mendeskripsikan suatu masalah dengan pernyataan daripada memecahkan masalah dengan implementasi algoritma. Contoh: PROLOG

I.3. Tujuan Belajar Algoritma & Pemrograman
Mungkin kita selama ini berfikir demikian, mata kuliah Algoritma dan Struktur data nantinya digunakan untuk apa??? Algoritma: semua orang dalam kehidupan sehari-hari memerulkan materi ini (Algoritma ), sedangkan Struktur data:Akan memudahkan kita dalam memanajemen data kalau data itu tersetruktur. nah kalau kita mencari sesuatu dan semuanya itu sudah

8|P a ge

tersetruktur dengan jelas, maka sangatlah mudah untuk dimengerti. Secara Global inilah Tujuan mata kuliah Algoritma dan struktur data.

Tujuan mata kuliah Algoritma dan Struktur Data : Mahasiswa mampu memahami logika berpikir komputer, memahami prinsip kerja Program, memahami alasan-alasan komputer dapat mengerjakan perintah-perintah yang diberikan, dan mampu menggambarkan logika jalannya program secara tertulis dengan algoritma (pseudo code) dan dilengkapi dengan diagram alir (flow chart) .

I.4. Pengenalan Jenis ± Jenis Bahasa Pemrograman
Bahasa pemrograman adalah bahasa yamg digunakan untuk membuat suatu program. Bahasa pemrograman terbagi atas dua bagian yaitu, Low level language dan high level language. Low level language atau bahasa tingkat rendah adalah bahasa pemrograman yang mirip dengan bahasa manusia yang disingkat. Misalnya untuk instruksi LOAD AND JUMP ini ditulis LNJ. Bahasa seperti ini disebut dengan bahasa ASSEMBLER. High level language atau bahasa tingkat tinggi adalah bahasa pemrograman yang mendekati dengan bahasa manusia. 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 Menurut sejarahnya bahasa tingkat tinggi adalah sebagai berikut: 1. Bahasa FORTRAN

9|P a ge

FORTRAN adalah singkatan dari Formula Translation(penterjemah rumus). FORTRAN diciptkan pada tahu 1957 oleh John Backbus dari IBM. Bahasa ini merupakan bahasa tingkat tinggi pertama yang dibuat. FORTRAN sangat popular di kalangan perguruan tinggi dan meruoakan bahasa andalan para dosen dam mahasiswa. Insruksinya yamg biasa disebut µkeyword¶ berjumlah tidak cukup 20 buah sehingga mudah dipelajari. Instruksinya antara lain : DIMENSION, COMPLEX, CHARAACTER, WRITE, READ, FORMAT, DO/CONTINUE, IF, GO TO, PAUSE, END. 2. Bahasa COBOL COBOL adallah singkatan dari Common Bussines Oriented Language yang berarti bahasa yang cenderung ke bisnis umum. Dari namanya terlihat bahwa COBOL memang diciptkan untuk keperluan bisnis umum (administrasi). Timbulnya COBOL adalahkeingina kaum pebisnis untuk mendapatkan bahas sendiri. Dengan inisiatif dari Badan Perthana Amerika Serikat diciptkan bahasa yang ampuh untuk persoalan- persoalan administrasi pada tahun 1960. COBOL disempurnakan teru menerus, naming tetap memakai nama COBOL. Personal computer (PC) atau computer pribadi juga merupakan penyempurnaan COBOL. Beberapa instansi, terutama yang mengelola data yamg cuku banyak sampai saat ini masi menggunakAN bahasa ini. 3. Bahasa BASIC BASIC adalah singktan dari Beginner¶s All Purpose Symbolic Instruction Code atau kode instruksi yang disimbolkan untuk segala tujuan bagi pemula. Kedua bahasa tingkat tinggi yang terdahulu , yaitu FORTRAN dan COBOL masi dianggap sulit untuk orang yang baru belajar saat itu. Oleh karena itu, kalangan perguruna tinggi menciptkan bahasa yang dapat dipakai untuk pemecahan soal sains dan teknologi, tetapi juga untuk keperluan administrasi bisnis (administrasi). Dengan demikin mucullah bahasa BASIC yang memenuhi harapan itu. Bahasa ini kaya akan instruksi-instruksi dasar dan instruksi tambahan sehingga juga dapat dipakai sebagai hiburan yang dilengkapi dengan suara dan gambar. 4. Bahasa PASCAL

10 | P a g e

Bila bahasa-bahasa sebelumnya lahir di Amerika, maka bahasa PASCAL lahir di Eropa yaitu di Swiss oleh Profesor Niklaus Wirth dari Technical University di Zurich. Nama PASCAL diambil dari nama seorang ahli matematik dan philosophi terkenal pada abad 17 dari Prancis. Namanya diambil sebagai pengharggaan atas dedikasinya terhadap ilmu pengetahuan. Sampai sekarang ada beberapa versi dari bahasa PASCAL diantaranya UCDS(University Of California at San Diego Pascal, Standard Pascal, MT + Pascal, dan Turbo Pascal

Integer
Dalam ilmu komputer, istilah "Integer" digunakan untuk merujuk kepada tipe data apapun yang merepresentasikan bilangan bulat, atau beberapa bagian dari bilangan bulat. Disebut juga sebagai Integral Data Type. Nilai sebuah data dari sebuah tipe data integer adalah nilai bilangan bulat tersebut dalam matematika. Representasi data ini merupakan cara bagaimana nilainya disimpan di dalam memori komputer. Tipe data integral terbagi menjadi dua buah kategori, baik itu bertanda (signed) ataupun tidak bertanda (unsigned). Bilangan bulat bertanda mampu merepresentasikan nilai bilangan bulat negatif, sementara bilangan bulat tak bertanda hanya mampu merepresentasikan bilangan bulat positif. Representasi integer positif di dalam komputer sebenarnya adalah untaian bit, dengan menggunakan sistem bilangan biner. Urutan dari bit-bit tersebut pun bervariasi, bisa berupa Little Endian ataupun Big Endian. Selain ukuran, lebar atau ketelitian (presisi) bilangan bulat juga bervariasi, tergantung jumlah bit yang direpresentasikanya. Bilangan bulat yang memiliki n bit dapat mengodekan 2n. Jika tipe bilangan bulat tersebut adalah bilangan bulat tak bertanda, maka jangkauannya adalah dari 0 hingga 2n-1. Tipe integer standar yang digunakan dalam bahasa C adalah tipe int. Ukuran dan jangkauan data dari tipe int seringkali tergantung dari kompilator dan komputer yang digunakan, tapi biasanya setara dengan short int atau long int. Selain tipe int, ada beberapa tipe data lain yang dapat menampung bilangan bulat, di antaranya: char. Sebenarnya tipe data ini digunakan untuk menyimpan karakter dalam kode ASCII, tapi dapat juga digunakan untuk menyimpan integer dari 0 sampai 255 short int, ukuran 2 byte,

11 | P a g e

jangkauan -32,768 sampai 32,767 long int, ukuran 4 byte, jangkauan -2,147,483,648 hingga 2,147,483,647 Tipe-tipe data di atas dapat menyimpan integer negatif dan positif. Untuk menyimpan bilangan positif dan nol saja, dapat digunakan kata kunci unsigned sebelum tipe data. Sebagai contoh: unsigned short int, ukuran 2 byte, jangkauan 0 sampai 65,535 unsigned long int, ukuran 4 byte, jangkauan 0 sampai 4,294,967,295 Dalam bahasa Pascal, integer mampu menampung 16-bit Walaupun memiliki ukuran 2 byte (16 bit) tetapi karena integer adalah type data signed maka hanya mampu di-assign nilai antara -215 hingga 215-1 yaitu -32768 sampai 32767. Ini disebabkan karena 1 bit digunakan sebagai penanda positif/negatif. Meskipun memiliki istilah yang sama, tetapi tipe data integer pada bahasa pemrograman Visual Basic.NET dan Borland Delphi memiliki ukuran 4 byte atau 32 bit signed sehingga dapat di-assign nilai antara -2,147,483,648 hingga 2,147,483,647. Selain tipe integer, bahasa Pascal juga memiliki beberapa tipe lain: byte, ukuran 1 byte, jangkauan dari 0 sampai 255 smallint, ukuran 1 byte, jangkauan dari -128 sampai 127 word, ukuran 2 byte, jangkauan dari 0 sampai 65,535 Bahasa pemrograman sangat bermacam-macam: C, C++, Pascal, Java, C#, Basic, Perl, PHP, ASP, JSP, J#, J++ dan masih banyak bahasa lainnya. Dari berbagai bahasa pemrograman cara memberikan instruksinya berbeda-beda namun bertujuan menghasilkan output yang sama. Kriteria Algoritma Menurut Donald E. Knuth 1. Input: algoritma dapat memiliki nol atau lebih inputan dari luar. 2. Output: algoritma harus memiliki minimal satu buah output keluaran. 3. Definiteness (pasti): algoritma memiliki instruksi-instruksi yang jelas dan tidak ambigu. 4. Finiteness (ada batas): algoritma harus memiliki titik berhenti (stopping role). 5. Effectiveness (tepat dan efisien): algoritma sebisa mungkin harus dapat dilaksanakan dan efektif. Contoh instruksi yang tidak efektif adalah: A = A + 0 atau A = A * 1 Namun ada beberapa program yang memang dirancang untuk unterminatable: contoh Sistem
12 | P a g e

Operasi Jenis Proses Algoritma 1. Sequence Process: instruksi dikerjakan secara sekuensial, berurutan. 2. Selection Process: instruksi dikerjakan jika memenuhi kriteria tertentu 3. Iteration Process: instruksi dikerjakan selama memenuhi suatu kondisi tertentu. 4. Concurrent Process: beberapa instruksi dikerjakan secara bersama

I.4. Efisiensi Algoritma
Efisiensi algoritma dapat ditinjau dari 2 hal yaitu efisiensi waktu dan memori. Meskipun algoritma memberikan keluaran yang benar (paling mendekati), tetapi jika kita harus menunggu berjam-jam untuk mendapatkan keluarannya, algoritma tersebut biasanya tidak akan dipakai, setiap orang menginginkan keluaran yang cepat. Begitu juga dengan memori, semakin besar memori yang terpakai maka semakin buruklah algoritma tersebut. Analisa yang paling sering dilakukan pada suatu algoritma adalah waktu proses. Menentukan waktu proses secara tepat merupakan pekerjaan yang sangat sulit karena waktu proses secata eksak sangat terhgantung pada implementasi algoritma dan perangkat keras yang dipakai. Analisa yang di inginkan untuk menyatakan efisiensi algoritma haruslah dibuat se umum mungkin sehingga bias dipakai pada semua algoritma, terlepas dari implementasi dan juga compiler yang di pakai maupun perangkat keras yang digunakan. Akbiatnya analisa tidak dipakai pada waktu proses secata eksak. Kompleksitas algoritma cukup di nyatakan dalam order waktu proses (Big-Oh) secara fungsi jumlah data masukan yang diberikan. Dalam analisa tersebut kita menfokuskan diri pada operasi aktif yang merupakan pusat algoritma, yaitu bagian algoritma yang paling sering di eksekusi. Bagian-bagian lain seperti pemasukan data,penugasan (asigment), dan lain-lain dapat diabaikan karena bagian-bagian tersebut tidak sesering operasi aktif. Jumlah eksekusi operasi aktif itulah yang selanjutnya dihitung. y Faktor-faktor yg mempengaruhinya adalah : Banyak langkah Tipe data Operator-operator
13 | P a g e

kecepatan

y

Tipe Data integer real

Dua nilai yg sama dgn operator yg sama tapi dgn variabel yg berbeda, maka terdapat perbedaan kecepatan/proses penyelesaiannya. Contoh : 250 + 17 = 267 (lebih cepat dari) 250.0 + 17.0 = 0.25*103 + 0.17*102 = 0.25*103 + 0.017*103 = (0.25+ 0.17)*103 = 0.267*103 = 267.0

y

Operator Urutan penggunaan operator/penempatan operator bisa mempengaruhi efisiensi. Contoh

perkalian (*) lebih lama daripada penjumlahan (+) y Tetapi dalam perkembangan teknologi, perbedaan penggunaan operator maupun tipe data dasar tidak terlalu signifikan. y y Yang perlu diperhatikan adalah banyaknya operasi aritmatika dan logika yang dilakukan. Banyak langkah dalam suatu algoritma dinyatakan dengan banyaknya operasi aritmatika dan logika yang dilakukan. Dengan demikian hal ini bergantung pada statement dan algoritma : sequensial branching looping subroutine call (bisa memanggil prosedur dan bisa memanggil fungsi) jenis

14 | P a g e

15 | P a g e

BAB II PENGENALAN TEHNIK ± TEHNIK BAHASA PEMROGRAMAN

2.1. Object Oriented Programming ( OOP )
Pemrograman berorientasi objek (Inggris: object-oriented programming disingkat OOP) merupakan paradigma pemrograman yang berorientasikan kepada objek. Semua data dan fungsi di dalam paradigma ini dibungkus dalam kelas-kelas atau objek-objek. Bandingkan dengan logika pemrograman terstruktur. Setiap objek dapat menerima pesan, memproses data, dan mengirim pesan ke objek lainnya.

Model data berorientasi objek dikatakan dapat memberi fleksibilitas yang lebih, kemudahan mengubah program, dan digunakan luas dalam teknik piranti lunak skala besar. Lebih jauh lagi, pendukung OOP mengklaim bahwa OOP lebih mudah dipelajari bagi pemula dibanding dengan pendekatan sebelumnya, dan pendekatan OOP lebih mudah dikembangkan dan dirawat.

Konsep dasar dari Pemrograman Berorientasi Objek
Pemrograman orientasi objek menekankan konsep berikut:
y

kelas ² kumpulan atas definisi data dan fungsi-fungsi dalam suatu unit untuk suatu tujuan tertentu. Sebagai contoh 'class of dog' adalah suatu unit yang terdiri atas definisidefinisi data dan fungsi-fungsi yang menunjuk pada berbagai macam perilaku/turunan dari anjing. Sebuah class adalah dasar dari modularitas dan struktur dalam pemrograman berorientasi object. Sebuah class secara tipikal sebaiknya dapat dikenali oleh seorang non-programmer sekalipun terkait dengan domain permasalahan yang ada, dan kode yang terdapat dalam sebuah class sebaiknya (relatif) bersifat mandiri dan independen (sebagaimana kode tersebut digunakan jika tidak menggunakan OOP). Dengan modularitas, struktur dari sebuah program akan terkait dengan aspek-aspek dalam masalah yang akan diselesaikan melalui program tersebut. Cara seperti ini akan menyederhanakan pemetaan dari masalah ke sebuah program ataupun sebaliknya.

16 | P a g e

y

Objek - membungkus data dan fungsi bersama menjadi suatu unit dalam sebuah program komputer; objek merupakan dasar dari modularitas dan struktur dalam sebuah program komputer berorientasi objek.

y

Abstraksi - Kemampuan sebuah program untuk melewati aspek informasi yang diproses olehnya, yaitu kemampuan untuk memfokus pada inti. Setiap objek dalam sistem melayani sebagai model dari "pelaku" abstrak yang dapat melakukan kerja, laporan dan perubahan keadaannya, dan berkomunikasi dengan objek lainnya dalam sistem, tanpa mengungkapkan bagaimana kelebihan ini diterapkan. Proses, fungsi atau metode dapat juga dibuat abstrak, dan beberapa teknik digunakan untuk mengembangkan sebuah pengabstrakan.

y

Enkapsulasi - Memastikan pengguna sebuah objek tidak dapat mengganti keadaan dalam dari sebuah objek dengan cara yang tidak layak; hanya metode dalam objek tersebut yang diberi ijin untuk mengakses keadaannya. Setiap objek mengakses interface yang menyebutkan bagaimana objek lainnya dapat berinteraksi dengannya. Objek lainnya tidak akan mengetahui dan tergantung kepada representasi dalam objek tersebut.

y

Polimorfisme melalui pengiriman pesan. Tidak bergantung kepada pemanggilan subrutin, bahasa orientasi objek dapat mengirim pesan; metode tertentu yang berhubungan dengan sebuah pengiriman pesan tergantung kepada objek tertentu di mana pesa tersebut dikirim. Contohnya, bila sebuah burung menerima pesan "gerak cepat", dia akan menggerakan sayapnya dan terbang. Bila seekor singa menerima pesan yang sama, dia akan menggerakkan kakinya dan berlari. Keduanya menjawab sebuah pesan yang sama, namun yang sesuai dengan kemampuan hewan tersebut. Ini disebut polimorfisme karena sebuah variabel tungal dalam program dapat memegang berbagai jenis objek yang berbeda selagi program berjalan, dan teks program yang sama dapat memanggil beberapa metode yang berbeda di saat yang berbeda dalam pemanggilan yang sama. Hal ini berlawanan dengan bahasa fungsional yang mencapai polimorfisme melalui penggunaan fungsi kelas-pertama.

y

Inheritas- Mengatur polimorfisme dan enkapsulasi dengan mengijinkan objek didefinisikan dan diciptakan dengan jenis khusus dari objek yang sudah ada - objek-objek ini dapat membagi (dan memperluas) perilaku mereka tanpa haru mengimplementasi ulang perilaku tersebut (bahasa berbasis-objek tidak selalu memiliki inheritas.)
17 | P a g e

y

Dengan menggunakan OOP maka dalam melakukan pemecahan suatu masalah kita tidak melihat bagaimana cara menyelesaikan suatu masalah tersebut (terstruktur) tetapi objekobjek apa yang dapat melakukan pemecahan masalah tersebut. Sebagai contoh anggap kita memiliki sebuah departemen yang memiliki manager, sekretaris, petugas administrasi data dan lainnya. Misal manager tersebut ingin memperoleh data dari bag administrasi maka manager tersebut tidak harus mengambilnya langsung tetapi dapat menyuruh petugas bag administrasi untuk mengambilnya. Pada kasus tersebut seorang manager tidak harus mengetahui bagaimana cara mengambil data tersebut tetapi manager bisa mendapatkan data tersebut melalui objek petugas adminiistrasi. Jadi untuk menyelesaikan suatu masalah dengan kolaborasi antar objek-objek yang ada karena setiap objek memiliki deskripsi tugasnya sendiri.

2.2. Functionally
Functional Programming Dalam ilmu komputer, pemrograman fungsional adalah paradigma pemrograman yang memperlakukan perhitungan sebagai evaluasi fungsi-fungsi matematika dan menghindari negara dan data bisa berubah. Ini menekankan penerapan fungsi, berbeda dengan gaya pemrograman imperatif, yang menekankan perubahan dalam negara. Fungsional pemrograman mempunyai akar di kalkulus lambda, sebuah sistem formal yang dikembangkan pada tahun 1930 untuk menyelidiki fungsi definisi, fungsi aplikasi, dan rekursi. Banyak bahasa pemrograman fungsional dapat dilihat sebagai elaborasi pada kalkulus lambda.

Dalam prakteknya, perbedaan antara fungsi matematika dan pengertian tentang sebuah "fungsi" yang digunakan dalam pemrograman adalah fungsi-fungsi penting yang dapat memiliki efek samping, mengubah nilai yang sudah dihitung perhitungan. Karena mereka tidak memiliki transparansi referensial, yaitu ekspresi bahasa yang sama dapat menghasilkan nilai yang berbeda pada waktu yang berbeda tergantung pada keadaan program pelaksana. Sebaliknya, dalam kode fungsional, nilai output dari suatu fungsi hanya bergantung pada argumen-argumen yang masukan ke fungsi, maka fungsi f memanggil dua kali dengan nilai yang sama untuk argumen x akan menghasilkan hasil yang sama f (x) kedua kali. Menghilangkan efek samping dapat membuat lebih mudah untuk memahami dan memprediksi perilaku dari suatu program, yang merupakan salah satu motivasi kunci bagi pengembangan pemrograman fungsional.
18 | P a g e

Bahasa pemrograman fungsional, terutama yang murni fungsional, sebagian besar telah ditekankan dalam dunia akademis bukan dalam pengembangan perangkat lunak komersial. Namun, bahasa pemrograman fungsional menonjol seperti Scheme, Erlang, OCaml, dan Haskell, telah digunakan dalam industri dan aplikasi komersial oleh berbagai organisasi. Pemrograman fungsional juga menemukan industri digunakan dalam domain spesifik melalui bahasa pemrograman seperti R (statistik), Mathematica (simbolik matematika), J dan K (analisis keuangan) Dan XSLT (XML ). Meluasnya deklaratif domain bahasa tertentu seperti SQL dan Lex / Yacc, menggunakan beberapa unsur pemrograman fungsional, terutama dalam menghindari nilai-nilai bisa berubah. Spreadsheets juga dapat dilihat sebagai bahasa pemrograman fungsional.

Pemrograman dalam gaya fungsional juga dapat dicapai dalam bahasa yang tidak secara khusus dirancang untuk pemrograman fungsional. Sebagai contoh, bahasa pemrograman Perl imperatif telah menjadi subjek dari sebuah buku yang menjelaskan bagaimana menerapkan konsep-konsep pemrograman fungsional. [20] Javascript, salah satu bahasa paling banyak digunakan saat ini, menggabungkan kemampuan pemrograman fungsional

2.3. Terstruktur
Bahasa pemrograman terstruktur 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. Secara berurutan dan terstrukrtur. Terstruktur dalam : analisa, cara dan penulisan program. Program dapat dibagai-bagi menjadi prosedur dan fungsi. Contoh : Pascal, C, Delphi

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.
19 | P a g e

Gunakan pengkodean terstruktur: IF ... THEN, DO ... WHILE dan lain-lainnya. Gunakan nama-nama bermakna (mnemonic names) Membuat dokumentasi yang akurat dan berarti

2.4. Modular
Salah satu metode dalam penyusunan program terstruktur adalah pemrograman modular. Dalam pemrograman modular, program dipecah-pecah ke dalam modul-modul, dimana setiap modul menunjukkan fungsi dan tugas tunggal. Dengan membagi masalah ke dalam modul-modul, maka masalah akan menjadi sederhana sehingga program dapat lebih mudah disusun dan dipahami, sehingga dapat menghindari penulisan teks program yang sama berkali-kali dan dapat juga memudahkan dalam melakukan pelacakan kesalahan dalam program yang sedang dibuatnya. y y Fungsi, Prosedur, atau kumpulan perintah-perintah dipaket menjadi suatu modul. Dapat digunakan berulang2x, atau digunakan olah fungsi, prosedur lain dalam program.

Setiap program mempunyai sebuah modul program utama, yang mengontrol semua proses yang terjadi, termsuk mengirimkan kontrol program ke submodul untuk melakukan suatu fungsi tertentu. Pemrograman modular diterapkan dengan menggunakan sub-routine, yaitu sebuah kumpulan perintah yang melakukan tugas pemrosesan yang terbatas. y Jika persoalan yang ingin dipecahkan melalui program terlalu besar, sebaiknya pemecahan masalah dilakukan secara bertahap y y Setiap tahapan akan menghasilkan modul program Setiap modul tersebut diberi nama sehingga untuk menyatakannya cukup dengan menyebut namanya y Deskripsi fungsional dari setiap modul adalah penting

Program yang didefinisikan modulnya dengan baik akan : y y y Mudah dibaca dan dimengerti oleh pemakai Efisien, karena modul yang sama mungkin dipakai pada beberapa tahapan program. Modular programming banyak dimanfaatkan oleh bahasa pemrograman OOP.
20 | P a g e

2.5. Visual & Even Driven Programming
Bahasa visual adalah himpunan simbol-simbol grafis dan teks yang mempunyai arti semantik dan digunakan untuk menyelesaikan masalah komunikasi di dunia. Penggunaan ekspresi visual(seperti grafik, gambar, atau ikon) yang sistematik dan mempunyai arti. Bahasa Textual mengacu pada penggunaan karakter (teks). Bahasa tekstual konvensional hanya bekerja pada 1 dimensi karena compiler/interpreter memproses program pada satu arah saja. Sedangkan pemrograman Visual menggunakan ekspresi visual (seperti grafik, gambar, atau
ikon) dalam proses pemrograman, mengacu pada aktivitas yang memungkinkan pengguna untuk membuat program dalam dua (atau lebih) dimensi. Contoh Bahasa Visual : O Kenyataan, bahasa visual ‡ ‡ O lebih tua dari saudaranya tekstual ada anggapan komputer tidak bisa apa-apa

Contoh historis:

‡ Petroglyphs: pahatan pada batu dari masyarakat prasejarah ‡ Hieroglyphs: Bahsa visual orang Mesir (3000 SM. to 400 M)

O

Bahasa visual Modern ‡ ‡ Pictograms Elemen pada GUI ‡ ‡ ‡ ‡ Simbol File dan folder, dll.

Skema rangkaian elektronik Diagram keadaan, diagram E-R Petri Nets: Bahasa visual untuk tingkah laku system

O

Bahasa campuran: berisi elemen visual yang mempunyai elemen tekstual (keterangan) 21 | P a g e

Pemrograman Even-Driven (Even-Driven Programming) Menggunakan konsep ³Jika sebuah aksi / perintah dilakukan terhadap sebuah objek, apa yang akan terjadi / dilakukan oleh objek tersebut selanjutnya´. Sangat fleksibel dalam pembuatan koding program, karena sudah menggunakan konsep OOP dimana pemrograman dapat dimulai dari objek yang diinginkan tanpa harus terurut, dan merupakan salah jenis bahasa pemrograman yang sudah memanfaatkan GUI (Graphic User Interface). Biasanya merupakan jenis bahas pemrograman visual. Contoh : Visual Basic, Visual C++, Delphi, Borland Kilix

22 | P a g e

23 | P a g e

REFERENSI 
NOVI A BL OG  IlmuKomputer.com  Wikipedia  www.iterasi.net  www.lintasberita.com  kulino.ninehub.com  www.slideshare.net  Warta warga. Gunadarma

24 | P a g e

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->