ALGORITMA dan PEMROGRAMAN I - reezeki2011 · PDF filePEMROGRAMAN I By : Sri Rezeki ... Kelas...
Transcript of ALGORITMA dan PEMROGRAMAN I - reezeki2011 · PDF filePEMROGRAMAN I By : Sri Rezeki ... Kelas...
ALGORITMA dan PEMROGRAMAN I
By : Sri Rezeki Candra Nursari
Literatur :
1. Rinaldi Munir, 1998, Algoritma dan Pemrograman 1 & 2;Informatika Bandung
2. Antony Pranata, 2005, Algoritma dan Pemrograman ; Graha Ilmu, Yogyakarta
3. Abdul Kadir, 2003, Pemrograman C++, Andi, Yogyakarta4. Andri Kristanto, 2003, Algoritma dan Pemrograman dengan
C++, Graha Ilmu, Yogyakarta5. Suarga, 2006, Algoritma dan Pemrograman, Andi, Yogyakarta6. C++ An Introduction To Computing, 1995, Joel Adams-
Sanford Leestma-Larry Nyhoof, Prentice-Hall, Inc7. C++ Programming Design, 1997, James P. Cohoon-Jack
W.Davidson, McGraw-Hill8. Budi Raharjo, April 2004, Mengungkap Rahasia Pemrograman
Dalam C++, Informatika Bandung9. Yosua Onesimus Suheru, 2004, Trik Memecahkan Masalah
Dengan Tiga bahasa Pemrograman – C++, Pascal dan Visual Basic, Gava Media, Yogyakarta
10. 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 manusia-
komputer
algoritmaProgramkomputer
solusi
masalah
Cara menyelesaikan masalah dengan komputer
Apakah Algoritma itu? Algoritma berasal dari nama penulis buku Arab
yaitu Abu Ja'far Muhammad ibnu Musa Al-Khuwarizmi Algoritma adalah:
Langkah-langkah yang logis dan terstruktur untuk menyelesaikan suatu masalah
Ciri Algoritma yang baik:BerurutanTidak berarti ganda (ambiguous)Berhingga
5 ciri penting yang harus dipunyai Algoritma :1. Algoritma harus berhenti setelah mengerja-
kan 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 high-level (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
OutputLuas
selesai
Notasi I :Flowchart
mulai
Inputpanjang, lebar
Luas panjang * lebar
OutputLuas
selesai
Notasi II (Pseudocode):Algoritma Luas_Segiempat{Menghitung luas segiempat dengan memasukkan
nilai lebar dan panjang segiempat}Deklarasi
luas, panjang, lebar : integerDeskripsi
Input (panjang)Input (lebar)Proses luas panjang * lebarOutput (luas)
atauNotasi II (Pseudocode):
Algoritma Luas_Segiempat{Menghitung luas segiempat dengan memasukkan
nilai lebar dan panjang segiempat}Deklarasi
luas, panjang, lebar : integerDeskripsi
Read(panjang)Read(lebar)luas panjang * lebarWrite(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
AtauProgram : 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
diselesaikan2. Menganalisa persoalan (Diagram
Alur)3. Menulis program4. Menguji program5. Menyimpan sebagai dokumentasi
Beberapa Paradigma dalam Pemrograman Prosedural / Terstruktur Paradigma Fungsional Paradigma Deklaratif / Logika Paradigma Object-Oriented Paradigma Konkuren Paradigma 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.
program dibedakan antara bagian data dengan bagian instruksi.
Bagian instruksi terdiri atas runtutan (se-quence) 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.
1. Pemrograman Prosedural
Didasari pada konsep pemetaan dan fungsi pada matematika.
Fungsi : asosiasi (pemetaan) antara 2 type yaitu domaian dan range, yang dapat berupa: Type dasarType terkomposisi (bentukan)
2. Pemrograman Fungsional
Notasi Fungsional: Nama fungsi, Domain (parameter input) Range (definisi hasil)
Contoh :Nama-fungsi : domaian range
2. Pemrograman Fungsional
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
3. Pemrograman Deklaratif/Logika
4. Pemrograman BerorientasiObjek
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
Data
Fungsi Anggota
Fungsi Anggota
Obyek
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 sifat-sifat dari suatu kelas diturunkan ke kelas lain
Polymorphism (polimorphisme)Konsep yang menyatakan bahwa sesuatu yang sama dapat memiliki berbagai bentuk dan perilaku berbeda
Object Oriented Programming (OOP)
5. Paradigma Konkuren Erat hubungannya dengan arsitektur perangkat keras yang memungkinkan pemrosesan secara paralel atau perangkat lunak sistem terdistribusi yang mengelola akses konkuren
Didasari entity dan relasi, dan pemrograman dalam bahasa query yang memungkinkan diperolehnya suatu himpunan nilai
6. Pemrograman Relasional
BAHASA C++
Peubah (Variabel), Tipe Data, dan Operator
Kata-kata Kunci Untuk C++*asmautobreakcase*cdeclcharconstcontinue
defaultdodoubleelseenumextern*farfloat
forgoto*hugeifint*interrupt
long*near
*pascalregisterreturnshortsignedsizeofstaticstruct
switchtypedefunionunsigned
voidvolatilewhile
Yang harus diketahui dari Bahasa C
1. Bersifat Case Sensitive, artinya bahasa C mem-bedakan huruf besar & huruf kecil Contoh: Nn
2. 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
3. Komentar ditulis diantara ‘/*’ dan ‘*/’ atau ‘//’
Bagian-bagian program C++- Contoh program :
//contoh program c++ untuk membuat komentar
#include <iostream.h> Header#include <conio.h>
void main() nama fungsi{clrscr(); menghapus layar Blok / Tubuh fungsicout << “Contoh program C++\n” ;}Mencetak di layar Akhir statement
Bagian-bagian program C++- Contoh program :
//contoh program c++ untuk membuat komentar
#include <iostream.h> Header
void main() nama fungsi{
Blok / Tubuh fungsicout << “Contoh program C++\n” ;}Mencetak di layar Akhir statement
Proses Pembentukan File exe
ELEMEN DASAR C++
NAMA PENGENAL Nama pengenal adalah nama-nama yang ditentukan
oleh programmer (harus berbeda dengan kata-kata kunci)
Ketentuannya sebagai berikut : Panjangnya dapat berupa 1 karakter atau lebih, tetapi
hanya 32 karakter pertama yang akan diperhatikan Karakter pertama harus berupa huruf atau karakter garis
bawah (_) Karakter-karakter khusus yang lain dan blank kecuali garis
bawah tidak dapat digunakan Huruf besar dan huruf kecil dianggap berbeda (case
sensitive) Tidak boleh sama dengan kata-kata kunci
Pengenal (Identifier)- Penamaan Pengenal :
- Terdiri dari satu atau lebih karakter- Bisa berupa gabungan huruf, digit, dan garis bawah- Berawalan huruf atau garis bawah- Case sensitive- Contoh : GajiPegawai, gaji_pegawai, _gajipegawai, gaji2- Penamaan yang salah :
- 1nama (tidak boleh diawali angka)- Gaji-pegawai (tidak boleh ada tanda -)- #gajipegawai (simbol # tidak boleh dipakai)- Gaji pegawai (tidak boleh pakai spasi)
Tipe Data- Tipe data dasar pada C++ :
- char- int- short- long- float- double- long double
Tipe Data
3.4 x 10e-4932 hingga 1.1 x 10e493210 bytelong double
3.4 x 10e-38 hingga 3.4 x 10e386 byteFloat
1.7 x 10e-308 hingga 1.7 x 10e3088 bytedouble
-32768 hingga 327672 byteint
-2.147.438.648 hingga 2.147.438.6474 byteLong
0 hingga 2551 bytechar (unsigned char)
Tipe DataUkuranMemori Jangkauan Nilai
char (signed char) 1 byte -128 hingga 127
Soal Ibu Budi belanja di Indomaret. Setiap kali ibu Budi
belanja, selalau mendapat diskon 10% dari total belanjanya. Hitung Diskon yang didapatkan oleh Ibu Budi dan Total yang harus dibayarkan oleh Ibu budi kepada Indomaret.
Perintah : Buat Flowchart Buat Pseudocode Buat Algoritma
Output diskon, ttlbyr Input ttlbelanja Proses
diskon 10%*ttlbelanja ttlbyr ttlbelanja - diskon
DEKLARASI VARIBEL Variabel adalah suatu pengenal yang digunakan
untuk menyimpan suatu nilai dan nilai dari variabel dapat berubah-ubah selama proses dari program
Contoh deklarasi variabel int x,y mendeklarasikan variabel x dan y bertipe
integer float a,b char huruf double x long int x register x
Variabel dan Konstanta- Variabel adalah tempat untuk menampung suatu nilai
dan nilai tersebut dapat dirubah selama program berlangsung
- Deklarasi variabel:- int angka- char huruf- char nama[20]- float harga
- Inisialisasi variabelContoh :- int jumlah = 10;- char kata = ‘a’;
Variabel dan Konstanta
- Konstanta bernamaContoh definisi : - const float PHI = 3.141592;- const int MAX = 15;