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: Nn 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 << “Contoh program C++\n” ; } Mencetak di layar Akhir statement
Bagian-bagian program C++ -
Contoh program : //contoh program c++ #include
void main() {
untuk membuat komentar Header
nama fungsi
Blok / Tubuh fungsi cout << “Contoh program C++\n” ; } Mencetak di layar Akhir statement
Pros es Pem bent uka n 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 Tipe Data
Ukuran Memori
Jangkauan Nilai
char (signed char)
1 byte
-128 hingga 127
char (unsigned char)
1 byte
0 hingga 255
int
2 byte
-32768 hingga 32767
Long
4 byte
-2.147.438.648 hingga 2.147.438.647
Float
6 byte
3.4 x 10e-38 hingga 3.4 x 10e38
double
8 byte
1.7 x 10e-308 hingga 1.7 x 10e308
long double
10 byte
3.4 x 10e-4932 hingga 1.1 x 10e4932
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 variabel Contoh : - int jumlah = 10; - char kata = ‘a’;
Variabel dan Konstanta - Konstanta bernama Contoh definisi : - const float PHI = 3.141592; - const int MAX = 15;