You are on page 1of 24

1|Page

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|Page
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|Page
DAFTAR ISI
                                                                                               
                                                                                        Halaman
                                 

Kata Pengantar……………………………………………………………… i
Daftar Isi……………………………………………………………………. ii
BAB I PENGENALAN ALGORITMA
I.1 Sejarah Algoritma…………………………………………… .. 1
I.2. Definisi Algoritma…………………………………………….. 2           
I.3. Tujuan belajar Algoritma & Pemrograman…………………… 4
I.4. Pengenalan Jenis – jenis Bahasa Pemrograman………………. 5
I.5. Efisiensi Algoritma……………………………………………. 9
BAB II PENGENALAN TEHNIK –TEHNIK BAHASA PEMROGRAMAN
2.1.Object Oriented Programming( OOP )………………………… . 11           
2.2.Functionally…………..…………….………………………….. . 13           
2.3.Terstruktur…………………………………………….………… 14
2.4.Modular…………….…………………………………………… 15 
2.5 Visual & Even Driven Programming……………………………          16
REFERENSI………………………………………………………………. 19

4|Page
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|Page
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 langkah-
langkah 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|Page
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|Page
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|Page
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|Page
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

12 | P a g e
Namun ada beberapa program yang memang dirancang untuk unterminatable: contoh Sistem
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.
 Faktor-faktor yg mempengaruhinya adalah :
- Banyak langkah
- Tipe data kecepatan
13 | P a g e
- Operator-operator
 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

 Operator
Urutan penggunaan operator/penempatan operator bisa mempengaruhi efisiensi. Contoh
perkalian (*) lebih lama daripada penjumlahan (+)

 Tetapi dalam perkembangan teknologi, perbedaan penggunaan operator maupun tipe data
dasar tidak terlalu signifikan.
 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 jenis
algoritma :
- sequensial
- branching
- looping
- subroutine call (bisa memanggil prosedur dan bisa memanggil fungsi)

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:
 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 definisi-
definisi 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
 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.
 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.
 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.
 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.
 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
 Dengan menggunakan OOP maka dalam melakukan pemecahan suatu masalah kita tidak
melihat bagaimana cara menyelesaikan suatu masalah tersebut (terstruktur) tetapi objek-
objek 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.

 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.

 Jika persoalan yang ingin dipecahkan melalui program terlalu besar, sebaiknya
pemecahan masalah dilakukan secara bertahap

 Setiap tahapan akan menghasilkan modul program

 Setiap modul tersebut diberi nama sehingga untuk menyatakannya cukup dengan
menyebut namanya

 Deskripsi fungsional dari setiap modul adalah penting

Program yang didefinisikan modulnya dengan baik akan :

20 | P a g e
 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.
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 :
l Kenyataan, bahasa visual
• lebih tua dari saudaranya tekstual
• ada anggapan komputer tidak bisa apa-apa
l Contoh historis:

• Petroglyphs: pahatan
pada batu dari masyarakat
prasejarah

• Hieroglyphs: Bahsa
visual orang Mesir (3000
SM. to 400 M)

l Bahasa visual Modern


• Pictograms
• Elemen pada GUI
• Simbol File dan folder, dll.

21 | P a g e
• Skema rangkaian elektronik
• Diagram keadaan, diagram E-R
• Petri Nets: Bahasa visual untuk tingkah laku system
l Bahasa campuran: berisi elemen visual yang mempunyai elemen tekstual (keterangan)
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
 N OV IA BLO G
 IlmuKomputer.com
 Wikipedia
 www.iterasi.net
 www.lintasberita.com
 kulino.ninehub.com
 www.slideshare.net
 Warta warga. Gunadarma

24 | P a g e

You might also like