35
1 | Page

MAKALAH ALGORITMA 2

Embed Size (px)

Citation preview

Page 1: MAKALAH ALGORITMA 2

1 | P a g e

Page 2: MAKALAH ALGORITMA 2

MAKALAH ALGORITMA

PENGENALAN ALGORITMA&

PENGENALAN TEHNIK – TEHNIK BAHASA PEMROGRAMAN

UNIVERSITAS GUNADARMAFAKULTAS ILMU KOMPUTER

BEKASI2011

Disusun oleh :

Ari Sediana Nuriman Sufgiarto Santi Puspitasari Sandy Prabowo Nunik Arvin Amari

2 | P a g e

Page 3: MAKALAH ALGORITMA 2

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 g e

Page 4: MAKALAH ALGORITMA 2

DAFTAR ISI                                                                                               

                                                                                        Halaman                                 

Kata Pengantar……………………………………………………………… iDaftar Isi……………………………………………………………………. iiBAB I PENGENALAN ALGORITMA

I.1 Sejarah Algoritma…………………………………………… .. 1I.2. Definisi Algoritma…………………………………………….. 2           I.3. Tujuan belajar Algoritma & Pemrograman…………………… 4I.4. Pengenalan Jenis – jenis Bahasa Pemrograman………………. 5I.5. Efisiensi Algoritma……………………………………………. 9

BAB II PENGENALAN TEHNIK –TEHNIK BAHASA PEMROGRAMAN2.1.Object Oriented Programming( OOP )………………………… . 11           

2.2.Functionally…………..…………….………………………….. . 13           2.3.Terstruktur…………………………………………….………… 142.4.Modular…………….…………………………………………… 15 2.5 Visual & Even Driven Programming……………………………          16

REFERENSI………………………………………………………………. 19

4 | P a g e

Page 5: MAKALAH ALGORITMA 2

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 g e

Page 6: MAKALAH ALGORITMA 2

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

Page 7: MAKALAH ALGORITMA 2

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 g e

Page 8: MAKALAH ALGORITMA 2

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 g e

Page 9: MAKALAH ALGORITMA 2

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 g e

Page 10: MAKALAH ALGORITMA 2

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

Page 11: MAKALAH ALGORITMA 2

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

Page 12: MAKALAH ALGORITMA 2

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

Page 13: MAKALAH ALGORITMA 2

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

- Operator-operator

13 | P a g e

Page 14: MAKALAH ALGORITMA 2

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

Page 15: MAKALAH ALGORITMA 2

15 | P a g e

Page 16: MAKALAH ALGORITMA 2

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 ObjekPemrograman 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

Page 17: MAKALAH ALGORITMA 2

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

Page 18: MAKALAH ALGORITMA 2

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

Page 19: MAKALAH ALGORITMA 2

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

Page 20: MAKALAH ALGORITMA 2

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 :

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

Page 21: MAKALAH ALGORITMA 2

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:

l 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

l Bahasa campuran: berisi elemen visual yang mempunyai elemen tekstual (keterangan)

21 | P a g e

• Petroglyphs: pahatan pada batu dari masyarakat prasejarah

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

Page 22: MAKALAH ALGORITMA 2

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

Page 23: MAKALAH ALGORITMA 2

23 | P a g e

Page 24: MAKALAH ALGORITMA 2

REFERENSI

NOVIA BLOG

IlmuKomputer.com

Wikipedia

www.iterasi.net

www.lintasberita.com

kulino.ninehub.com

www.slideshare.net

Warta warga. Gunadarma

24 | P a g e