Algoritma dan Pemrograman

dokumen-dokumen yang mirip
Yudha Dwi P. N. S.Kom. Pertemuan 3 Aturan Penulisan Teks Algoritma

Algoritma dan Pemrograman. Pertemuan Ke-8 Statement Pengulangan 1

Algoritma dan Pemrograman. Pertemuan Ke-7 Statement Pengendalian 2

Algoritma dan Pemrograman. Pertemuan Ke-5 Input dan Output

Algoritma dan Pemrograman. Pertemuan Ke-9 Statement Pengulangan 2

Algoritma dan Pemrograman Lanjut. Pertemuan Ke-7 Pencarian (Searching) 2

Algoritma dan Pemrograman. Pertemuan Ke-2 Dasar-dasar Algoritma

Algoritma dan Pemrograman. Pertemuan Ke-12 Tipe data array/larik 1

Algoritma dan Pemrograman Lanjut. Pertemuan Ke-6 Pencarian (Searching) 1

Algoritma dan Pemrograman Lanjut. Pertemuan Ke-8 Pengurutan (Sorting) 1

Algoritma dan Pemrograman Lanjut. Pertemuan Ke-11 Pointer 2

Algoritma dan Pemrograman Lanjut. Pertemuan Ke-5 Rekursif

Algoritma dan Pemrograman. Pertemuan Ke-11 Function

Algoritma dan Pemrograman Lanjut. Pertemuan Ke-9 Pengurutan (Sorting) 2

Algoritma dan Pemrograman Lanjut. Pertemuan Ke-2 Array (Larik)

Algoritma dan Pemrograman Lanjut. Pertemuan Ke-3 Record/Struct dan Array Of Record

Algoritma dan Pemrograman Lanjut. Pertemuan Ke-10 Pointer 1

Algoritma dan Pemrograman. Pertemuan Ke-4 Konsep Tipe Data, Operator Dan Identifier

PERTEMUAN 9-11 STATEMENT

Pertemuan Ke-2 (Teks Algoritma) Rahmady Liyantanto. S1 Teknik Informatika-Unijoyo

Algoritma Pemrograman

BAB V INPUT DAN OUTPUT

RENCANA PEMBELAJARAN SEMESTER (RPS)

Algoritma Pemrograman I

Algoritma dan Pemrograman Lanjut. Pertemuan Ke-14 Arsip (File) 3

Algoritma Pemrograman

MODUL PRAKTIKUM PERCABANGAN DAN PENGULANGAN

Algoritma dan Pemrograman Lanjut. Pertemuan Ke-13 Arsip (File) 2

Algoritma dan Pemrograman. Pertemuan Ke-1 Pengantar Algoritma

Algoritma Pemrograman

STRUKTUR DASAR ALGORITMA

SATUAN ACARA PERKULIAHAN MATA KULIAH PEMROGRAMAN PASCAL * (TK) KODE / SKS: KK /2 SKS

Algoritma & Pemrograman 1. Muhamad Nursalman Pendilkom/Ilkom Universitas Pendidikan Indonesia

Algoritma dan Struktur Data I Mia Fitriawati, S.Kom, M.Kom

Pernyataan FOR Pernyataan WHILE Pernyataan REPEAT. Dewi Sartika,M.Kom

LOGIKA ALGORITMA. Pertemuan 6. By: Augury

VARIABEL, TIPE DATA, KONSTANTA, OPERATOR DAN EKSPRESI. Pemrograman Dasar Kelas X Semester 2

Pengantar dalam Bahasa Pemrograman Turbo Pascal Tonny Hidayat, S.Kom

PENGULANGAN Bagian 1 : Notasi. Tim Pengajar KU1071 Sem

PERSEGI ANGKA-HURUF VERTIKAL

Kisi-Kisi Ujian Tengah Semester Algoritma dan Pemrograman Lanjut

2 ATURAN PENULISAN TEKS ALGORITMA

TIPE, NAMA, DAN NILAI

Minggu III STRUKTUR PEMILIHAN (KONTROL PROGRAM)

ALGORITMA (KOMPUTER) : ATURAN PENULISAN DAN STRUKTUR DASARNYA

Tipe Data dan Operator

Struktur Data. Belajar Struktur Data Menggunakan Pascal Pertemuan-1

PROCEDURE DAN FUNCTION

PEMROGRAMAN TERSTRUKTUR PERTEMUAN VI KOMPONEN KOMPONEN PEMROGRAMAN TERSTRUKTUR

Algoritma,Flowchart, Konsep

Pertemuan 4 ELEMEN-ELEMEN BAHASA PEMROGRAMAN

Algoritma dan Struktur Data

Universitas gunadarma. pascal. Bab 4- bab 10. Hana Pertiwi S.T

MODUL PRAKTIKUM. MODUL I - VIII Modul penuntun dan bahan praktikum matakuliah algoritma dan pemograman

SOAL C++ Created by Yuli Astuti,S.Kom Copyright 2009

ALGORITMA RINTA KRIDALUKMANA SISKOM UNDIP

Subprogram (dalam Bahasa C++ + Flowchart)

Sesi/Perkuliahan ke: I

Algoritma Shell Sort Ascending Dan Binary Sequential Search Menggunakan C

PRAKTIKUM 4 STATEMENT KENDALI

KONSEP DASAR BAHASA PASCAL

Latihan & Kisi-kisi UTS DASAR PEMROGRAMAN

RENCANA PEMBELAJARAN SEMESTER (RPS)

STRUKTUR DASAR ALGORITMA DAN PEMROGRAMAN STMIK AMIKOM YOGYAKARTA

04/03/2013. Absensi : 10% UTS : 30% UAS : 40% Tugas & Kuis : 20% By: Vilia Eka Meyana, M.Kom Institute Bisnis dan Informatika Indonesia

ALGORITMA DAN STRUKTUR DATA 1

SMA SANTO PAULUS PONTIANAK

Pengantar dalam Bahasa Pemrograman Turbo Pascal

Konstruksi Dasar Algoritma

PERTEMUAN V PEMROGRAMAN TERSTRUKTUR DENGAN VISUAL C Setiap bahasa C mempunyai satu fungsi dengan nama main (program utama).

STRUKTUR DASAR ALGORITMA

Pertemuan 3 Penyeleksian Kondisi dan Perulangan

DASAR PEMROGRAMAN. Institut Teknologi Sumatera

Teori Algoritma. Struktur Algoritma

Bab 1 Algoritma dan Pemrograman Tersruktur

Bambang Heru S Departemen Teknik Kimia Universitas Indonesia

CCH1A4 / Dasar Algoritma & Pemrogramanan

Contoh soal Struktur Program Pascal (Seleksi tingkat propinsi TOKI 2004)

Perulangan Muh. Izzuddin Mahali, M.Cs. Pertemuan 3. Algoritma dan Struktur Data. PT. Elektronika FT UNY

UJIAN TENGAH SEMESTER GANJIL TAHUN STMIK AMIKOM YOGYAKARTA

Satuan Acara Perkuliahan (SAP) UNIVERSITAS GUNADARMA

INPUT & OUTPUT SEQUENCE STATEMENT SELECTION STATEMENT. Pengantar Logika & Teknik Pemrograman Politeknik Negeri Jakarta TA.

PRAKTIKUM 7 TIPE DATA TERSTRUKTUR. Larik : deretan data yang punya type data sejenis. Misalnya : Daftar Nomor Telpon, Tabel Pajak dll.

PERTEMUAN 2 ALGORITMA & PEMROGRAMAN

Algoritma Pemrograman

Notasi Algoritma Separator Special Character Kesalahan pada program Yoannita

1. Kompetensi Mengenal dan memahami notasi-notasi algoritma yang ada.

PENDAHULUAN. Brigida Arie Minartiningtyas, M.Kom

Algoritma. Menurut Kamus Besar Bahasa Indonesia Algoritma adalah urutan logis pengambilan putusan untuk pemecahan masalah.

ALGORITMA & FLOWCHART

SOAL DAN JAWABAN UTS PEMROGRAMAN DASAR KELAS X

Algoritma Pemrograman

PENGENALAN BAHASA C DAN C++

Object Oriented Programming (OOP)

Pengenalan Bahasa C. Yuli Sun Hariyani D3 Teknik Telekomunikasi Institut Teknologi Telkom

Memulai Pemrograman Pascal dengan Delphi Console 1. Buka aplikasi delphi 2. Pilih File New Other Console Application

Teori Algoritma TIPE DATA

Notasi Algoritma Separator Special Character. Dasar Pemrograman. Yoannita, S.Kom.

IMPLEMENTASI NOTASI ALGORITMIK KE DALAM BAHASA C

IT234 - Algoritma dan Struktur Data. Ramos Somya

Transkripsi:

Algoritma dan Pemrograman Bab III Notasi Algoritmik Pertemuan Ke-3 Notasi Algoritma dan bahasa pemrograman C++ Disusun Oleh : Wilis Kaswidjanti, S.Si.,M.Kom. Jurusan Teknik Informatika Fakultas Teknologi Industri Universitas Pembangunan Nasional Veteran Yogyakarta 15

Algoritma dan Pemrograman Bab III Notasi Algoritmik Judul Materi : Notasi Algoritma dan Bahasa PemrogramanC++ Deskripsi Materi : Materi ini membahas notasi pseudocode dan konveri ke bahasa pemrograman C++ Tujuan Instruksional Khusus : 1. Menjelaskan notasi-notasi pseudocode 2. Mengimplentasikan notasi algoritmik ke bahasa pemrograman C++ 16

BAB III Notasi Algoritmik 1. PENDAHULUAN Teks algoritma tidak sama dengan teks program komputer. Tidak ada standarisasi untuk menuliskan teks algoritma, setiap orang dapat saja membuat notasi algoritmiknya sendiri, sedangkan program komputer adalah realisasi teknis dari algoritma dalam notasi bahasa pemrograman. Agar notasi algoritma mudah ditranslasikan kedalam notasi bahasa pemrograman, maka sebaliknya notasi algoritmik tersebut berupa pseudo-code yang berkoresponden dengan bahasa pemrograman secara umum. 2. PENYAJIAN 2.1. Contoh Notasi Contoh 1 : Pernyataan dalam notasi deskriptif : tulis nilai X Maka pseudocodenya dalam notasi algoritmik menjadi : write(x) output(x) Notasi algoritmik dalam bentuk pseudo-code mudah ditranslasikan kedalam notasi bahasa pemrograman. Notasi write di dalam algoritma berkoresponden dengan printf dalam bahasa C writeln dalam bahasa pascal cout dalam bahasa C++. Jadi translasi write(x,y) ke dalam masing-masing bahasa tersebut adalah : Bahasa C printf( %d,x); Bahasa pascal writeln(x); Bahasa C++ cout << X; Contoh 2 : Pernyataan dalam notasi deskriptif Pseudo-code dalam notasi algoritmik menjadi : isikan nilai X ke dalam min : min X Notasi berarti mengisi (assign) peubah (variable) min dengan nilai X. Bahasa C min = X; Bahasa Pascal min : = X; Bahasa C++ min = X; 17

2.2. Struktur Teks Algoritma Ada dua buah algoritma sederhana, contoh ilustrasi mengenai teks algoritma Bab III Notasi Algoritmik Pertama : Hello world Program ini pertama kali dikemukakan oleh Brian W. Kernighsn (penemu bahasa C) Algoritma untuk menulis Hello world: Algoritma Hello_world program untuk mencetak Hello world DEKLARASI tidak ada DESKRIPSI Write( Hello world ) Kedua : luas segiempat Yaitu untuk menghitung luas segiempat dengan menggunakan rumus: Luas = panjang x lebar. Program menghitung luas segiempat adalah : PROGRAM LuasSegi4 program untuk menghitung luas segiempat dengan diketahui panjang dan lebarnya DEKLARASI Luas,panjang,lebar :integer ALGORITMA panjang 10 lebar 5 Luas panjang * lebar write(luas) Atau : 18

Algoritma LuasSegi4 program untuk menghitung luas segiempat dengan diketahui panjang dan lebarnya DEKLARASI Luas,panjang,lebar :integer DESKRIPSI panjang 10 lebar 5 Luas panjang * lebar write(luas) Bab III Notasi Algoritmik Atau : LuasSegi4 algoritma untuk menghitung luas segiempat dengan diketahui panjang dan lebarnya KAMUS Luas,panjang,lebar :integer ALGORITMA panjang 10 lebar 5 Luas panjang * lebar write(luas) Dengan melihat contoh sederhana di atas, ada beberapa format penulisan algoritma yang dipakai, tetapi pada intinya sama saja. Maka pada dasarnya algoritma selalu disusun berdasarkan 3 bagian, antara lain: 1). Judul Algoritma Judul adalah bagian yang terdiri atas nama algoritma dan penjelasan tentang algoritma tersebut. Nama algoritma sebaiknya singkat dan jelas dan algoritmanya juga harus sesuai dengan spesifikasi masalah yang diberikan. Misalnya contoh algoritma di atas, mempunyai judul: Algoritma Hello_world algoritma untuk mencetak Hello world 19

2). Deklarasi / Kamus Digunakan untuk mengumumkan semua nama yang dipakai didalam algoritma beserta propertiesnya (misal type). Nama tersebut dapat berupa nama konstanta, nama peubah, nama tipe, nama procedure dan nama fungsi. Semua nama yang dipakai di dalam algoritma harus dideklarasikan sebelum digunakan. Misalnya, algoritma Hello_world mengandung bagian deklarasi yang kosong, sedangkan algoritma LuasSegi4 berisi deklarasi nama-nama peubah yang digunakan di dalam algoritma beserta tipenya, yatu: DEKLARASI Luas,panjang,lebar :integer Penjelasan : peubah Luas, panjang dan lebar digunakan dalam algorima nama-nama peubah ini beserta tipenya harus diumumkan di bagian deklarasi sebelum mereka digunakan. 3). Algoritma / Deskripsi Algoritma adalah bagian inti dari sebuah algoritma dari suatu program. Bagian ini berisi deskripsi langkah-langkah penyelesaian masalah berupa pernyataan-pernyataan, pernyatan tersebut ditulis dengan notasi. Setiap pernyataan dalam algoritma dibaca dari atas ke bawah Misalnya: notasi write yaitu untuk mencetak data/informasi read untuk membaca data 20

3. Format Syntax Algoritma JUDUL ALGORITMA Nama Algoritma DEKLARASI/ KAMUS Lokal / Umum Type namatipe : tipe [subrange] Type namatipe : array [min..maks] of tipe Namavar : tipe Namavar : array [ min..maks] of tipe Const nama = nilai Procedure namaproc (Input/Output[daftar_nama_parameter:tipe]) TUBUH ALGORITMA/ DESKRIPSI ALGORITMA Notasi Assigment Notasi Kondisional/pemilihan Notasi Pengulangan URAIAN ALGORITMA Kumpulan algoritma masing-masing Procedure pun Function yang dipanggil dari Tubuh Algoritma Variabel adalah nilai yang ditampung dari satu variabel dan dapat berubah dan dapat berubah-rubah. Konstanta adalah nilai yang tidak dapat berubah. 21

4. Translasi Teks Algoritma ke dalam Teks Program Agar dapat dilaksanakan oleh computer, maka algoritma harus ditranslasikan ke dalam suatu notasi bahasa pemrograman. Translasi Notasi Kamus pada Algoritma ke Bahasa Pemrograman No Algoritma Pascal C dan C++ Kamus/Deklarasi Deklarasi Deklarasi 1 USES daftar_unit #include<nama_unit> 2 CONST namaconst = nilai CONST namaconst = nilai; #define namaconst nilai; 3 TYPE namatipe : tipedata [subrange] Contoh : Type max : integer 4 namavar : tipedata [subrange] Contoh : n : integer m : max TYPE namatipe = tipedata; Contoh : Type max = integer; VAR namavar : namatipe; Contoh : var n : integer; m : max; Typedef tipedata namatipe; Contoh : Typedef int max; namatipe daftarnamavar; Contoh : int n; max m; 22

Translasi Notasi Pengendalian Program Pada Algoritma Ke Bahasa Pemrograman FLOW CHART ALGORITMA PASCAL C C++ namavariabel:=harga namavaribel harga namavar := harga; namavar = harga; namavar = harga; variabel variabel daf_item daf_item daf_item INPUT(daftarvariabel) read (daftarvariabel) OUTPUT(daftar_item) write(daftar_item) Item dapat berupa : Variable, konstanta, string, character, angka, nilai Boolean, dan ekspresi Contoh : output ( z =,z) read(daftarvariabel); readln(daftarvariabel); readln ; write(daftar_item); writeln(daftar_item): scanf( %format, &var); getch(varchar); getche(): gets() printf( string dan %format,var); printf( string ); putch( char ); puts( string ); cin >> var; cin.get(); cin.getline(); var dapat berupa : var = getch(); var = getche(); cout << var; cout << konstanta; printf(); puts(); salah kondisi benar akibat IF<kondisi>THEN akibat ENDIF IF (kondisi) THEN akibat; IF (kondisi) THEN Begin akibat; End; if (kondisi) akibat; if (kondisi) akibat; if (kondisi) akibat; if (kondisi) akibat; Catatan : akibat bisa berupa pernyataan tunggal (sintaks tanpa tanda kurung) maupun majemuk (dengan tanda kurung) 23

Benar akibat1 FLOW CHART ALGORITMA PASCAL C C++ kondisi Salah akibat2 IF <kondisi> THEN akibat1 ELSE akibat2 ENDIF IF (kondisi) THEN ELSE akibat2 IF (kondisi) THEN Begin End ELSE Begin akibat2 End; If (kondisi) else akibat2; If (kondisi) else akibat2; Catatan : Setelah else, dapat bersarang (nested) notasi percabangan lainnya. If (kondisi) else akibat2; If (kondisi) else akibat2; kondisi harga1 harga2 harga_n else Akibat1 Akibat1 Akibat1 Akibat lain DEPEND ON <ekspresi> <ekspresi 1> : akibat 1 <ekspresi 2> : akibat 2 : <ekspresi n> : akibat n CASE namavarcase OF expkonstan 1 : akibat1 expkonstan 2 : akibat2 : expkonstan n : akibatn ELSE akibatlain ENDCASE Case varcase Of Nilai1: Nilai2: akibat2; : : Nilain: akibatn; Else akibatlain; End; Switch (ekspresi) case nilai1: break; case nilai2: akibat2; break; : case nilain: akibatn; break; default:akibatlain; Switch (ekspresi) case nilai1: break; case nilai2: akibat2; break; : case nilain: akibatn; break; default:akibatlain; 24

FLOW CHART ALGORITMA PASCAL C C++ kondisi ulang? Daftar_aksi benar salah WHILE<kondisi_ulang>DO daftar_aksi ada aksi thd var kondisi ENDWHILE WHILE (kondisi_ulang) DO Begin ada aksi thd var kondisi End; while (kondisi_ulang) /*ada aksi thd var kondisi*/ while (kondisi_ulang) /*ada aksi thd var kondisi*/ Daftar_aksi salah dowhile benar kondisi ulang? benar Daftar_aksi kondisi ulang? repeatuntil REPEAT Daftar_aksi ada aksi thd var kondisi UNTIL <kondisi_stop> REPEAT Daftar_aksi; ada aksi thd var kondisi UNTIL (kondisi_stop); do /*ada aksi thd var kondisi*/ while (kondisi_ulang); do /*ada aksi thd var kondisi*/ while (kondisi_ulang); salah 25

FLOW CHART ALGORITMA PASCAL C C++ tidak Var awal,akhir, step terpenuhi daftar_aksi Namavar TRAVERSAL [awal..akhir] FOR var awal TO/DOWNTO akhir STEP counter DO jika awal <akhir FOR namavar := awal TO akhir DO Begin End; jika akhir <awal FOR namavar := awal DOWNTO akhir DO begin daftar_aksi End; for(awal,akhir,step) /*parameter dari fungsi for berupa ungkapan kondisi*/ for(awal,akhir,step) /*parameter dari fungsi for berupa ungkapan kondisi*/ catatan : daftar_aksi bisa tunggal bisa majemuk. Contoh Translasi algoritma kedalam bahasa pemrograman. Contoh 1 : buatlah algoritma tukar nilai. ALGORITMA: Algoritma TUKAR mempertukarkan nilai A dan B DEKLARASI A,B: integer Temp : integer DESKRIPSI A 1 B 2 Temp A (simpan nilai A kedalam temp) A B (simpan nilai B kedalam A) B temp (isikan nilai temp kedalam B) 26

Bahasa Pascal Program TUKAR_AB; program utama untuk mempertukarkan nilai A dan B. (*DEKLARASI*) var A,B:integer; temp : integer; begin A:=1; B:=2; cetak nilai X dan Y sebelum pertukaran write( A=,A); write( A=,A); temp:=a; A:=B; B:=temp; cetak nilai X dan Y setelah pertukaran write( A=,A); write( A=,A); end; Bahasa C (dapat juga ditulis dengan bahasa C++) /*Program TUKAR_XY untuk mempertukarkan nilai X dan Y.*/ #include<stdio.h> #include<conio.h> /*DEKLARASI*/ int A,B,temp; main() A=1; B=2; /*cetak nilai A dan B sebelum pertukaran*/ printf( A=%d \n,a); printf( B=%d \n,b); temp=a; A=B; B=temp; /*cetak nilai A dan B setelah pertukaran*/ printf( A=%d \n,a); printf( B=%d \n,b); 27

Bahasa C++ #include <iostream.h> void main () int A, B, temp; A = 1; B = 2; /*cetak nilai A dan B sebelum pertukaran*/ cout << "A = " << A <<endl; cout << "B = " << B <<endl; temp=a; A=B; B=temp; /*cetak nilai A dan B setelah pertukaran*/ cout << "A = " << A <<endl; cout << "B = " << B <<endl; PENUTUP Pada dasarnya algoritma selalu disusun berdasarkan 3 bagian, antara lain Judul Algoritma, Deklarasi/akmus dan Deskripsi/algoritma. Agar dapat dilaksanakan oleh computer, maka algoritma harus ditranslasikan ke dalam suatu notasi bahasa pemrograman. Agar notasi algoritma mudah ditranslasikan kedalam notasi bahasa pemrograman, maka sebaliknya notasi algoritmik tersebut berupa pseudo-code yang berkoresponden dengan bahasa pemrograman secara umum. SOAL-SOAL 1. Buatlah algoritma dan program bahasa C++ untuk menukar 3 buah nilai. Misal X=10, Y=20 dan Z=30 menjadi X=20, Y=30, Z=10. 2. Tentukan keluaran/output dari algoritma dibawah ini: Algoritma Cetak Deklarasi A, B, X : integer 28

Deskripsi A 8 B 6 X A + B Output(X); Dan ubahlah menjadi bahasa C++. Referensi : Buku Teks 1. Munir, Rinaldi (2005), Algoritma dan Pemrograman dalam Bahasa Pascal dan C, Buku 1, Edisi Ketiga, Penerbit Informatika Bandung. 2. Charibaldi, N. (2004), Modul Kuliah Algoritma Pemrograman I, Edisi Kedua, Yogyakarta Buku Acuan/Referensi 1. Brassard, Gilles (1999), Fundamentals of algorithma, PrinteceHall. 2. Jarne, Stroustrup B. (1997), C++ Programming language, AT &T. 3. Kristanto, Andri (2003), Algoritma pemrograman C++, Graha Ilmu. 4. Schildt,Herbert (2000), The Complete Reference C++, McGraw-Hill. 5. Sedgewick, R. (2000), Algoritma Third edition In C part 5, Addison Wesley. 29