Upload presentasi
Presentasi sedang didownload. Silahkan tunggu
1
Algoritma dan Pemrograman 1
Laily Hermawanti, S.T., M.Kom No Hp:
2
Bab 2 Cara Penulisan Algoritma dalam Bahasa Natural, Flowchart, dan Pseudo Code
3
Algoritma dalam Bahasa Natural
4
NOTASI PENULISAN Dibagi menjadi 3 cara, yaitu :
Notasi yang dinyatakan dalam kalimat Natural/Deskriptif Notasi yang dinyatakan dalam flow chart Notasi yang dinyatakan dengan pseudo code
5
Penulisan Algoritma 1. Dalam bahasa natural (Bahasa Indonesia, Bahasa Inggris, dan bahasa manusia lainnya) Tapi sering membingungkan (ambiguous) 2. Menggunakan flow chart (diagram alir) Bagus secara visual akan tetapi repot kalau algoritmanya panjang 3. Menggunakan pseudo-code Sudah lebih dekat ke bahasa pemrograman, namun sulit dimengerti oleh orang yang tidak mengerti pemrograman 2004 EL Algoritma v.1.2
6
Contoh Algoritma Dalam Bahasa Natural
Ambil bilangan pertama dan set maks sama dengan bilangan pertama Ambil bilangan kedua dan bandingkan dengan maks Apa bila bilangan kedua lebih besar dari maks, set maks sama dengan bilangan kedua Ambil blangan ketiga dan bandingan dengan maks Apabila bilangan ketiga lebih besar dari maks, set maks sama dengan bilangan ketiga Variabel maks berisi bilangan terbesar. Tayangkan hasilnya
7
Notasi yang dinyatakan dalam kalimat deskriptif
Deskripsi setiap langkah dijelaskan dengan bahasa yang jelas Cocok untuk algoritma yang pendek Relatif sulit untuk dikonversi ke bahasa pemrograman
8
Notasi yang dinyatakan dalam kalimat deskriptif (lanjut)
Contoh : Algoritma Bilangan Maksimum Diberikan tiga buah bilangan bulat. Carilah bilangan bulat maksimum diantara ketiga bilangan tersebut. Deskripsi : Mulai baca bilangan 1 baca bilangan 2 bandingkan bilangan 1 dan bilangan 2, kita ambil yang lebih besar, jika kedua bilangan tersebut sama besar, dapat kita ambil bilangan 1, dan sebut bilangan tersebut MAX baca bilangan 3 bandingkan MAX dengan bilangan 3, dan pilih yang lebih besar, jika keduanya sama besar, pilih MAX dan sebut bilangan tersebut MAX. keluarkan sebagai output MAX selesai
9
Flowchart (Diagram Alur)
10
Flow Chart flow chart (diagram alir)
(menggambarkan urutan langkah-langkah kegiatan /program mulai dari awal sampai akhir dengan menggunakan simbol atau gambar tertentu.) Kegunaan : mendesain dan mempresentasikan program
11
Flowchart adalah gambaran dalam bentuk diagram alir dari algoritma-algoritma dalam suatu program, yang menyatakan arah alur program tersebut.
12
FLOWCHART Flowchart lebih baik dibandingkan pseudocode
Merupakan gambaran dalam bentuk diagram alir dari algoritma-algoritma dalam suatu program yang menyatakan arah alur program tersebut Disajikan dalam bentuk grafik/gambar Dapat membantu programmer maupun orang lain dalam memahami alur program (apa saja input, proses dan output dari program) Representasi visual, karena itu lebih mudah dipahami Jumlah simbol yang digunakan sedikit, karena itu lebih sederhana dan lebih mudah dipelajari
13
Flowchart bagan yang menggambarkan urutan instruksi untuk proses dengan komputer dan hubungan antara suatu proses dengan proses lainnya dengan menggunakan simbol tidak digunakan untuk menggambarkan urutan langkah untuk memecahkan masalah, tetapi hanya untuk menggambarkan prosedur dalam sistem yang dibentuk -Alpro 2009-
14
Flowchart Bagan-bagan yang mempunyai arus
Menggambarkan langkah-langkah penyelesaian suatu masalah Merupakan salah satu cara penyajian algoritma
15
Tujuan Menggambarkan suatu tahapan penyelesaian masalah
Secara sederhana, terurai, rapi dan jelas Menggunakan simbol-simbol standar
16
Model / Jenis Flowchart
System Flowchart Program Flowchart
17
System Flowchart Menggambarkan suatu sistem peralatan komputer yang digunakan dalam proses pengolahan data serta hubungan antar peralatan tersebut Tidak digunakan untuk menggambarkan urutan langkah untuk memecahkan masalah Hanya untuk menggambarkan prosedur dalam sistem yang dibentuk
18
Program Flowchart Menggambarkan urutan logika dari suatu prosedur pemecahan masalah Dua jenis metode penggambaran program flowchart : Conceptual flowchart, menggambarkan alur pemecahan masalah secara global Detail flowchart, menggambarkan alur pemecahan masalah secara rinci
19
Simbol-simbol Flowchart
Flow direction symbols Digunakan untuk menghubungkan simbol satu dengan yang lain Disebut juga connecting line Processing symbols Menunjukan jenis operasi pengolahan dalam suatu proses / prosedur Input / Output symbols Menunjukkan jenis peralatan yang digunakan sebagai media input atau output
20
Flow Direction Symbols
Simbol arus / flow Menyatakan jalannya arus suatu proses Simbol communication link Menyatakan transmisi data dari satu lokasi ke lokasi lain Simbol connector Menyatakan sambungan dari proses ke proses lainnya dalam halaman yang sama Simbol offline connector Menyatakan sambungan dari proses ke proses lainnya dalam halaman yang berbeda
21
Processing Symbols Simbol process Simbol manual Simbol decision
Menyatakan suatu tindakan (proses) yang dilakukan oleh komputer Simbol manual Menyatakan suatu tindakan (proses) yang tidak dilakukan oleh komputer Simbol decision Menujukkan suatu kondisi tertentu yang akan menghasilkan dua kemungkinan jawaban : ya / tidak Simbol predefined process Menyatakan penyediaan tempat penyimpanan suatu pengolahan untuk memberi harga awal Simbol terminal Menyatakan permulaan atau akhir suatu program
22
Processing Symbols Simbol keying operation Simbol offline-storage
Menyatakan segal jenis operasi yang diproses dengan menggunakan suatu mesin yang mempunyai keyboard Simbol offline-storage Menunjukkan bahwa data dalam simbol ini akan disimpan ke suatu media tertentu Simbol manual input Memasukkan data secara manual dengan menggunakan online keyboard
23
Input / Output Symbols Simbol input/output Simbol punched card
Menyatakan proses input atau output tanpa tergantung jenis peralatannya Simbol punched card Menyatakan input berasal dari kartu atau output ditulis ke kartu Simbol magnetic tape Menyatakan input berasal dari pita magnetis atau output disimpan ke pita magnetis Simbol disk storage Menyatakan input berasal dari dari disk atau output disimpan ke disk
24
Input / Output Symbols Simbol document Simbol display
Mencetak keluaran dalam bentuk dokumen (melalui printer) Simbol display Mencetak keluaran dalam layar monitor
25
Lambang Flowchart Terminator (mulai/selesai) Input/output Proses
Decision (percabangan) Data Flow (Aliran data) Preparation (pemberian nilai awal suatu variabel) Call (memanggil prosedur/fungsi) Connector (di halaman yg sama Connector ( di halaman lain)
26
Berikut adalah beberapa simbol yang digunakan dalam menggambar suatu flowchart :
NAMA FUNGSI TERMINATOR Permulaan/akhir program GARIS ALIR (FLOW LINE) Arah aliran program PREPARATION Proses inisialisasi/pemberian harga awal PROSES Proses perhitungan/proses pengolahan data INPUT/OUTPUT DATA Proses input/output data, parameter, informasi PREDEFINED PROCESS (SUB PROGRAM) Permulaan sub program/proses menjalankan sub program DECISION Perbandingan pernyataan, penyeleksian data yang memberikan pilihan untuk langkah selanjutnya ON PAGE CONNECTOR Penghubung bagian-bagian flowchart yang berada pada satu halaman OFF PAGE CONNECTOR Penghubung bagian-bagian flowchart yang berada pada halaman berbeda
27
Pengolahan data START READ HABIS ? PROCESS WRITE END Tidak Ya
28
Menghitung luas persegi panjang
Start Input panjang Input lebar Luas panjang * lebar Print Luas End
29
Notasi yang dinyatakan dalam flow chart
Sama halnya dengan notasi deskriptif, notasi ini cocok untuk algoritma yang pendek Relatif sulit untuk dikonversi ke bahasa pemrograman
30
Pembuatan Flowchart Tidak ada kaidah yang baku.
Flowchart = gambaran hasil analisa suatu masalah Flowchart dapat bervariasi antara satu pemrogram dengan pemrogram lainnya. Secara garis besar ada 3 bagian utama: – Input – Proses – Output
31
Pembuatan Flowchart – cont.
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 dan diakhiri dengan END.
32
Contoh 1 Flowchart
33
Contoh 2 Flowchart
34
Exercise 1. Buatlah algoritma untuk menghitung luas dan keliling lingkaran. Dengan masukan berupa jari-jari. 2. Buatlah flowchart dari algoritma pada soal no 1 diatas. 3. Buatlah algoritma untuk mengecek bilangan di antara 2 bilangan masukan, apakah sama ataukah lebih besar salah satunya, dan tampilkan hasilnya. 4. Buatlah flowchart dari algoritma pada soal no 3 diatas.
35
Notasi yang dinyatakan dalam flowchart (lanjut)
Contoh : Algoritma Bilangan Maksimum Diberikan tiga buah bilangan bulat. Carilah bilangan bulat maksimum diantara ketiga bilangan tersebut. Deskripsi :
38
Algoritma dengan Flowchart
39
Mulai NA>60 Gagal Lulus Selesai Inputkan nilai (tugas,uts,uas)
NA = 25%tg+25%uts+50%uas NA>60 Gagal Lulus Selesai
40
Contoh FLOW CHART Start Masukkan a,b,c d = b^2 – 4ac Y d < 0 T
x1=(-b+sqrt(d))/2a x2 =(-b-sqrt(d))/2a Cetak Pesan “Akar imajiner” Cetak x1,x2 Stop
41
Notasi yang dinyatakan dengan pseudo code
Notasi yang menyerupai bahasa pemrograman tingkat tinggi Kemudahan mengkonversinya (mentranslasi ke notasi bahasa pemrograman) Intinya, Pseudo code adlh campuran antara bahasa alami dengan bahasa pemrograman
42
Notasi yang dinyatakan dalam pseudo code(lanjut)
Contoh : Algoritma Bilangan Maksimum Diberikan tiga buah bilangan bulat. Carilah bilangan bulat maksimum diantara ketiga bilangan tersebut. Deklarasi : Bil1,Bil2,Bil3 : integer {bilangan yang dicari maksimumnya} MAX : integer {variabel bantu} Deskripsi : Read (Bil1,Bil2) If Bil1 >= Bil2 then Bil1 = MAX Else Bil2 = MAX Read (Bil3) If Bil3 >= MAX then Bil3 = MAX Write (MAX)
43
Algoritma dengan pseudo-code
maks ← bilangan pertama if (maks < bilangan kedua) maks ← bilangan kedua if (maks < bilangan ketiga) maks ← bilangan ketiga 2004 EL Algoritma v.1.2
44
Algoritma dengan pseudo-code
maks ← bilangan pertama if (maks < bilangan kedua) maks ← bilangan kedua if (maks < bilangan ketiga) maks ← bilangan ketiga
45
Ad.1. Bagaimana merencanakan algoritma
Dengan Mendefinisikan masalah. Contoh : Permasalahan menghitung luas lingkaran, dengan data yang diketahui adalah diameter lingkaran. Rumus : ∏ . r2 dengan Phi = atau 22/7.
46
Luas = phi * radius * radius
Dengan flowchart / diagram alir Program Flowchart, yaitu bagan yang menggambar-kan urutan logika dari suatu prosedur pemecahan masalah. Start Phi = 3.14 Input (diameter) Radius = diameter/2 Luas = phi * radius * radius Output Luas Stop
47
Ad.2. Bagaimana menyatakan suatu algoritma (menulis algoritma)
Dengan psudocode Suatu cara penulisan algoritma agar ide dan logika dari algoritma dapat disampaikan/diekspresikan menggunakan gaya bahasa pemrograman tertentu. Phi 3.14 Input (diameter) Radius diameter / 2 Luar phi * radius * radius Output (Luas) End
48
Penulisan Algoritma dalam Bahasa Natural, Flowchart,
Contoh Soal Penulisan Algoritma dalam Bahasa Natural, Flowchart, Pseudo Code
49
Algoritma Dalam Bahasa Natural
Buat sebuah algoritma untuk memilih bilangan terkecil dari 3 buah bilangan Algoritma Dalam Bahasa Natural 1. Ambil bilangan pertama dan set kecil sama dengan bilangan pertama 2. Ambil bilangan kedua dan bandingkan dengan kecil 3. Apa bila bilangan kedua lebih kecil dari kecil, set kecil sama dengan bilangan kedua 4. Ambil blangan ketiga dan bandingan dengan kecil 5. Apabila bilangan ketiga lebih kecil dari kecil, set kecil sama dengan bilangan ketiga 6. Variabel kecil berisi bilangan terkecil. 7.Tayangkan hasilnya.
51
Algoritma dengan pseudo-code
kecil bilangan pertama if ( bilangan kedua < kecil) kecil bilangan kedua if ( bilangan ketiga < kecil) kecil bilangan ketiga Ouput(kecil)
52
Hal yang harus dipenuhi dalam membuat algoritma
Input : data yang harus diberikan pada komputer Output: informasi yang akan diperoleh dari komputer Logika: Merencanakan proses program. Terdiri dari sejumlah instruksi yang mengubah input menjadi output yang diinginkan.
53
Aspek Penting dari Algoritma
Finiteness Algoritma harus berhenti after a finite number of steps Definiteness Setiap langkah harus didefinisikan secara tepat, tidak boleh membingungkan (ambiguous) Input Sebuah algoritma memiliki nol atau lebih input yang diberikan kepada algoritma sebelum dijalankan Output Sebuah algoritma memiliki satu atau lebih output, yang biasanya bergantung kepada input Effectiveness Setiap algoritma diharapkan miliki sifat efektif
54
Struktur Dasar Algoritma
Runtunan (sequence) Pemilihan (selection) Pengulangan (repetition)
55
Runtunan Sebuah runtunan terdiri dari satu atau lebih instruksi
Tiap instruksi dikerjakan berurutan Urutan instruksi menentukan keadaan akhir algoritma Contoh A1 A2 A3 A4 A5
56
Algoritma TUKAR_ISI_BEJANA
Diberikan dua buah bejana, A dan B; bejana A berisi larutan merah, bejana B berisi larutan biru. Pertukarkan isi kedua bejana itu sehingga bejana A berisi larutan biru dan bejana B berisi larutan merah DESKRIPSI Tuangkan larutan dari bejana A ke bejana X Tuangkan larutan dari bejana B ke bejana A Tuangkan larutan dari bejana C ke bejana B Hasil akhir Bejana A berisi larutan dari bejana B semula Bejana B berisi larutan dari bejana A semula
57
Algoritma TUKAR_ISI_BEJANA
Misal urutan diubah menjadi Tuangkan larutan dari bejana B ke bejana A Tuangkan larutan dari bejana A ke bejana X Tuangkan larutan dari bejana C ke bejana B Hasil akhir menjadi Bejana A kosong Bejana B berisi campuran larutan dari bejana A dan bejana semula B
58
Pemilihan Adakalanya instruksi dikerjakan jika kondisi tertentu terpenuhi Contoh Jika data ke-j lebih kecil dari min, maka isikan data ke-j sebagai min yang baru Dapat ditulis if kondisi then aksi
59
Pemilihan Memilih salah satu tergantung dari nilai kondisinya
if kondisi then aksi 1 else aksi 2 Contoh if x>y then tulis x sebagai bilangan terbesar tulis y sebagai bilangan terbesar
60
Teks Algoritma Sub Pokok Bahasan Pendahuluan Judul Algoritma Deklarasi
Deskripsi Pengisian Nilai
61
Algoritma dikatakan benar apabila dapat memecahkan masalah
Setiap orang punya pola pikir yang berbeda, karena itu akan menghasilkan algoritma yang berbeda Algoritma dikatakan benar apabila dapat memecahkan masalah Perlu dipertimbangkan masalah efisiensi dalam penyusunan algoritma Pemilihan rute jalan, misalnya : Beberapa rute mungkin akan menghasilkan tujuan yang sama Ada rute yang lebih efisien dibanding rute lainnya Sebaiknya yang diambil adalah rute terpendek
62
PEmrograman : aktifitas yg dilakukan dengan membat intruksi untuk menyelesaikan permasalahan yg dimenegeti oleh komputer Program : coding, hasil pemrograman Bahasa Pemrograman : Bahasa program yang digunakan untuk membuat urutan instruksi yg dimengerti oleh komputer. Pemrograman (programer) : orang yg membuat program komputer.
63
Aspek Penting dari Algoritma
1. Finiteness • Algoritma harus berhenti after a finite number of steps 2. Definiteness • Setiap langkah harus didefinisikan secara tepat, tidak boleh membingungkan (ambiguous) 3. Input • Sebuah algoritma memiliki nol atau lebih input yang diberikan kepada algoritma sebelum dijalankan 4. Output • Sebuah algoritma memiliki satu atau lebih output, yang biasanya bergantung kepada input 5. Effectiveness • Setiap algoritma diharapkan miliki sifat efektif
64
beberapa langkah umum dalam pembuatan suatu program yaitu
Mendefinisikan masalah mendefinisikan permasalahan. langkah ini harus dilakukan untuk menentukan masalah yang ada serta ditentukan pula input dan output program Mencari solusinya Bila untuk mendapatkan solusi harus melalui langkah yang terlalu rumit dapat dilakukan pembagian masalah dalam beberapa modul-modul kecil agar mudah untuk dikerjakan. Lalu modul-modul kecil tersebut digabungkan menjadi satu untuk dapat menentukan solusi. Menentukan algoritma Menulis program Menguji program Mendokumentasikan program Merawat program
65
Pendahuluan Teks algoritma yang dimaksud di sini adalah teks pseudocode yang dianggap perlu untuk menjembatani keragaman dan kompleksitas bahasa sehingga dapat dilakukan “abstraksi” Teks ini lebih berorientasi kepada detail design dibandingkan coding (merupakan rancangan secara prosedural yang selanjutnya dengan mudah dapat ditranslasi menjadi salah satu program dalam bahasa tertentu) Contoh bahasa pemrograman yang digunakan adalah Bahasa Pascal. Jadi dalam pembahasan berikutnya, translasi teks Algoritma adalah ke dalam teks program Bahasa Pascal.
66
Pendahuluan Bagian-bagian (blok) dalam teks algoritma: Keterangan:
JUDUL (header) algoritma DEKLARASI algoritma DESKRIPSI algoritma Keterangan: Pasangan tanda kurung kurawal (‘{‘ dan ‘}’) digunakan untuk memberikan komentar (untuk memperjelas maksud teks yang dituliskan).
67
Judul Algoritma Terdiri dari nama dan penjelasan (spesifikasi) algoritma. Nama yang digunakan sebaiknya singkat (namun cukup informatif). Biasanya di bawah nama diberi spesifikasi algoritma. Algoritma yang akan ditulis nantinya harus sesuai dengan spesifikasi yang didefinisikan.
68
Deklarasi Merupakan tempat untuk mendefinisikan berbagai macam nama, yaitu: nama tipe nama konstanta nama peubah (nama variabel) nama fungsi, sekaligus spesifikasinya nama prosedur, sekaligus spesifikasinya Semua nama tersebut baru dapat digunakan jika telah didefinisikan di dalam DEKLARASI. Penulisan sekumpulan nama dalam DEKLARASI sebaiknya dikelompokkan menurut jenis nama tersebut. Ketentuan-ketentuan dalam pendefinisian nama-nama: nama peubah belum terdefinisi harganya ketika didefinisikan. Pendefinisian konstanta sekaligus juga memberikan harganya. pendefinisian nama fungsi sekaligus juga dengan domain dan range serta spesifikasinya. Pendefinisian nama prosedur sekaligus juga dengan pendefinisian parameter (jika ada) dan spesifikasi prosedur (kondisi awal, kondisi akhir dan proses yang dilakukan).
69
Deklarasi DEKLARASI { Nama tipe, hanya untuk tipe yang bukan tipe dasar } type Titik : <X:real,Y:real> { koordinat pada sumbu kartesian } { Nama konstanta, harus menyebutkan nilai } const phi = 3.14 { Nama peubah (variabel), menyebutkan tipe } P : Titik { Titik dalam derajat kartesian } jmlh : integer { Jumlah suatu elemen } ketemu : boolean { Keadaan hasil pencarian } { Spesifikasi Fungsi, menyebutkan nama fungsi, domain dan range } function Konversi_Real_Ke_Integer(input i:real)→integer { Mengkonversi harga i yang bertipe real menjadi harga ekivalen yang bertipe integer } { Spesifikasi Prosedur, menyebutkan nama, parameter, kondisi awal, kondisi akhir dan proses } procedure Tukar(input/output A:integer, input/output B:integer) { Kondisi awal : A dan B terdefinisi, A=a dan B=b } { Kondisi akhir : A=b dan B=a } { Proses : Mempertukarkan nilai A dan B }
70
Deskripsi Merupakan bagian inti dari algoritma.
Komponen di dalam teks algoritma dapat berupa: Instruksi dasar seperti input/output, assignment Urutan (sequence) Pemilihan Pengulangan
71
Pengisian nilai ke dalam Nama Peubah
Pengisian Nilai secara langsung Pembacaan Nilai dari Piranti Masukan
72
Pengisian Nilai secara langsung
Pengisian nilai secara langsung (assignment) adalah memasukkan nilai ke dalam nama peubah langsung didalam teks algoritma Notasi pengisian secara langsung : ← Nilai yang diberikan kepada peubah dapat berupa tetapan, nilai peubah lain atau nilai sebuah ekspresi. Nilai tersebut harus bertipe sama dengan tipe peubah peubah ← tetapan {nilai tetapan diisikan ke dalam peubah} peubah1 ← peubah2 {nilai peubah2 disalin kedalam peubah1} peubah ← ekspresi {hasil perhitungan diisikan ke dalam peubah}
73
Pengisian Nilai secara langsung
CONTOH k ←5 jarak ←0.03 ketemu ←false NamaKota ←’Solo’ {Mengisi J dengan jam 6:12:39} J.hh ←6 J.mm ←12 J.ss ←39 jarak ←78.90 NamaKota ←’MEDAN’
74
Pengisian Nilai secara langsung
Berapakah nilai M dan P setelah runtunan penugasan dibawah ini selesai dilaksanakan oleh? Andaikan M dan P bertipe integer M ← 16 P ← M*2 M ← P + 100 P ← P + M
75
Pembacaan Nilai dari Piranti Masukan
Nilai untuk peubah dapat diisi dari piranti masukan Dinamakan operasi pembacaan data Dalam algoritma, dilakukan dengan notasi read Notasi algoritmik untuk pembacaan nilai dari piranti masukan read (nama1, nama2, namaN)
76
Pembacaan Nilai dari Piranti Masukan
CONTOH : read(M) read(a1, a2, a3) read(nama_kota) read(nama_mhs,NRP,nilai) read(P.x,P.y)
77
Ekspresi Aritmatik Misal deklarasi sebagai berikut : a, b, c : real
d : integer i, j , k : integer Misal ekspresi a * b hasil ekspresi adalah real a dan b adalah operand, * adalah operator Bila disimpan ke peubah, maka tipe peubah harus sama dengan tipe hasil c ← a * b (benar) d ← a * b (salah)
78
Ekspresi Terdiri dari operand dan operator
Operand adalah nilai yang dioperasikan dengan operator tertentu Operand dapat berupa tetapan, nama peubah, nama tetapan, atau hasil dari suatu fungsi Ada 3 macam ekspresi : ekspresi aritmatik, ekspresi relasional dan ekspresi string
79
Ekspresi Relasional Adalah ekspresi dengan operator <,≤,>,≥,= dan ≠, not,and, or dan xor Misal didefinisikan deklarasi berikut DEKLARASI ketemu, besar : boolean x,y : integer misal ketemu bernilai false, ada bernilai true, x bernilai 8 dan y bernilai 12. Maka : not ada (hasil : false) ada and true (hasil : true) x < 5 (hasil : false) ada or (x = y) (hasil : true)
80
Ekspresi String Ekspresi string adalah ekspresi dengan operator “+” (operator penyambungan /concatenation) DEKLARASI kar : char s : string s ← s+kar
81
Menuliskan Nilai ke Piranti Keluaran
Nilai yang disimpan di memori dapat ditampilkan ke piranti keluaran(misal layar monitor) Instruksi penulisan dengan notasi write write(nama1,nama2, …, namaN) write(tetapan) write(nama, tetapan, ekspresi) write(ekspresi)
82
Bahan Bacaan Rinaldi Munir, Algoritma dan Pemrograman dalam Bahasa Pascal dan C, Penerbit Informatika Bandung Antony Pranata, Algoritma dan Pemrograman
83
Latihan 2 Buatlah suatu algoritma untuk proses aktivitas yang anda kerjakan dari pagi hingga malam hari
84
Contoh Algoritma 2 Algoritma untuk menentukan apakah suatu bilangan merupakan bilangan ganjil atau bilangan genap. Algoritmanya : a. Masukkan bilangan yang akan ditentukan b. Bagi bilangan dengan bilangan 2 c. Hitung sisa hasil bagi pada langkah b. d. Bila sisa hasil bagi sama dengan 0 maka bilangan itu adalah bilangan genap tetapi bila sisa hasil bagi sama dengan 1 maka bilangan itu adalah bilangan ganjil.
85
Latihan 3 Buat algoritma mengurutkan 3 bilangan acak!
87
Simbol Algoritma (Flowchart):
Proses/kegiatan pemrosesan input Terminator/Start or End IO Konektor/Penghubung Next Page Garis Alir Pencabangan/Pemeriksaan kondisi
92
Flowchart dan Pseudocode
93
Struktur Dasar Algoritma
Runtunan (Sequence) Pemilihan (Selection) Pengulangan(Repetition) -Alpro 2009-
94
Flowchart Terminator Input/Output Proses Condisional / Decision
-Alpro 2009-
95
Flowchart (cont’) Preparation Arrow Connector (on page)
Connector (off page) Display -Alpro 2009-
96
Flowchart (cont’) Keuntungan : lebih mudah dilihat dan dipahami
Kelemahan : jika digunakan untuk menggambarkan proses atau algoritma untuk skala kasus yang besar, maka akan dibutuhkan banyak kertas -Alpro 2009-
97
Kasus Pemimpin sebuah perusahaan otomotif perlu menentukan besarnya bonus yang akan diberikan kepada para pegawainya yang bekerja sebagai account executive. Jika terdapat pegawai yang dalam bulan ini telah menjual mobil lebih dari dua unit, maka akan mendapatkan bonus sebesar Rp ,- kemudian pegawai yang bisa menjual mobil tepat dua buah maka, akan mendapatkan bonus Rp ,- namun jika pegawai yang dalam bulan ini penjualannya kurang dari dua unit maka, pegawai tersebut tidak mendapatkan bonus. -Alpro 2009-
98
Pseudocode Diarahkan untuk menyerupai aturan penulisan bahasa pemrograman tertentu -Alpro 2009-
99
Pseudocode Judul Kamus Algoritma -Alpro 2009-
100
Judul Tidak diawali dengan angka atau karakter lain selain alphabet
Tidak terdapat karakter spasi atau karakter selain alphabet kecuali karakter underscore ‘_’ (sebagai pengganti karakter spasi) Mana yang benar ? Algoritma berhitung; Algoritma konversi suhu; Algoritma hitungan_pajak; Algoritma 2bilangan; Algoritma *kecil; -Alpro
101
Kamus digunakan sebagai tempat untuk mencantumkan variabel, konstanta, dan record Hal-hal yang dideklarasikan pada bagian ini digunakan sebagai ‘reservasi’ alokasi memory untuk penyimpanan data dan akan digunakan selama program bekerja -Alpro 2009-
102
Algoritma digunakan untuk meletakkan semua algoritma atau kode-kode program Diawali dengan ‘BEGIN’ dan diakhiri dengan ‘END’ -Alpro 2009-
103
Pemilihan (Selection)
If kondisi then aksi endIf If kondisi then aksi1 else aksi2 endIf -Alpro 2009-
104
Contoh (Pemilihan) : If A>B then Max A endIf
If B>A then Max B endIf If A>B then Max A Else Max B endIf -Alpro 2009-
105
Pengulangan (Repetition)
for var awal to akhir do aksi Endfor repeat aksi until kondisi_stop while kondisi_ulang do aksi endwhile -Alpro 2009-
106
Contoh (Pengulangan) :
For i 1 to 5 do output(“Algoritma dan Pemrograman”) EndFor i1 Repeat output(“Algoritma dan Pemrograman”) ii+1 Until (i>5) i1 While (i<=5) do output(“Algoritma dan Pemrograman”) ii+1 endwhile -Alpro 2009-
107
Input dan Output Algoritma Masukkan_data Kamus data x : integer BEGIN
input(x) /*x adalah variabel penampung nilai*/ END. Algoritma Masukkan_nilai Kamus data x : integer BEGIN x 5 /*panah ke kiri arah masuknya nilai*/ END. -Alpro 2009-
108
Input dan Output Algoritma Tampilan Kamus data x : integer BEGIN
output(x) /*x adalah variabel yang berisi nilai*/ END. -Alpro 2009-
109
TAHAP PENGEMBANGAN ALGORITMA
MASALAH / IDEA PEMECAHAN SOLUSI / HASIL Algoritma Source Code Executable Code
110
Tahap Pengembangan Pogram
Mulai Batasan Masalah Pengembangan Model Rancangan Algoritma Pemrograman Perbaikan Algoritma Pengujian Pembetulan Analisa Dokumentasi Selesai Algoritma Pemrograman IC - Bab 1
111
TAHAP PENGEMBANGAN ALGORITMA
DEFINISI MASALAH MEMBUAT MODEL RANCANG ALGORITMA TULIS PROGRAM COMPILE Y Sintak Err T Executable code: => Run Y Output Err T DOKUMEN TASI
112
TAHAP PENGEMBANGAN ALGORITMA
DEFINISI MASALAH MEMBUAT MODEL RANCANG ALGORITMA TULIS PROGRAM COMPILE Masalah: Tentukan akar-akar dari suatu persamaan kwadrat. Definisi: Persamaan kwadrat : ax^2 + bx + c = 0 Data yg diperlukan : Nilai dari a, b dan c : tipe real Sintak Err Executable code: => Run Output Err DOKUMEN TASI
113
TAHAP PENGEMBANGAN ALGORITMA
DEFINISI MASALAH MEMBUAT MODEL RANCANG ALGORITMA TULIS PROGRAM COMPILE Sintak Err Model Matematika : Rumus ABC x1 = (-b + sqrt(b^2 - 4ac))/2a x2 = (-b – sqrt(b^2 - 4ac))/2a Executable code: => Run Output Err DOKUMEN TASI
114
TAHAP PENGEMBANGAN ALGORITMA
DEFINISI MASALAH MEMBUAT MODEL RANCANG ALGORITMA TULIS PROGRAM Start d = b^2 – 4ac d < 0 Masukkan a,b,c Cetak Pesan “Akar imajiner” x1=(-b+sqrt(d))/2a x2 =(-b-sqrt(d))/2a Cetak : x1, x2 Stop Y T COMPILE Sintak Err Executable code: => Run Output Err DOKUMEN TASI
115
TAHAP PENGEMBANGAN ALGORITMA
DEFINISI MASALAH MEMBUAT MODEL RANCANG ALGORITMA TULIS PROGRAM COMPILE Sintak Err Executable code: => Run Output Err DOKUMEN TASI
116
Executable code: => Run
TAHAP PENGEMBANGAN ALGORITMA DEFINISI MASALAH MEMBUAT MODEL RANCANG ALGORITMA TULIS PROGRAM COMPILE Sintak Err Executable code: => Run Output Err DOKUMEN TASI
117
Executable code: => Run
TAHAP PENGEMBANGAN ALGORITMA DEFINISI MASALAH MEMBUAT MODEL RANCANG ALGORITMA TULIS PROGRAM COMPILE Sintak Err Executable code: => Run Output Err DOKUMEN TASI
118
Executable code: => Run
TAHAP PENGEMBANGAN ALGORITMA DEFINISI MASALAH MEMBUAT MODEL RANCANG ALGORITMA TULIS PROGRAM COMPILE Sintak Err Executable code: => Run Output Err DOKUMEN TASI
119
Executable code: => Run
TAHAP PENGEMBANGAN ALGORITMA DEFINISI MASALAH MEMBUAT MODEL RANCANG ALGORITMA TULIS PROGRAM COMPILE Sintak Err Executable code: => Run Output Err DOKUMEN TASI
120
Executable code: => Run
TAHAP PENGEMBANGAN ALGORITMA DEFINISI MASALAH MEMBUAT MODEL RANCANG ALGORITMA TULIS PROGRAM COMPILE Sintak Err Executable code: => Run Output Err DOKUMEN TASI
121
Penyajian Algoritma Algoritma bisa dibuat dengan:
Teknik tulisan seperti : Structure english dan Pseudocode. Teknik visual seperti : Flow chart.
122
Pseudocode Outline dari sebuah program komputer
Ditulis dalam bahasa Inggris atau Indonesia sederhana Kata kunci (keyword) digunakan untuk menjelaskan struktur kendali (misalnya: “jika”, “ulangi”, “sampai”,”if”,”repeat”, “until”)
123
Pseudocode Tujuh operasi dasar komputer: Membaca data (Input)
Menampilkan data (Output) Melakukan perhitungan aritmetika (Compute) Memberikan nilai ke suatu identifier (Store) Membandingkan dan Memilih (Compare) Melakukan pengulangan (Loop) Procedure dan atau Function
124
1. MEMBACA DATA Sewaktu komputer menerima informasi atau input, maka statement yang biasa digunakan adalah “Read”, “Get”, “Baca” ,”Input” atau “KeyIn” Contoh: Read Bilangan Get kode_pajak Baca nama_mahasiswa
125
2. Menampilkan Data Sewaktu komputer menampilkan informasi ataupun output, maka statement yang biasa digunakan adalah “Print”, “Write”, “Put”, “Output”, “Display” ataupun “Cetak” Contoh: Print “Universitas Bina Nusantara” Cetak “Metode Perancangan Program” Output Total
126
3. perhitungan Aritmetika
Untuk melakukan operasi aritmetika digunakan pseudocode berikut: + untuk penjumlahan (add) - Untuk pengurangan (subtract) * Untuk perkalian (multiply) / Untuk pembagian (divide) () Untuk kurung Statement “Compute”, “Calculate” ataupun “Hitung” juga dapat digunakan. Contoh: Add number to total Total = Total + number
127
4. Memberikan nilai ke Identifier
Ada tiga cara untuk memberikan nilai ke dalam variabel : Memberikan nilai awal, menggunakan statement “Initialize” atau “Set” Memberikan nilai sebagai hasil dari suatu proses, maka tanda “=“ digunakan Untuk menyimpan suatu nilai maka statement “Save” atau “Store” digunakan Contoh: Set Counter to 0 Total = Harga * Jumlah
128
5. Membandingkan dan memilih
Salah satu operasi terpenting yang dapat dilakukan komputer adalah membandingkan dan memilih salah satu alternatif solusi. Keyword yang digunakan : “IF”, “THEN” dan “ELSE” Contoh IF Pilih=‘1’ THEN Discount = 0.1 * harga ELSE Discount = 0.2 * harga ENDIF
129
6. Pengulangan Jika ada beberapa perintah yang harus diulang, maka dapat digunakan keyword “DOWHILE” dan “ENDDO”. Contoh DOWHILE bil < 10 cetak bil bil = bil +1 ENDDO
130
Contoh Algoritma dgn Pseudocode
Algoritma Menggunakan Kalkulator Mulai Nyalakan kalkulator Kosongkan Kalkulator Ulangi Input harga Tekan tombol Plus (+) Sampai semua harga diinput Tampilkan total harga Matikan kalkulator Selesai
131
Contoh Algoritma dgn Pseudocode
Algoritma Berangkat Kuliah Mulai Bangun dari tempat tidur Mandi Pagi Sarapan Pagi Pergi Ke Kampus Cari Ruang Kuliah Masuk kelas untuk Kuliah Selesai
132
Contoh Algoritma dgn Pseudocode
Algoritma Sarapan Pagi Mulai Ambil piring Masukkan nasi dan lauk dalam piring Ambil sendok dan garpu Ulangi Angkat sendok dan garpu Ambil nasi dan lauk Suapkan ke dalam mulut Taruh sendok dan garpu Kunyah Sampai (nasi dan lauk habis) ATAU kekenyangan Bereskan piring, sendok dan garpu Selesai
133
FLOW CHART Terminator Arah Proses Konektor Input/Output
Konektor antar halaman Dokumen Pemilihan Pengulangan
134
Kriteria Algoritma Yang Baik
Mempunyai logika yang tepat untuk memecahkan masalah. Menghasilkan output yang benar dalam waktu yang singkat. Ditulis dengan bahasa baku terstruktur sehingga tidak menimbulkan arti ganda. Ditulis dengan format baku sehingga mudah diimplementasikan kedalam bahasa pemrograman. Semua operasi didefinisikan dengan jelas dan berakhir sesudah sejumlah langkah.
135
Pemrograman Terstruktur
Pemrograman terstruktur merupakan pola penyusunan program komputer hanya dengan menggunakan tiga struktur kontrol yaitu: Sequence Selection Repetition
136
1. Sequence Sequence merupakan urutan pengerjaan dari perintah/statement pertama sampai dengan perintah/statement terakhir. Umumnya bahasa pemrograman mempunyai sequence (urutan pengerjaan dari perintah / statement ) mulai dari atas ke bawah dan dari kiri ke kanan. Top-down
137
Contoh Sequence Contoh: Penjelasan Cetak “Jumlah Mahasiswa”
Set Jumlah to 49 Cetak “Tambahan mahasiswa baru” Baca mhs_baru Jumlah = Jumlah + mhs_baru Cetak jumlah Penjelasan Urutan pengerjaan adalah mulai dari urutan pertama sampai dengan urutan terakhir, jika mhs_baru diisi dengan 2, maka jumlah yang tercetak adalah 51
138
2. Selection Struktur Kontrol Selection adalah penggambaran sebuah kondisi dan pilihan diantara dua aksi. Statement Pertama akan dikerjakan jika kondisi bernilai benar, jika tidak maka akan mengerjakan perintah setelah keyword “else” (jika ada).
139
Belajar Memprogram belajar bahasa pemrograman
belajar tentang strategi pemecahan masalah, metodologi dan sistematika pemecahan masalah kemudian menuliskannya dalam notasi yang disepakati bersama bersifat pemahaman persoalan, analisis dan sintesis titik berat : designer program -Alpro 2009-
140
Belajar Bahasa Pemrograman
belajar memakai suatu bahasa pemrograman, aturan sintaks, tatacara untuk memanfaatkan instruksi yang spesifik untuk setiap bahasa titik berat : coder -Alpro 2009-
141
Syarat Program yang Baik
benar berlaku umum untuk beragam data (valid) mudah dibaca mudah dimodifikasi dan dikembangkan efisiensi dalam penggunaan ruang dan waktu (kompleksitas rendah) -Alpro 2009-
142
Contoh Selection Contoh : Penjelasan IF Hari=1 THEN Cetak “Senin” ELSE
Cetak “Bukan hari Senin” Penjelasan Tulisan “Senin” akan ditampilkan jika Hari bernilai 1, jika tidak maka tulisan “Bukan hari Senin” yang akan ditampilkan
143
3. Repetition Beberapa statement / perintah dapat diulang dengan menggunakan struktur kontrol repetition. Statement / perintah akan tetap diulang selama kondisi perulangan memenuhi (jika menggunakan DOWHILE – ENDDO)
144
Contoh Repetition Contoh: Penjelasan: Bintang = 0
DOWHILE bintang < 5 Cetak bintang bintang = bintang + 1 ENDDO Penjelasan: Pertama kali bintang akan diisi dengan 0, setelah itu isi dari bintang akan dicetak sebanyak lima kali, sehingga tampilannya akan sebagai berikut:
145
Latihan 1. Buatlah algoritma menggunakan pseudocode untuk menghitung luas persegi panjang 2. Buatlah algoritma menggunakan pseudocode untuk mengubah jam dan menit yang diinput ke dalam satuan detik. 3. Buatlah algoritma menggunakan pseudocode untuk menentukan apakah bilangan yang diinput adalah bilangan ganjil atau bilangan genap.
146
Latihan 4. Buatlah algoritma menggunakan pseudocode untuk menghitung luas lingkaran. 5. Buatlah algoritma menggunakan pseudocode untuk menginput 3 buah bilangan, kemudian tentukan bilangan terbesar, terkecil dan rata-ratanya.
147
SEKIAN TERIMA KASIH
Presentasi serupa
© 2024 SlidePlayer.info Inc.
All rights reserved.