PENGANTAR ALGORITMA PEMROGRAMAN (IS1313)
Ir. Roedi Goernida, MT. (
[email protected])
Program Studi Sistem Informasi – Fakultas Rekayasa Industri Institut Teknologi Telkom Bandung 1
2011
Struktur Sistem Komputer 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 - Scooping - Identifikasi
- Blue print - SpekTek
- Unit - Functional - Flow graph - Performance - Security - Integration
- Instalasi - Pelatihan
- Perbaikan bugs - Reinstalasi - Backup data - Perbaikan
2 Hand-out: Algoritma Pemrograman
IS1313 - 01
Hal. 1 / 25
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 3
Hand-out: Algoritma Pemrograman
IS1313 - 01
Hal. 2 / 25
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
4 Hand-out: Algoritma Pemrograman
IS1313 - 01
Hal. 3 / 25
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 5
Hand-out: Algoritma Pemrograman
IS1313 - 01
Hal. 4 / 25
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 6
Hand-out: Algoritma Pemrograman
IS1313 - 01
Hal. 5 / 25
Aturan penulisan Algoritma 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 langkahlangkah penyelesaian masalah yang ditulis dengan menggunakan suatu notasi. 7 Hand-out: Algoritma Pemrograman
IS1313 - 01
Hal. 6 / 25
Contoh penulisan Algoritma + Pseudo-code (1/3) 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 8 Hand-out: Algoritma Pemrograman
IS1313 - 01
Hal. 7 / 25
Contoh penulisan Algoritma + Pseudo-code (2/3) 2. Luas & keliling lingkaran 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 R Luas Keliling
= : : :
3.14 real real real
{nilai} {jari-jari lingkaran} {luas lingkaran} {keliling lingkaran}
DESKRIPSI: read(R) luas ← phi*R*R keliling ← 2*phi*R write(luas, keliling) 9 Hand-out: Algoritma Pemrograman
IS1313 - 01
Hal. 8 / 25
Contoh penulisan Algoritma + Pseudo-code (3/3)
3. Komisi Salesman
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 NilaiPenjualan Komisi
: string : real : real
DESKRIPSI: read(Nama, NilaiPenjualan) Komisi ← 0.15 * NilaiPenjualan write(Nama, Komisi) 10 Hand-out: Algoritma Pemrograman
IS1313 - 01
Hal. 9 / 25
Pengertian Pemrograman (1/3)
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.
11 Hand-out: Algoritma Pemrograman
IS1313 - 01
Hal. 10 / 25
Pengertian Pemrograman (2/3)
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
12 Hand-out: Algoritma Pemrograman
IS1313 - 01
Hal. 11 / 25
Pengertian Pemrograman (3/3) 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 solusi Memilih algoritma Menulis program Menguji program Dokumentasi Pemeliharaan program 13 Hand-out: Algoritma Pemrograman
IS1313 - 01
Hal. 12 / 25
Bahasa Pemrograman & Translator (1/3) 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. 14
Hand-out: Algoritma Pemrograman
IS1313 - 01
Hal. 13 / 25
Bahasa Pemrograman & Translator (2/3)
Translator
- Target code - Object code - Object program
Source code
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
●
●
15 Hand-out: Algoritma Pemrograman
IS1313 - 01
Hal. 14 / 25
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
- INTERPRETER Source code Interpreter
Result
Input data
- COMPILER Source code
Compiler
Object code
Preprocessor Hand-out: Algoritma Pemrograman
Linker
Libraries IS1313 - 01
Exe
Result
Input data 16 Hal. 15 / 25
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 17
Hand-out: Algoritma Pemrograman
IS1313 - 01
Hal. 16 / 25
Flowchart (2/3) 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 prosedurprosedur 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.
18 Hand-out: Algoritma Pemrograman
IS1313 - 01
Hal. 17 / 25
Flowchart (3/3) 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 19 Hand-out: Algoritma Pemrograman
IS1313 - 01
Hal. 18 / 25
Pembuatan Flowcart ●
● ●
● ●
●
●
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. 20
Hand-out: Algoritma Pemrograman
IS1313 - 01
Hal. 19 / 25
Simbol-simbol Flowcart
Proses
Proses Altenatif
Dokumen
Keputusan
Persiapan nilai awal
Operasi manual
Masukan manual
Disk storage Sub-program/ Sub-proses
Konektor
Terminator Manual
I/O Disket
Display
Operasi
Perpindahan / transportasi
Inspeksi
Penundaan
Hand-out: Algoritma Pemrograman
Data Input/Output
Aliran data
Penyimpanan / File
21
IS1313 - 01
Hal. 20 / 25
Contoh Flowcart (1/3) Mulai
Mulai
1
Beri nilai awal TOTAL
1
Total= 0 I = 0
Hitung Rata-rata
Rata = Total / N
Read N
Baca data
Print Total, Rata
Tampilkan hasil Total & Rata-rata Read X
Hitung TOTAL
Selesai
Selesai Data sudah habis?
Ya
Total= Total + X
Tidak I = I + 1
1 1
Y
I = N
T
22 Hand-out: Algoritma Pemrograman
IS1313 - 01
Hal. 21 / 25
Contoh Flowcart (2/3)
23 Hand-out: Algoritma Pemrograman
IS1313 - 01
Hal. 22 / 25
Contoh Flowcart (3/3)
24 Hand-out: Algoritma Pemrograman
IS1313 - 01
Hal. 23 / 25
Flowcart vs Java Mulai
int Total = 0; int I = 0; Scanner s = new Scanner(System.in);
Total= 0 I = 0
int N; System.out.println (“Nilai N = “; N = s.nextInt();
Read N
Y
Total= Total + X
Total:=Total+ X
I = I + 1
I = I + 1
I = N
Rata = Total / N
int X; System.out.println (“Nilai X = “; X = s.nextInt();
Read X
1
1
Rata = Total / N
System.out.println (“Total = “ + Total; System.out.println (“Rata = “ + Rata;
Print Total, Rata
Selesai
T
25 Hand-out: Algoritma Pemrograman
IS1313 - 01
Hal. 24 / 25
Contoh-contoh Kelulusan Mahasiswa
Luas lingkaran:
Mulai Mulai Baca Nama, Nilai
Input R
Ya Nilai >= 56
Keterangan = “Lulus”
Phi=3.14
Tidak Keterangan = “Tidak Lulus
L ← 3.14*R*R
Tulis Nama, Keterangan
Tulis L
Selesai
Selesai 26
Hand-out: Algoritma Pemrograman
IS1313 - 01
Hal. 25 / 25
Selesai
27