Anda di halaman 1dari 26

ALGORITMA dan

PEMROGRAMAN I

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, Yogyakarta
4. Andri Kristanto, 2003, Algoritma dan Pemrograman dengan
C++, Graha Ilmu, Yogyakarta
5. Suarga, 2006, Algoritma dan Pemrograman, Andi, Yogyakarta
6. C++ An Introduction To Computing, 1995, Joel Adams-
Sanford Leestma-Larry Nyhoof, Prentice-Hall, Inc
7. C++ Programming Design, 1997, James P. Cohoon-Jack
W.Davidson, McGraw-Hill
8. Budi Raharjo, April 2004, Mengungkap Rahasia Pemrograman
Dalam C++, Informatika Bandung
9. 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 : TPMM
 UAS = 40%
 UTS = 25%
 ABSEN =5%
 TUGAS
= 30%
__________________________________
Jumlah = 100%
Cara menyelesaikan masalah
dengan komputer

 menjabarkan masalah
 merinci langkah untuk menyelesaikan
masalah
 membuat sarana interaksi manusia-
komputer

Cara menyelesaikan masalah


dengan komputer

masalah

Program solusi
algoritma 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:
Berurutan
Tidak 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 : mulai
Flowchart
Input
panjang, lebar

Luas  panjang * lebar

Output
Luas

selesai
Notasi I : mulai
Flowchart
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 / 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.

1. Pemrograman Prosedural
 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.
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 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
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 default for *pascal switch
auto do goto register typedef
break double *huge return union
case else if short unsigned
*cdecl enum int signed void
char extern *interrupt sizeof volatile
const *far long static while
continue float *near struct
Yang harus diketahui dari Bahasa C
1. Bersifat Case Sensitive, artinya bahasa C mem-
bedakan huruf besar & huruf kecil Contoh: Nn
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 fungsi
cout << “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 fungsi
cout << “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
Ukuran
Tipe Data 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;

Anda mungkin juga menyukai