PENGANTAR ALGORITMA PEMROGRAMAN - SI-35-02 · PDF fileberupa kode numerik 0 dan 1. ......
Transcript of PENGANTAR ALGORITMA PEMROGRAMAN - SI-35-02 · PDF fileberupa kode numerik 0 dan 1. ......
1
Ir. Roedi Goernida, MT.([email protected])
PENGANTARALGORITMA PEMROGRAMAN
(IS1313)
Program Studi Sistem Informasi – Fakultas Rekayasa IndustriInstitut Teknologi Telkom
Bandung
2011
2
Sistem Komputer terdiri dari:.
◊ Brainware → user
◊ Hardware → monitor, keyboard, motherboard, memory, processor, harddisk, add. peripheral etc
◊ Software → O/S, programming language, database, application program etc
Product Life Cycle:
Analysis → Design → Development → Testing → Implementation → Maintenance → EOL
Hand-out: Algoritma Pemrograman IS1313 - 01 Hal. 1 / 25
Struktur Sistem Komputer
- Scooping- Identifikasi - Blue print
- SpekTek
- Unit- Functional- Flow graph- Performance- Security- Integration
- Instalasi- Pelatihan
- Perbaikan bugs- Reinstalasi- Backup data- Perbaikan
3
Pengertian Algoritma (1/3)
Algoritma.
Urutan atau rentetan langkah-langkah logis tertentu untuk menyelesaikan atau memecahkan suatu masalah yang disusun secara sistematis & logis.
→ Mengoperasikan perangkat komputer, menjalankan motor/mobil, membuat kue dll
Algoritma merupakan cetak-biru dari suatu program & sebaiknya disusun sebelum program dibuat.
Kriteria suatu algoritma:► Memiliki masukan & keluaran► Efektifitas & efisien► Terstruktur
Hand-out: Algoritma Pemrograman IS1313 - 01 Hal. 2 / 25
4
Pengertian Algoritma (2/3)
Sifat suatu algoritma:► Tidak menggunakan simbol-simbol (sintax) dari suatu
bahasa pemrograman.► Tidak tergantung pada suatu bahasa pemrograman.► Notasi dapat dipergunakan pada seluruh bahasa
pemrograman.
Contoh:
Algoritma menghitung luas persegi panjang:
● Masukan panjang (P)
● Masukan lebar (L)
● Luas ← P x L
● Tulis Luas
Hand-out: Algoritma Pemrograman IS1313 - 01 Hal. 3 / 25
5
Pengertian Algoritma (3/3)
Jenis proses algoritma.
● Sequence process.● Selection process.● Iteration process.● Concurrent process.
Ciri algoritma.● Algoritma memiliki nol atau lebih masukan.● Algoritma memiliki nol atau lebih keluaran.● Setiap langkah harus didefinisikan dengan tepat & tidak
berarti-dua (Ambiguitas) → Definiteness / kepastian.● Algoritma harus berhenti setelah mengerjakan sejumlah
langkah terbatas → Finiteness / ada batas.● Algoritma harus efektif → sederhana
Hand-out: Algoritma Pemrograman IS1313 - 01 Hal. 4 / 25
6
Pseudo-code
Kode atau tanda yang menyerupai (pseudo) program atau merupakan penjelasan cara menyelesaikan suatu masalah.
Contoh: mencari bilangan terbesar dari dua bilangan yang diinputkan.
Algoritma Pseudo-code
1. Masukkan bilangan pertama 1. Input a
2. Masukkan bilangan kedua 2. Input b
3. Jika bilangan pertama > bilangan kedua maka kerjakan langkah 4, jika tidak, kerjakan langkah 5.
3. If a > b then kerjakan langkah 4
4. Tampilkan bilangan pertama 4. print a
5.Tampilkan bilangan kedua 5. print b
Nilai A ditambah dengan 5 A ← A + 5
Cetak nilai A bila lebih besar dari 10 IF A > 10 THEN PRINT A
Dari dua bilangan A dan B, cari bilangan yang terbesar
IF A > B THEN PRINT A ELSE PRINT B
Hand-out: Algoritma Pemrograman IS1313 - 01 Hal. 5 / 25
7
Judul Algoritma.� Bagian yang terdiri atas nama algoritma dan penjelasan
(spesifikasi) tentang algoritma tersebut.
� Nama sebaiknya singkat dan menggambarkan apa yang dilakukan oleh algoritma tersebut
Deklarasi.� Bagian untuk mendefinisikan semua nama yang digunakan di
dalam program.
� Nama tersebut dapat berupa nama tetapan, peubah, tipe, prosedur dan fungsi.
Deskripsi.Merupakan kumpulan instruksi yang berisi uraian langkah-langkah penyelesaian masalah yang ditulis dengan menggunakan suatu notasi.
Aturan penulisan Algoritma
Hand-out: Algoritma Pemrograman IS1313 - 01 Hal. 6 / 25
8
1. Kelulusan Mahasiswa
Algoritma Kelulusan_mhs
{diberikan nama dan nilai mahasiswa, jika nilai
tersebut lebih besar atau sama dengan 56, maka
mahasiswa tersebut dinyatakan lulus, jika tidak
maka dinyatakan tidak lulus}
DEKLARASI:
Nama : string
Nilai : integer
Keterangan : string
DESKRIPSI:
read (nama, nilai)
if nilai >= 56 then
keterangan = ‘lulus’
else
keterangan = ‘tidak lulus’
write (nama, keterangan)
endif
Contoh penulisan Algoritma + Pseudo-code (1/3)
Hand-out: Algoritma Pemrograman IS1313 - 01 Hal. 7 / 25
9
Algoritma Luas_Kell_Lingkaran {judul algoritma}
{menghitung luas dan keliling lingkaran untuk
ukuran jari-jari tertentu. Algoritma menerima
input jari-jari lingkaran, menghitung luas dan
kelilingnya serta mencetak luas lingkaran ke
piranti keluaran –- spesifikasi algoritma}
DEKLARASI:
Const phi = 3.14 {nilai}
R : real {jari-jari lingkaran}
Luas : real {luas lingkaran}
Keliling : real {keliling lingkaran}
DESKRIPSI:
read(R)
luas ← phi*R*R
keliling ← 2*phi*R
write(luas, keliling)
Contoh penulisan Algoritma + Pseudo-code (2/3)
Hand-out: Algoritma Pemrograman IS1313 - 01 Hal. 8 / 25
2. Luas & keliling lingkaran
10
3. Komisi Salesman
Contoh penulisan Algoritma + Pseudo-code (3/3)
Hand-out: Algoritma Pemrograman IS1313 - 01 Hal. 9 / 25
Algoritma Komisi_Salesmen
{baca nama dan hasil penjualan salesman,
kemudian hitung besarnya komisi sebesar 15%
dari hasil penjualan dan tampilkan nama dan
komisinya ke layar}
DEKLARASI:
Nama : string
NilaiPenjualan : real
Komisi : real
DESKRIPSI:
read(Nama, NilaiPenjualan)
Komisi ← 0.15 * NilaiPenjualan
write(Nama, Komisi)
11
Program komputer.
Sekumpulan instruksi (statement) yang dimengerti oleh komputer.
Bagian Program
Suatu program pada dasarnya terdiri dari 3 bagian:
Masukan : bisa ada, bisa tidak
Proses
Keluaran : min. satu ouput.
Pengertian Pemrograman (1/3)
Hand-out: Algoritma Pemrograman IS1313 - 01 Hal. 10 / 25
12
Pemrograman.
Suatu kumpulan instruksi-instruksi atau source code yang dibuat oleh seorang programmer.
◊ Pemrograman Prosedural/Terstruktur --> Pascal, C◊ Pemrograman Fungsional → fungsi matematika.◊ Pemrograman Modular,◊ Pemrograman Object-oriented → C++, Java◊ Pemrograman Functional-oriented → SQL, HTML◊ Pemrograman Declaratif
Pengertian Pemrograman (2/3)
Hand-out: Algoritma Pemrograman IS1313 - 01 Hal. 11 / 25
13
Bahasa pemrograman.
Alat atau tools yang dipergunakan untuk membuat suatu program.
Contoh: Basic, Pascal, Cobol, C, C++, PHP, Java etc
Langkah dalam pemrograman,
Pendefinisian permasalahan.Menemukan solusiMemilih algoritmaMenulis programMenguji programDokumentasiPemeliharaan program
Pengertian Pemrograman (3/3)
Hand-out: Algoritma Pemrograman IS1313 - 01 Hal. 12 / 25
14
Bahasa tingkat rendah (low level language).◊ Bahasa mesin◊ Berisi kode-kode mesin yang hanya dapat
diinterpretasikan langsung oleh mesin komputer berupa kode numerik 0 dan 1.
Bahasa tingkat tinggi (high level language). ◊ Merupakan Bahasa Pemrograman Generasi ke-3.◊ Bahasa manusia◊ Banyak ragam → Java, Pascal, C, C++, Cobol dll.◊ Memberi banyak fasilitas kemudahan dalam
programming → variabel, tipe data, konstanta, loop, struktur kontrol, prosedur, dll.
Bahasa Pemrograman & Translator (1/3)
Hand-out: Algoritma Pemrograman IS1313 - 01 Hal. 13 / 25
15
Program yang ditulis dalam bahasa pemrograman akan diterjemahkan ke dalam bahasa mesin → biner digit dengan menggunakan penterjemah.
Translator:● Interpreter → menterjemahkan baris per baris instruksi.
Contoh: Basic● Compiler → menterjemahkan setelah seluruh instruksi
ditulis. Contoh: Java, Pascal, Cobol
Bahasa Pemrograman & Translator (2/3)
Source code- Target code- Object code- Object program
Translator
Hand-out: Algoritma Pemrograman IS1313 - 01 Hal. 14 / 25
16
Bahasa Pemrograman & Translator (3/3)
Interpreter Compiler
Input – source code - Basic, PHP, ASP dll- Program dari user
Pascal, C, C++, Cobol
Output - Tidak ada object code- Translasi dilakukan internal
- Bahasa Assembly- Exe
Source code
Input data
Interpreter Result
Sourcecode
Compiler LinkerObjectcode
Exe Result
Input data
LibrariesPreprocessor
- INTERPRETER
- COMPILER
Hand-out: Algoritma Pemrograman IS1313 - 01 Hal. 15 / 25
17
Flowchart (1/3)
Definisi:● Merupakan bagan yang menggunakan simbol-simbol
tertentu dalam menunjukkan alir di dalam suatu program atau prosedur sistem secara logika.
● Bagan yang mempunyai alir yang menggambarkan langkah-langkah penyelesaian suatu masalah yang juga merupakan cara penyajian dari suatu algoritma.
Macam-macam flowchart● System flowchart● Document / Paperwork / Form flowchart ● Schematic flowchart● Program flowchart● Process flowchart
Hand-out: Algoritma Pemrograman IS1313 - 01 Hal. 16 / 25
18
System flowchart.
� Bagan alir yang menggambarkan arus / alur pekerjaan secara keseluruhan dari suatu sistem dengan menjelaskan urut-urutan dari prosedur yang terdapat di dalam sistem tersebut.
� Deskripsi dilakukan secara grafik dari urutan prosedur-prosedur yang terkombinasi yang membentuk suatu sistem
Document / Paperwork / Form flowchart.
Digunakan untuk menelusuri alur form dan laporan sistem dari satu bagian ke bagian lain baik bagaimana alur form dan laporan diproses, dicatat dan disimpan.
Flowchart (2/3)
Hand-out: Algoritma Pemrograman IS1313 - 01 Hal. 17 / 25
19
Schematic flowchart.Menggambarkan suatu sistem atau prosedur dengan menggunakan gambar-gambar komputer, peripheral, form-form atau peralatan lain yang digunakan dalam menggunakan suatu sistem selain simbol-simbol flowchart standar.
Program flowchart.Flowchart yang dihasil dari System Flowchart yang akan memberikan keterangan yang lebih rinci pada setiap langkah program atau prosedur yang sesungguhnya dilaksanakan dalam urutan yang tepat saat terjadi.
Process flowchart.Teknik penggambaran rekayasa industrial yang memecah dan menganalisis langkah-langkah dalam suatu prosedur atau sistem
Flowchart (3/3)
Hand-out: Algoritma Pemrograman IS1313 - 01 Hal. 18 / 25
20
Pembuatan Flowcart
Hand-out: Algoritma Pemrograman IS1313 - 01 Hal. 19 / 25
● Merupakan gambaran hasil analisa suatu permasalahan
● Tidak ada kaidah yang baku● Bervariasi antara satu pemrogram dengan pemrogram
lainnya● Terdiri dari bagian utama: input → proses → output● Hindari pengulangan proses yang tidak perlu dan
logika yang berbelit, sehingga jalannya proses menjadi singkat.
● Jalannya proses digambarkan dari atas ke bawah dan diberikan tanda panah untuk memperjelas.
● Sebuah flowchart diawali dari satu titik START / MULAI dan diakhiri dengan END / SELESAI.
21
Simbol-simbol Flowcart
Proses Proses Dokumen Keputusan Data Altenatif Input/Output
Persiapan Operasi Masukan Disk storage Sub-program/nilai awal manual manual Sub-proses
Konektor Terminator I/O Display AliranManual Disket data
Hand-out: Algoritma Pemrograman IS1313 - 01 Hal. 20 / 25
Operasi Perpindahan / Inspeksi Penundaan Penyimpanan /transportasi File
22
Mulai
Beri nilaiawal TOTAL
Baca data
HitungTOTAL
Data sudahhabis?
HitungRata-rata
Tampilkan hasilTotal &
Rata-rata
1
1
Selesai
TidakYa
Rata =
Total / N
Total, Rata
1
Selesai
Mulai
Total= 0
I = 0
Read N
I = N1Y
Read X
Total=
Total + X
I =
I + 1
T
Hand-out: Algoritma Pemrograman IS1313 - 01 Hal. 21 / 25
Contoh Flowcart (1/3)
23
Contoh Flowcart (2/3)
Hand-out: Algoritma Pemrograman IS1313 - 01 Hal. 22 / 25
24
Contoh Flowcart (3/3)
Hand-out: Algoritma Pemrograman IS1313 - 01 Hal. 23 / 25
25
Flowcart vs Java
Rata =
Total / N
Total, Rata
1
Selesai
Mulai
Total= 0
I = 0
Read N
I = N1Y
Read X
Total=
Total + X
I = I + 1
T
Hand-out: Algoritma Pemrograman IS1313 - 01 Hal. 24 / 25
int Total = 0;
int I = 0;
Scanner s = new Scanner(System.in);
int N;
System.out.println(“Nilai N = “;
N = s.nextInt();
Total:=Total+ X
System.out.println(“Total = “ + Total;
System.out.println(“Rata = “ + Rata;
int X;
System.out.println(“Nilai X = “;
X = s.nextInt();
I = I + 1
Rata = Total / N
26
Contoh-contoh
Hand-out: Algoritma Pemrograman IS1313 - 01 Hal. 25 / 25
Mulai
TulisNama, Keterangan
Keterangan =“Tidak Lulus
Nilai >= 56
Selesai
Tidak
Ya
BacaNama, Nilai
Keterangan =“Lulus”
Mulai
Tulis L
L ← 3.14*R*R
Selesai
Input R
Phi=3.14
Kelulusan MahasiswaLuas lingkaran:
27
Selesai