ALGORITMA dan PEMROGRAMAN I - reezeki2011

113 downloads 1303 Views 411KB Size Report
Rinaldi Munir, 1998, Algoritma dan Pemrograman 1 & 2;. Informatika Bandung ... Andri Kristanto, 2003, Algoritma dan Pemrograman dengan. C++, Graha Ilmu ...
ALGORITMA dan PEMROGRAMAN I By : Sri Rezeki Candra Nursari

Literatur : 1.

2.

3. 4.

5. 6.

7.

8.

9.

10.

Rinaldi Munir, 1998, Algoritma dan Pemrograman 1 & 2; Informatika Bandung Antony Pranata, 2005, Algoritma dan Pemrograman ; Graha Ilmu, Yogyakarta Abdul Kadir, 2003, Pemrograman C++, Andi, Yogyakarta Andri Kristanto, 2003, Algoritma dan Pemrograman dengan C++, Graha Ilmu, Yogyakarta Suarga, 2006, Algoritma dan Pemrograman, Andi, Yogyakarta C++ An Introduction To Computing, 1995, Joel AdamsSanford Leestma-Larry Nyhoof, Prentice-Hall, Inc C++ Programming Design, 1997, James P. Cohoon-Jack W.Davidson, McGraw-Hill Budi Raharjo, April 2004, Mengungkap Rahasia Pemrograman Dalam C++, Informatika Bandung Yosua Onesimus Suheru, 2004, Trik Memecahkan Masalah Dengan Tiga bahasa Pemrograman – C++, Pascal dan Visual Basic, Gava Media, Yogyakarta Inge Martina, Agustus 1997, Turbo C++ Dengan Pemrograman Berorientasi Objek, Elex Media Komputindo, jakarta

PENGANTAR ALGORITMA

Penilaian : Gasal TA 2011/2012 UAS - Open = 40%  UTS - Open = 25%  ABSEN =5%  TUGAS/NILAI ASISTEN = 30% __________________________________ Jumlah = 100% 

Cara menyelesaikan masalah dengan komputer menjabarkan masalah  merinci langkah untuk menyelesaikan masalah  membuat sarana interaksi manusiakomputer 

Cara menyelesaikan masalah dengan komputer masalah

algoritma

Program komputer

solusi

Apakah Algoritma itu?  Algoritma berasal dari nama penulis buku Arab yaitu Abu Ja'far Muhammad ibnu Musa AlKhuwarizmi  Algoritma adalah: Langkah-langkah yang logis dan terstruktur untuk menyelesaikan suatu masalah  Ciri Algoritma yang baik: Berurutan Tidak berarti ganda (ambiguous) Berhingga

5 ciri penting yang harus dipunyai Algoritma : 1. Algoritma harus berhenti setelah mengerjakan sejumlah langkah. Program yang tidak pernah berhenti adalah program yang berisi algoritma yang salah 2. Setiap langkah, harus didefinisikan dengan tepat dan tidak berarti ganda 3. Algoritma memiliki nol/lebih masukan (input) 4. Algoritms memiliki nol/lebih keluaran (output) 5. Algoritma harus efektif

Notasi Algoritma  



Notasi I : diagram alir (flowchart) Notasi II: pseudo-code Contoh masalah : menghitung luas segiempat.

Simbol-simbol pada Flowchart

Notasi II : pseudo-code 



Pseudocode adalah cara untuk menuliskan sebuah algoritma secara highlevel (level tingkat tinggi). Biasanya Pseudocode dituliskan dengan kombinasi Bahasa Inggris dan notasi matematika. Biasanya sebuah Pseudocode tidak terlalu detail dibandingkan dengan program. Isu-isu detail dalam program yang sifatnya teknis tidak dibahas di dalam Pseudocode.

Notasi II : pseudo-code 







Pseudocode adalah kode atau tanda yang meneyerupai (pseudo) atau merupakan penjelasan cara menyelesaikan masalah. Pseudocode sering digunakan oleh seseorang untuk menuliskan algoritma dari suatu permasalahan. Pseudocode berisikan langkah-langkah untuk menyelesaikan suatu permasalahn [hampir sama dengan algoritma], hanya saja bentuknya sedikit berbeda dari algoritma Pseudocode menggunakan bahasa yang hampir menyerupai bahasa pemrograman selain itu biasanya pseudocode menggunakan bahasa yang mudah dipahami secara universal dan juga lebih ringkas dari pada algoritma

Algoritma 

Ciri-ciri algoritma : Ada input  Ada proses  Ada output  Memiliki instruksi-instruksi yang jelas dan tidak ambigu 

Algoritma 

Sifat algoritma : Tidak menggunakan simbol atau sintaks dari suatu bahasa pemrograman  Tidak tergantung pada suatu bahasa pemrograman  Notasi-notasinya dapat digunakan untuk seluruh bahasa manapun 

Contoh Algoritma dan Pseudocode – “Mencari Luas Persegi panjang”

Notasi I : Flowchart

mulai Input panjang, lebar

Luas  panjang * lebar Output Luas selesai

Notasi I : Flowchart

mulai Input panjang, lebar

Luas  panjang * lebar Output Luas selesai

Notasi II (Pseudocode): Algoritma Luas_Segiempat {Menghitung luas segiempat dengan memasukkan nilai lebar dan panjang segiempat} Deklarasi luas, panjang, lebar : integer Deskripsi Input (panjang) Input (lebar) Proses luas  panjang * lebar Output (luas)

atau Notasi II (Pseudocode): Algoritma Luas_Segiempat {Menghitung luas segiempat dengan memasukkan nilai lebar dan panjang segiempat} Deklarasi luas, panjang, lebar : integer Deskripsi Read(panjang) Read(lebar) luas  panjang * lebar Write(luas)

Program : serangkaian instruksi yang disusun untuk menyelesaikan sebuah masalah dengan menggunakan komputer Kegiatan membuat program disebut Pemrograman (Programming) Orang yang menulis program disebut Pemrogram (Programmer)

Program : serangkaian instruksi yang disusun untuk menyelesaikan sebuah masalah dengan menggunakan komputer Atau Program : adalah perwujudan atau implementasi teknis Algoritma yang ditulis dalam bahasa pemrogaman tertentu sehingga dapat dilaksanakan oleh komputer

Programming dibagi dalam 5 tahap : 1. Mengerti persoalan yang akan diselesaikan 2. Menganalisa persoalan (Diagram Alur) 3. Menulis program 4. Menguji program 5. Menyimpan sebagai dokumentasi

Beberapa Paradigma dalam Pemrograman      

Prosedural Paradigma Paradigma Paradigma Paradigma Paradigma

/ Terstruktur Fungsional Deklaratif / Logika Object-Oriented Konkuren Relasional

Paradigma bahasa Pemrograman :

1. Pemrograman Prosedural 



Algoritma berisi urutan langkah-langkah penyelesaian masalah  proses yang procedural. Definisi Prosedural menurut Kamus Besar Bahasa Indonesia: 1. Tahap-tahap kegiatan untuk menyelesaikan suatu aktivitas. 2. Metode langkah demi langkah secara eksak dalam memecahkan suatu masalah.

1. Pemrograman Prosedural program dibedakan antara bagian data dengan bagian instruksi.  Bagian instruksi terdiri atas runtutan (sequence) instruksi yang dilaksanakan satu per satu secara berurutan oleh pemroses. Alur pelaksanaan instruksi dapat berubah karena adanya pencabangan kondisional.  Data yang disimpan di dalam memori dimanipulasi oleh instruksi secara beruntun atau procedural. 

2. Pemrograman Fungsional Didasari pada konsep pemetaan dan fungsi pada matematika.  Fungsi : asosiasi (pemetaan) antara 2 type yaitu domaian dan range, yang dapat berupa: 

Type dasar  Type terkomposisi (bentukan) 

2. Pemrograman Fungsional 

Notasi Fungsional:   



Nama fungsi, Domain (parameter input) Range (definisi hasil)

Contoh : 

Nama-fungsi : domaian  range

3. Pemrograman Deklaratif/Logika Didasari oleh pendefinisian relasi antar individu yang dinyatakan sebagai predikat  Sebuah program logik adalah kumpulan aksioma (fakta dan aturan deduksi)  Ketika program dieksekusi, user mengajukan pertanyaan (query), dan program akan menjawab apakah pernyataan itu dapat dideduksi dari aturan dan fakta yang ada 

4. Pemrograman Berorientasi Objek 

Kerangka berpikir PBO berbeda dengan pemrograman tradisional.  Pemrograman tradisional : memisahkan antara data, dan prosedur yang mengolah data tersebut.  PBO : data dan prosedur ini dipadukan sebagai sebuah obyek.

Object Oriented Programming (OOP)  

Program terdiri dari obyek Obyek terdiri dari data dan fungsi anggota Obyek Data Fungsi Anggota Fungsi Anggota

Object Oriented Programming (OOP) Data bersifat tersembunyi bagi fungsi-fungsi di luar fungsi anggota  Data diakses dengan cara mengakses fungsi anggota  Kelas (class) adalah kumpulan dari obyek yang sama 

Object Oriented Programming (OOP) 



Karakteristik OOP : - Encapsulation - Inheritance - Polymorphism Encapsulation (pembungkusan) Pengemasan data dan fungsi dalam satu wadah bernama obyek

Object Oriented Programming (OOP) 



Inheritance (pewarisan) Merupakan sifat yang memungkinkan sifatsifat dari suatu kelas diturunkan ke kelas lain Polymorphism (polimorphisme) Konsep yang menyatakan bahwa sesuatu yang sama dapat memiliki berbagai bentuk dan perilaku berbeda

5. Paradigma Konkuren  Erat hubungannya dengan arsitektur perangkat keras yang memungkinkan pemrosesan secara paralel atau perangkat lunak sistem terdistribusi yang mengelola akses konkuren

6. Pemrograman Relasional 

Didasari entity dan relasi, dan pemrograman dalam bahasa query yang memungkinkan diperolehnya suatu himpunan nilai

BAHASA C++ Peubah (Variabel), Tipe Data, dan Operator

Kata-kata Kunci Untuk C++ *asm auto break case *cdecl char const continue

default do double else enum extern *far float

for goto *huge if int

*pascal register return short signed *interrupt sizeof long static *near struct

switch typedef union unsigned

void volatile while

Yang harus diketahui dari Bahasa C 1.

2.

3.

Bersifat Case Sensitive, artinya bahasa C membedakan huruf besar & huruf kecil Contoh: Nn Deklarasi didefinisikan sebelum kata main() adalah deklarasi GLOBAL, artinya semua nama yang didefinisikan didalam deklarasi global dikenal diseluruh bagian program, termasuk didalam fungsi/prosedur yg ada didlm program. Deklarasi didefinisikan didalam main(), maka nama didalam bagian deklarasi (disebut deklarasi lokal) hanya dikenal oleh program utama saja, tidak dikenal oleh fungsi/prosedur Komentar ditulis diantara ‘/*’ dan ‘*/’ atau ‘//’

Bagian-bagian program C++ -

Contoh program : //contoh program c++ #include #include

untuk membuat komentar Header

void main() nama fungsi { clrscr(); menghapus layar Blok / Tubuh fungsi cout