Algoritma dan Pemrograman 1

Slides:



Advertisements
Presentasi serupa
Flowchart (Diagram Alur)
Advertisements

Pemrograman Dasar Pengantar Algoritma - 2 PTIIK - UB.
Pemrograman Dasar Pengantar Algoritma PTIIK - UB.
TEORI ALGORITMA.
ALGORITMA & PEMROGRAMAN I-A
Teks Algorithma Ery Setiyawan Jullev A.
Bahasa Pemrograman dan Flow Chart
Pengertian Algoritma Sebuah algoritma merupakan deskripsi pelaksanaan suatu proses, dimana algoritma disusun oleh sederetan langkah instruksi yang logis.
Dasar Pemrograman Komputer
Dasar Pemrograman Komputer [TKL-4002 ] Pertemuan 01.
Algoritma (Struktur, Tipe Data, Input/Output)
Notasi Algoritma.
Flowchart (Diagram Alur)
Pertemuan-III Algoritma disajikan gambar
Algoritma dan Pemrograman
1 PERTEMUAN 1 DIAGRAM ALUR (FLOWCHART). 2 Apa itu Flowchart 1.Suatu skema / bagan yang menggambarkan urutan kegiatan dari suatu program dari awal sampai.
PENGERTIAN DASAR ALGORITMA & FLOWCHART
Algoritma dan Flowchart
Diagram Alur (Flowhart)
BAB 2 BAHASA PEMROGRAMAN
ALGORITMA & PEMROGRAMAN I-A
Algoritma dan Pemrograman 1
Algoritma dan Pemrograman 1
Penulisan Algoritma dan Flowchart
Flowchart (Diagram Alur)
Flowchart (Diagram Alir)
Dasar-dasar Algoritma Dan Representasi Algoritma
Algoritma pemrograman I
KONSEP DASAR PEMROGRAMAN KOMPUTER DAN Algoritma
Algoritma.
APSI.
ALGORITMA & LOGIKA PEMROGRAMAN
Wahyu Cahyani Faradilah Artian Ningsih Siti khodijah FLOWCHART
penyusunan algoritma (flowchart)
Dasar Pemrograman dan Komputer
Sindy Nova Algoritma dan Pemrograman 1A
Menuliskan Algoritma Algoritma dapat dituliskan dengan berbagai cara:
Metode Perancangan Program
Flowchart (Diagram Alur)
Flowchart (Diagram Alur)
ALGORITMA DAN PEMROGRAMAN (PERTEMUAN 2)
LOGIKA & ALGORITMA Algoritma & Pengenalan Flow Chart
Flowchart (Diagram Alur)
Pseudocode – Tipe Data, Variabel, dan Operator
ALGORITMA Anifuddin Azis.
Pertemuan-III Algoritma disajikan gambar
minggu ke-2 Imam Fahrur Rozi
SIM LOGISTIK PERTEMUAN 4.
Algoritma dan Pemrograman (Pertemuan 04)
JENIS DAN SIMBOL FLOWCHART PRODI MIK | FAKULTAS ILMU-ILMU KESEHATAN
Bahasa Pemrograman dan Flow Chart
Flowchart Nori Sahrun, S.Kom., M.Kom.
DIAGRAM ALUR (FLOWCHART)
ALGORITMA DAN FLOWCHART
LOGIKA & ALGORITMA -Algoritma & Pengenalan Flow Chart
Algoritma & Pemrograman 1
Algoritma pemrograman I
Penulisan Teks Algoritma
BAB II METODOLOGI PENGEMBANGAN SIA
Flowchart (Diagram Alur)
LOGIKA & ALGORITMA KONSEP ALGORITMA & FLOWCHART M. Febriansyah, ST., MT.
1 Flowchart (Diagram Alur). 2 Flowchart Bagan-bagan yang mempunyai arus Menggambarkan langkah-langkah penyelesaian suatu masalah Merupakan salah satu.
Flowchart (Diagram Alur)
KONSEP DASAR PEMROGRAMAN KOMPUTER DAN Algoritma
IT234 ALGORITMA DAN STRUKTUR DATA
PENGANTAR APLIKASI KOMPUTER
Dasar Konstruksi Pemrograman
ALGORITMA DAN STRUKTUR DATA
Diagram Alur (Flowhart)
Teknik Pemrograman, Mikroprosessor dan Mikrokontroler Rahayu Maksum SMK N 1 Wonosegoro.
Transcript presentasi:

Algoritma dan Pemrograman 1 Laily Hermawanti, S.T., M.Kom No Hp: 08562773160 Email: lailyahermawanti18@gmail.com

Bab 2 Cara Penulisan Algoritma dalam Bahasa Natural, Flowchart, dan Pseudo Code

Algoritma dalam Bahasa Natural

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

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 2001 - Algoritma v.1.2

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

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

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

Flowchart (Diagram Alur)

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

Flowchart adalah gambaran dalam bentuk diagram alir dari algoritma-algoritma dalam suatu program, yang menyatakan arah alur program tersebut.

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

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-

Flowchart Bagan-bagan yang mempunyai arus Menggambarkan langkah-langkah penyelesaian suatu masalah Merupakan salah satu cara penyajian algoritma

Tujuan Menggambarkan suatu tahapan penyelesaian masalah Secara sederhana, terurai, rapi dan jelas Menggunakan simbol-simbol standar

Model / Jenis Flowchart System Flowchart Program Flowchart

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

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

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

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

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

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

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

Input / Output Symbols Simbol document Simbol display Mencetak keluaran dalam bentuk dokumen (melalui printer) Simbol display Mencetak keluaran dalam layar monitor

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)

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

Pengolahan data START READ HABIS ? PROCESS WRITE END Tidak Ya

Menghitung luas persegi panjang Start Input panjang Input lebar Luas  panjang * lebar Print Luas End

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

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

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.

Contoh 1 Flowchart

Contoh 2 Flowchart

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.

Notasi yang dinyatakan dalam flowchart (lanjut) Contoh : Algoritma Bilangan Maksimum Diberikan tiga buah bilangan bulat. Carilah bilangan bulat maksimum diantara ketiga bilangan tersebut. Deskripsi :

Algoritma dengan Flowchart

Mulai NA>60 Gagal Lulus Selesai Inputkan nilai (tugas,uts,uas) NA = 25%tg+25%uts+50%uas NA>60 Gagal Lulus Selesai

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

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

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)

Algoritma dengan pseudo-code maks ← bilangan pertama if (maks < bilangan kedua) maks ← bilangan kedua if (maks < bilangan ketiga) maks ← bilangan ketiga 2004 EL 2001 - Algoritma v.1.2

Algoritma dengan pseudo-code maks ← bilangan pertama if (maks < bilangan kedua) maks ← bilangan kedua if (maks < bilangan ketiga) maks ← bilangan ketiga

Ad.1. Bagaimana merencanakan algoritma Dengan Mendefinisikan masalah. Contoh : Permasalahan menghitung luas lingkaran, dengan data yang diketahui adalah diameter lingkaran. Rumus : ∏ . r2 dengan Phi = 3.14 atau 22/7.

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

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

Penulisan Algoritma dalam Bahasa Natural, Flowchart, Contoh Soal Penulisan Algoritma dalam Bahasa Natural, Flowchart, Pseudo Code

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.

Algoritma dengan pseudo-code kecil  bilangan pertama if ( bilangan kedua < kecil) kecil  bilangan kedua if ( bilangan ketiga < kecil) kecil  bilangan ketiga Ouput(kecil)

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.

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

Struktur Dasar Algoritma Runtunan (sequence) Pemilihan (selection) Pengulangan (repetition)

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

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

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

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

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

Teks Algoritma Sub Pokok Bahasan Pendahuluan Judul Algoritma Deklarasi Deskripsi Pengisian Nilai

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

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.

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

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

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.

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).

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.

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).

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 }

Deskripsi Merupakan bagian inti dari algoritma. Komponen di dalam teks algoritma dapat berupa: Instruksi dasar seperti input/output, assignment Urutan (sequence) Pemilihan Pengulangan

Pengisian nilai ke dalam Nama Peubah Pengisian Nilai secara langsung Pembacaan Nilai dari Piranti Masukan

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}

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’

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

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)

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)

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)

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

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)

Ekspresi String Ekspresi string adalah ekspresi dengan operator “+” (operator penyambungan /concatenation) DEKLARASI kar : char s : string s ← s+kar

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)

Bahan Bacaan Rinaldi Munir, Algoritma dan Pemrograman dalam Bahasa Pascal dan C, Penerbit Informatika Bandung Antony Pranata, Algoritma dan Pemrograman

Latihan 2 Buatlah suatu algoritma untuk proses aktivitas yang anda kerjakan dari pagi hingga malam hari

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.

Latihan 3 Buat algoritma mengurutkan 3 bilangan acak!

Simbol Algoritma (Flowchart): Proses/kegiatan pemrosesan input Terminator/Start or End IO Konektor/Penghubung Next Page Garis Alir Pencabangan/Pemeriksaan kondisi

Flowchart dan Pseudocode

Struktur Dasar Algoritma Runtunan (Sequence) Pemilihan (Selection) Pengulangan(Repetition) -Alpro 2009-

Flowchart Terminator Input/Output Proses Condisional / Decision -Alpro 2009-

Flowchart (cont’) Preparation Arrow Connector (on page) Connector (off page) Display -Alpro 2009-

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-

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 1.000.000,- kemudian pegawai yang bisa menjual mobil tepat dua buah maka, akan mendapatkan bonus Rp 500.000,- namun jika pegawai yang dalam bulan ini penjualannya kurang dari dua unit maka, pegawai tersebut tidak mendapatkan bonus. -Alpro 2009-

Pseudocode Diarahkan untuk menyerupai aturan penulisan bahasa pemrograman tertentu -Alpro 2009-

Pseudocode Judul Kamus Algoritma -Alpro 2009-

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

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-

Algoritma digunakan untuk meletakkan semua algoritma atau kode-kode program Diawali dengan ‘BEGIN’ dan diakhiri dengan ‘END’ -Alpro 2009-

Pemilihan (Selection) If kondisi then aksi endIf If kondisi then aksi1 else aksi2 endIf -Alpro 2009-

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-

Pengulangan (Repetition) for var  awal to akhir do aksi Endfor repeat aksi until kondisi_stop while kondisi_ulang do aksi endwhile -Alpro 2009-

Contoh (Pengulangan) : For i  1 to 5 do output(“Algoritma dan Pemrograman”) EndFor i1 Repeat output(“Algoritma dan Pemrograman”) ii+1 Until (i>5) i1 While (i<=5) do output(“Algoritma dan Pemrograman”) ii+1 endwhile -Alpro 2009-

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-

Input dan Output Algoritma Tampilan Kamus data x : integer BEGIN output(x) /*x adalah variabel yang berisi nilai*/ END. -Alpro 2009-

TAHAP PENGEMBANGAN ALGORITMA MASALAH / IDEA PEMECAHAN SOLUSI / HASIL Algoritma Source Code Executable Code

Tahap Pengembangan Pogram Mulai Batasan Masalah Pengembangan Model Rancangan Algoritma Pemrograman Perbaikan Algoritma Pengujian Pembetulan Analisa Dokumentasi Selesai Algoritma Pemrograman IC - Bab 1

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

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

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

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

TAHAP PENGEMBANGAN ALGORITMA DEFINISI MASALAH MEMBUAT MODEL RANCANG ALGORITMA TULIS PROGRAM COMPILE Sintak Err Executable code: => Run Output Err DOKUMEN TASI

Executable code: => Run TAHAP PENGEMBANGAN ALGORITMA DEFINISI MASALAH MEMBUAT MODEL RANCANG ALGORITMA TULIS PROGRAM COMPILE Sintak Err Executable code: => Run Output Err DOKUMEN TASI

Executable code: => Run TAHAP PENGEMBANGAN ALGORITMA DEFINISI MASALAH MEMBUAT MODEL RANCANG ALGORITMA TULIS PROGRAM COMPILE Sintak Err Executable code: => Run Output Err DOKUMEN TASI

Executable code: => Run TAHAP PENGEMBANGAN ALGORITMA DEFINISI MASALAH MEMBUAT MODEL RANCANG ALGORITMA TULIS PROGRAM COMPILE Sintak Err Executable code: => Run Output Err DOKUMEN TASI

Executable code: => Run TAHAP PENGEMBANGAN ALGORITMA DEFINISI MASALAH MEMBUAT MODEL RANCANG ALGORITMA TULIS PROGRAM COMPILE Sintak Err Executable code: => Run Output Err DOKUMEN TASI

Executable code: => Run TAHAP PENGEMBANGAN ALGORITMA DEFINISI MASALAH MEMBUAT MODEL RANCANG ALGORITMA TULIS PROGRAM COMPILE Sintak Err Executable code: => Run Output Err DOKUMEN TASI

Penyajian Algoritma Algoritma bisa dibuat dengan: Teknik tulisan seperti : Structure english dan Pseudocode. Teknik visual seperti : Flow chart.

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”)

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

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

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

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

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

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

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

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

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

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

FLOW CHART Terminator Arah Proses Konektor Input/Output Konektor antar halaman Dokumen Pemilihan Pengulangan

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.

Pemrograman Terstruktur Pemrograman terstruktur merupakan pola penyusunan program komputer hanya dengan menggunakan tiga struktur kontrol yaitu: Sequence Selection Repetition

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

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

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).

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-

Belajar Bahasa Pemrograman belajar memakai suatu bahasa pemrograman, aturan sintaks, tatacara untuk memanfaatkan instruksi yang spesifik untuk setiap bahasa titik berat : coder -Alpro 2009-

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-

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

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)

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: 0 1 2 3 4

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.

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.

SEKIAN TERIMA KASIH