• Tidak ada hasil yang ditemukan

Algoritma dan Bahasa Pemrograman

N/A
N/A
Protected

Academic year: 2018

Membagikan "Algoritma dan Bahasa Pemrograman"

Copied!
20
0
0

Teks penuh

(1)

Pendahuluan

Komputer pada dasarnya adalah mesin yang tidak bisa apa-apa. Kita harus memberikan perintah untuk dapat berbicara (berkomunikasi) dengan komputer, dengan cara memberikan serangkaian instruksi kepada komputer agar komputer dapat memecahkan masalah. Langkah-langkah yang kita lakukan dalam memberikan instruksi untuk memecahkan masalah kita kita namakan pemrograman komputer. Untuk menyusun sebuah program yang besar dan kompleks, pemrogram membutuhkan tahapan penyusunan yang sistematis dan terpadu, yaitu:

1. Definisi Masalah 2. Analisis Kebutuhan 3. Penyusunan Algoritma 4. Pengkodean/Pemrograman 5. Testing dan Debugging 6. Pemeliharaan

7. Dokumentasi

Algoritma

(2)

Definisi Algoritma

Algoritma adalah urutan langkah-langkah berhingga untuk memecahkan masalah logika atau matematika

Algoritma adalah logika, metode dan tahapan (urutan) sistematis yang digunakan untuk memecahkan suatu permasalahan.

Algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang disusun secara sistematis dan logis.

Algoritma adalah urutan logis pengambilan keputusan untuk pemecahan masalah.

 Langkah-langkah dalam algoritma harus logis dan harus dapat ditentukan bernilai salah atau benar.

Pembuatan algoritma harus selalu dikaitkan dengan: a. Kebenaran algoritma

b. Kompleksitas (lama dan jumlah waktu proses dan penggunaan memori)

Kriteria Algoritma yang baik:

1. Tepat, benar, sederhana, standar dan efektif 2. Logis, terstruktur dan sistematis

3. Semua operasi terdefinisi

4. Semua proses harus berakhir setelah sejumlah langkah dilakukan

(3)

Masalah

Hasil

(Output)

Eksekusi

Program

Model

Algoritma

DATA

“Suatu algoritma harus menghasilkan output yang tepat guna

(efektif) dalam waktu yang relatif singkat dan penggunaan memori yang relatif sedikit (efisien) dengan langkah yang berhingga dan prosesnya berakhir baik dalam keadaaan diperoleh suatu solusi

ataupun tidak adanya solusi.”

Proses Penyelesaian Masalah

Masalah Algoritma Solusi

Analisis

Analisis

(4)

Teknik Pemecahan Masalah

1. Teknik Top-Down 2. Teknik Bottom-Up

 Tahap Pemecahan Masalah:

Proses dari masalah hingga menjadi suatu algoritma

Tahap Implementasi

Proses dari algoritma hingga menjadi suatu solusi. Solusi yang dimaksud adalah suatu program yang merupakan implementasi dari algoritma yang disusun.

 Contoh algoritma menulis surat, maka kita perlu melakukan beberapa langkah yaitu:

1. Mempersiapkan kertas dan amplop 2. Mempersiapkan alat tulis (pena, pensil) 3. Mulai menulis

4. Memasukkan kertas ke dalam amplop 5. Pergi ke kantor pos

 Contoh algoritma untuk menghitung luas lingkaran: 1. Masukan r (=jari-jari lingkaran)

2. Tentukan phi (=3.14) 3. L= Phi*r*r

(5)

NO. Proses

Algoritma Contoh

Langkah

dalam

algoritma

1. Membuat Kue

Resep kue Masukan telur ke dalam wajan, kocok sampai mengembang

2. Membuat pakaian

Pola pakaian

Gunting kain dari pinggir kiri bawah kearah kanan sejauh 5 cm

3. Praktikum reaksi kimia

Panduan praktikum

Campurkan 10 ml air ke dalam 15 ml garam

4. Merakit mobil

Panduan merakit

Sambungkan komponen A dengan komponen B

5. Kegiatan sehari-hari

Jadawal harian

Pukul 15.00: tidur siang Pukul 16.00: membuat PR 6. Memainkan

Masukan kode voucer

Penyajian Algoritma:

1. Teknik tulisan;

English Structure Pseudocode 2. Gambar;

 Metode structure chart,

 Hierarchy plus input-process-output

 Flowchart

 Nassi Schneiderman chart

English Structure:

Menggunakan bahasa manusia (Inggris)

Menggambarkan suatu algoritma yang akan dikomunikasikan kepada pemakai sistem

Pseudocode

(6)

Code=program

Kode yang mirip dengan kode pemrograman yang sebenarnya

Menggambarkan Algoritma yang akan dikomunikasikan kepada programmer

Lebih rinci dari English Structure (mis: dalam menyatakan tipe data yang digunakan)

Structure Chart (bagan terstruktur)

Digunakan untuk mendefinisikan dan mengilustrasikan organisasi dari system secara berjenjang

Berbentuk modul dan submodul

Menunjukkan hubungan elemen data dan elemen control serta hubungan antar modul

Aturan Penulisan Teks Algoritma

Setiap algoritma akan selalu terdiri dari : Judul (header)

Deklarasi (kamus) Deskripsi Algoritma

JUDUL ALGORITMA  Algoritma NAMA ALGORITMA

{Penjelasan tentang algoritma, berisi uraian singkat cara kerja program, kondisi awal dan akhir dari program}  spesifikasi algoritma

Catatan

, dalam menulis nama-nama dalam algoritma harus

(7)

lainnya yang melekat dengan suatu proses, tipe, konstanta, variabel, sub-program dan lain-lainnya. Nama-nama yang bermakna disebut mnemonic.

DEKLARASI

(Semua nama yang dipakai, meliputi nama file, nama variable, nama konstanta, nama prosedur serta nama fungsi }

DESKRIPSI

(Semua langkah/aksi algoritma }

Contoh:

1). Kepala algoritma: Algoritma Luas_Lingkaran { Menghitung luas lingkaran dengan ukuran jari-jari tertentu .Algoritma menerima masukan jejari lingkaran, menghitung luasnya, dan menyajikan hasilnya ke piranti keluaran }

2) Deklarasi algoritma:

DEKLARASI { nama konstanta } const PHI = 3.14; { Nilai phi = 22/7 }

{ nama peubah } var R : real; { input jejari lingkaran bilangan riil } l_Lingkaran : real; { luas lingkaran bilangan riil }

{ nama sub program } procedure TUKAR (input/output A:integer, input/output B:integer)

{Mempertukankan nilai A dan B.Parameter A dan B sudah terdefinisi nilainya.Setelah pertukaran, A berisi nilai B dan B berisi nilai A }

(8)

{ Baca data jejari lingkaran R.Jika R <= 0 tulis pesan data salah, selain itu hitung luas ingkaran. Tampilkan luas lingkaran. } baca(R);

jika R <= 0 then tulis ("Data salah !") selain itu l_Lingkaran = PHI x R x R; tulis(l_Lingkaran);

Komputer mengerjakan transformasi data berdasarkan kumpulan perintah - program - yang telah dibuat oleh pemrogram. Kumpulan perintah ini harus dimengerti oleh komputer, berstruktur tertentu (syntax) dan bermakna. Bahasa pemrograman merupakan notasi untuk memberikan secara tepat program komputer.

Generasi bahasa pemrograman:

• Generasi I: machine language

• Generasi II: assembly language : Asssembler

• Generasi III: high-level programming language: C, PASCAL, dsb.

• Generasi IV: 4 GL (fourth-generation language): SQL

Gambar 2. Tingkatan bahasa komputer

(9)

Bahasa Pemrograman untuk tujuan tertentu.

Jenis Program Bahasa Terbaik Bahasa Terburuk

Data terstruktur ADA, C /C++,

PASCAL Assembler, BASIC

Proyek cepat BASIC PASCAL, ADA, Assembler

Eksekusi cepat Assembler, C BASIC, Intrepreter Language

Kalkulasi matematika FORTRAN PASCAL Menggunakan

memori dinamis PASCAL, C BASIC

Lingkungan

bermemori terbatas BASIC, Assembler, C FORTRAN

Program real-time ADA, Assembler, C BASIC, FORTRAN Manipulasi string BASIC, PASCAL C

Program mudah

dikelola PASCAL, ADA C, FORTRAN

Paradigma Bahasa Pemrograman

Imperative Declarative

(10)

 Program

Kata, ekspresi, pernyataan atau kombinasinya yang disusun dan dirangkai menjadi satu kesatuan prosedur yang berupa urutan langkah untuk menyelesaikan masalah yang diimplementasikan dengan menggunakan bahasa pemrograman sehingga dapat dieksekusi oleh computer.

Dibuat dengan tujuan untuk mempermudah user dalam memberikan instruksi / perintah ke computer.

 Bahasa Pemrograman

Merupakan prosedur/tata cara penulisan program. Pada bahasa pemrograman terdapat dua faktor penting, yaitu sintaks dan semantik. Sintaks adalah aturan gramatikal yang mengatur tata cara penulisan kata, ekspresi dan pernyataan. Semantik adalah aturan-aturan untuk menyatakan arti.

Fungsi Bahasa pemrograman adalah sebagai media untuk menyusun dan memahami serta sebagai alat komunikasi antara pemrogram dengan computer.

Tahap pengembangan program

Kualitas bahasa pemrograman:

Ekspresivitas : secara jelas menggambarkan algoritma yang dibuat oleh programmer

Dapat didefinisikan dengan baik : sintaks dan semantik harus konsisten tidak bermakna ganda

(11)

Modularitasnya : harus mempunyai fasilitas subprogramming (modul)

Fasilitas masukan dan keluaran : harus mendukung berbagai model file (sequential, random, access, index, multiple index) dalam pemrosesan masukan dan keluaran

Portabilitas : harus dapat dipakai pada berbagai mesin komputer yang berbeda Effisiensi : dapat dikompilasi dan dieksekusi secara cepat pada mesin komputer dimana program dapat diimplementasikan

Mudah dipelajari : harus mudah dipahami dan diajarkan

Bersifat umum : memiliki jangkauan luas untuk berbagai aplikasi

 Pemrograman

Merupakan proses mengimplementasikan urutan langkah untuk menyelesaikan suatu masalah (= algoritma) dengan menggunakan suatu bahasa pemrograman

Secara umum terdapat 4 kelompok Bahasa Pemrograman yaitu:

 Object Oriented Language (Visual dBase, Visual FoxPro, Dephi, Visual C)

 high level (Seperti Pascal dan Basic),

 middle level (Seperti Bahasa C), dan

 low level (Seperti Bahasa Assembly).

Compiler dan Interpreter

Perbedaan Compiler dan intepreter

Source Program

Penerje

mah :

+ Compiler

(12)

Intepreter Compiler 1. Menerjemahkan instruksi per

instruksi

Menerjemahkan secara keseluruhan

2. Soure program tidak harus ditulis lengkap

Source program ditulis lengkap

3. Bila terjadi kesalahan kompilasi, dapat langsung dibetulkan secara interaktif

Bila terjadi kesalahan kompilasi, source program harus dibenarkan dan proses kompilasi diulang kembali

4. Tidak menghasilkan objek program

Menghasilkan objek program

5. Tidak meghasilkan executable program karena langsung dijalankan pada saat program diinterpretasi

Menghasilkan executable program, sehingga dapat dijalankan di keadaan prompt sistem

6. Proses interpretasi terasa cepat, karena tiap-tiap instruksi langsung dikerjakan dan dapat dilihat hasilnya

Proses kompilasi lama, karena sekaligus menerjemahkan seluruh instruksi program

7. Source program terus dipergunakan karena tidak dihasilkan ececutable program

Source program sudah tidak dipergunakan lagi untuk mengerjakan program

8. Proses pengerjaan program lebih lambat, karena setiap instruksi dikerjakan harus diinterprestasikan ulang kembali

Proses pengerjaan program lebih cepat, karena executable program sudah dalam bahasa mesin

9. Keamanan dari program kurang terjamin, karena yang selalu digunakan adalah source program

Keamanan dari program lebih terjamin, karena yang dipergunakan ececutable program.

Tipe Pemrograman

1. Pemrograman Prosedural (Procedural Programming) *

Algoritma berisi urutan langkah-langkah penyelesaian masalah. Ini berarti algoritma adalah proses yang procedural.

Defenisi procedural adalah :

1. Tahap-tahap kegiatan untuk menyelesaikan suatu aktivitas

2. Metode langkah demi langkah secara eksak dalam memecahkan suatu masalah

(13)

instruksi dapat berubah karena adanya pencabangan kondisional. Data yang disimpan didalam memori dimanipulasi oleh instruksi secara beruntun atau procedural. Paradigma pemrograman seperti ini dinamakan pemrograman procedural.

Bahasa-bahasa tingkat tinggi seperti Cobol, Basic, Pascal, Fortran, dan C. mendukung kegiatan pemrograman procedural, karena itu mereka dinamakan juga bahasa procedural.

2. Pemrograman Terstruktur (Structured Programming) *

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.

Prosedur adalah bagian dari program untuk melakukan operasi-operasi yang sudah ditentukan dengan menggunakan parameter tertentu.

Bahasa pemrograman terstruktur adalah pemrograman yang mendukung abstraksi data, pengkodean terstruktur dan kontrol program terstruktur.

Kontrol program terstruktur (Tiga tipe Bahasa pemrograman terstruktur): 1. Terurut (sequence)

Setiap baris program akan dikerjakan secara urut dari atas ke bawah (setiap baris dikerjakan sekali atau tidak baris baris program yang tidak dikerjakan)

Start

End Baris program

Baris program

(14)

2. Pilihan (selection/conditional)

3. Pengulangan (repetition - loop)

Prinsip pemrograman terstruktur:

 Pendekatan rancangan dari atas ke bawah (top down design),

 Bagi program ke dalam modul-modul logika yang sejenis,

 Gunakan sub-program untuk proses sejenis yang sering digunakan,

 Gunakan pengkodean terstruktur: (IF - THEN, DO-.. WHILE ),

 Hindarkan penggunaan perintah GO TO bila tidak diperlukan,

 Gunakan nama-nama bermakna (mnemonic names), dan

 Buat dokumentasi yang akurat dan berarti. Start

Syarat Perintah1/aksi

Perintah2/aksi

(15)

Gaya penulisan program terstruktur:

Menggunakan indentasi sehingga jelas struktur dan kontrol program. Memudahkan pembacaan, pemahaman, penelusuran kesalahan dan pembuatan koreksi.

Contoh bahasa pemrograman terstruktur : Pascal. Cobol, RPG, ADA, C

3. Pemrograman Modular(Modular Programming) *

Program-program yang besar cenderung sulit terutama karena kompleksitas dari program tersebut, dan banyak bagian dengan hubungan yang rumit dan detail yang sebenarnya tidak perlu.

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.

Fungsi, Prosedur, atau kumpulan perintah-perintah dipaket menjadi suatu modul.

Dapat digunakan berulang-ulang, 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

(16)

Modular programming banyak dimanfaatkan oleh bahasa pemrograman OOP.

4. Pemrograman Fungsional (Functional Programming) *

Suatu bahasa dimana ekspresi disusun atas fungsi panggilan (bukan pernyataan). Fungsi: perintah-perintah yang terkumpul menjadi satu dan dapat menghasilkan suatu nilai.

Disebut bahasa pemrograman fungsional karena memang pada program seluruh kodenya berupa fungsi-fungsi. Bahasa pemrograman fungsional merupakan salah satu bahasa pemrograman yang memperlakukan proses komputasi sebagai evaluasi fungsi-fungsi matematika.

Isi dari Program fungsional tidak mengandung pernyataan perintah.

Contoh bahasa pemrograman fungsional : Lisp, Scheme, ML, Haskell, Erlang.

5. Pemrograman Berorientasi Objek* (OOP/Object-Oriented Programming)

Object / Objek : Elemen yang memiliki fungsi, metode, karakteristik tertentu yang dapat dibedakan dalam dunia nyata.

Class : Kumpulan Object-object yang memiliki kesamaan karakateristik.

(17)

 Mampu merefleksikan kebutuhan-kebutuhan user sebagaimana lakyaknya yang ada di dunia nyata.

 Relative lebih fleksibel dan mudah diadaptasikan terhadap perubahan suatu program.

 Memiliki feature yang memperkuat dan meningkatkan flesibilitas suatu objek dengan diadanya class, instance, encapsulation, inheritance, reuseability, dan polymorphism.

Karakteristik Bahasa Berorientasi Objek:

 Objek fisik: (Mobil dalam simulasi arus lalu lintas, Pesawat terbang dalam sistem pengontrolan lalu lintas udara)

 Elemen dari lingkungan : (Windows, Objek grafik ( garis, lingkaran, polygon))

 Penyimpanan data (array, stack, Link list, binary tree)

 Entitas orang (karyawan, mahasiswa, pelanggan, pasien)

Contoh bahasa pemrograman beroriantasi object : C++ , SmallTalks , Java

6. Pemrograman Visual

Bahasa Visual

• Penggunaan ekspresi visual(seperti grafik, gambar, atau ikon) yang sistematik dan mempunyai arti

• Bahasa visual adalah himpunan simbol-simbol grafis dan teks yang mempunyai arti semantik dan digunakan untuk menyelesaikan masalah komunikasi di dunia.

Bandingkan:

Bahasa Textual mengacu pada penggunaan karakter (teks).

Bahasa tekstual konvensional hanya bekerja pada 1 dimensi karena compiler/interpreter memproses program pada satu arah saja.

Pemrograman Visual :

“Penggunaan ekspresi visual (seperti grafik, gambar, atau ikon)

dalam proses pemrograman”

“Mengacu pada aktivitas yang memungkinkan pengguna untuk membuat program dalam dua (atau lebih) dimensi.

Bahasa Pemrograman Visual:

(18)

Visualisi:

“Penggunaan representasi visual (grafik, gambar, atau animasi) untuk

menggambarkan program, data, struktur atau tingkah laku dinamis sistem

yang kompleks.”

Sistem Pemrograman Visual:

“Sistem komputer yang mendukung baik pemrograman visual maupun visualisasi”

Contoh Bahasa Visual (1)

l Kenyataan, bahasa visual

• lebih tua dari saudaranya tekstual

• ada anggapan komputer tidak bisa apa-apa

l Contoh historis:

Examples of Visual Languages (2)

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)

• Petroglyphs: pahatan pada batu dari masyarakat prasejarah

(19)

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

Merupakan salah jenis bahasa pemrograman yang sudah memanfaatkan GUI (Graphic User Interface).

(20)

Referensi

Dokumen terkait

Setelah mengikuti serangkaian kegiatan pembelajaran dengan menggunakan model discovery learning dan metode ceramah, diskusi, serta tanya jawab peserta didik mampu memahami

Penerapan sistem pengelolaan kehadiran berbasis sidik jari (Finger Print Time Attendance) yang telah dilakukan di lokasi mitra pengabdian dapat menyelesaikan

Penerapan hukum terhadap harta dalam perjanjian perkawinan adalah berlaku saat perkawinan dilangsungkan yang bertujuan untuk melakukan proteksi terhadap harta

Petani yang memiliki umur yang semakin tua (&gt;50 tahun) biasanya semakin lamban mengadopsi ilmu baru atau inovasi baru yang dijelaskan oleh penyuluh dan cenderung hanya

Karena proses pendataan yang dipakai di PT.Kharisma Prima Abadi sela ma ini masih menggunakan proses manual dan menggunakan Microsoft Office Excel, maka penulis ingin membuat

NO MAHASISWA JUDUL TUGAS AKHIR WAKTU RUANG HARI/TGL Dya Kusik Kusuma Pembimbing 1 : Kusumo Dradjad Sutjahjo, S.T., M.Si.. - Pembimbing

Dalam wawancara singkat antara penulis dengan mbak Yuyun, penulis mendapatkan pernyataan bahwa mbak Yuyun telah benar-benar melakukan perkawinan di masa Iddah dengan

Lauster (Fasikhah, 1994), menyatakan bahwa kepercayaan diri merupakan suatu sikap atau perasaan yakin atas kemampuan diri sendiri sehingga orang yang bersangkutan tidak