• Tidak ada hasil yang ditemukan

RINTA KRIDALUKMANA SISKOM UNDIP

N/A
N/A
Protected

Academic year: 2018

Membagikan "RINTA KRIDALUKMANA SISKOM UNDIP"

Copied!
27
0
0

Teks penuh

(1)

1

ALGORITMA

(2)

ALGORITMA

• DEFINISI

– Logika, metode dan tahapan (urutan)

sistematis yang digunakan untuk

memecahkan suatu permasalahan

(3)

3

PERTIMBANGAN

PEMILIHAN ALGORITMA

1.

Algoritma haruslah benar

• Output sesuai dg yg dikehendaki dari input yang diberikan

• Algoritma bagus, output salah à bukan algoritma yang baik

2.

Seberapa baik hasil yang dicapai oleh algoritma

• Terutama untuk output yang berupa estimasi, perkiraan,

prediksi, aproksimaksi

• Harus mampu memberikan hasil sedekat mungkin dengan

nilai sebenarnya

3.

Efisiensi algoritma

• Ditinjau dari 2 hal, yaitu waktu dan memori

• Algoritma baik + waktu lama à TIDAK EFISIEN

• Apalagi bila memori yang digunakan besar, akan menambah

(4)

ALGORITMA VS PROGRAM

• Program adalah

– kumpulan instruksi komputer

– Kata, ekspresi, pernyataan yang disusun dan dirangkai menjadi satu kesatuan prosedur, yang berupa urutan langkah untuk menyelesaikan masalah yang diimplementasikan dengan menggunakan bahasa

pemrograman

• Metode dan tahapan sistematis dalam program adalah algoritma.

• Bahasa Pemrograman : prosedur atau tata cara penulisan program

• Pemrograman adalah proses mengimplementasikan urutan langkah

untuk menyelesaikan suatu masalah dengan menggunakan bahasa pemrograman tertentu

(5)

Struktur Data

• Struktur data

merujuk pada

koleksi/kumpulan

peubah komputer

yang saling

berhubungn untuk

tujuan tertentu.

#include <iostream> #include <string> using namespace std; struct Mahasiswa { string nama;

string alamat; int noMahasiswa; double IPK;

};

void printInfo(const Mahasiswa &m)

{ cout << Nomer : << m.noMahasiswa << endl; cout << Nama : << m.nama << endl;

cout << Alamat : << m.alamat << endl; cout << IPK : << m.IPK << endl;

}

int main()

{ Mahasiswa yayuk;

yayuk.nama = Yayuk Dwinanti;

yayuk.alamat = Jl. Pahlawan 15 Surabaya; yayuk.noMahasiswa = 123;

yayuk.IPK = 3.75; printInfo(yayuk); return 0;

(6)

KEUNTUNGAN

PEMBUATAN ALGORITMA

• Pembuatan atau penulisan algoritma tidak

tergantung pada bahasa pemrograman

manapun

• Notasi algoritmik dapat diterjemahkan ke

dalam berbagai bahasa pemrograman

• Apapun bahasa pemrogramannya, output

yang akan dikeluarkan sama karena

(7)

7

YANG PERLU DIPERHATIKAN

• Teks algoritma berisi deskripsi

langkah-langkah penyelesaian masalah, dapat

ditulis dalam notasi apapun asalkan

mudah dimengerti dan dipahami

• Notasi algoritmik bukan notasi bahasa

pemrograman, karena itu tidak dapat

dijalankan oleh komputer

(8)

TRANSLASI

ALGORITMA

à

BAHASA PEMROGRAMAN

Hal-hal yang perlu diperhatikan :

• Pendeklarasian variabel

• Pemilihan tipe data

• Pemakaian instruksi-instruksi

• Aturan sintaks

• Tampilan hasil

(9)

9

SYARAT MEMBUAT ALGORITMA

YANG BAIK

• Tingkat kepercayaannya tinggi (realibility)

– Hasil yang diperoleh harus berakurasi tinggi dan benar

• Pemrosesan yang efisien (cost rendah)

– Proses harus diselesaikan secepat mungkin dengan frekuensi kalkulasi yang sependek mungkin

• Sifatnya general

– Bukan untuk menyelesaikan satu kasus saja, tetapi sifatnya general

• Bisa Dikembangkan (expandable)

– Bisa dikembangkan lebih jauh berdasarkan perubahan requirement yang ada

• Mudah dimengerti

• Portabilitas tinggi

(10)

CIRI-CIRI ALGORITMA YANG

BAIK

• Precise (tepat, betul, teliti)

– Instruksi tidak ada keraguan

– Instruksi dinyatakan secara eksplisit – Setiap langkah harus jelas dan pasti Contoh : Tambahkan 1 atau 2 pada x

à terdapat keraguan

• Jumlah langkah atau instruksi berhingga atau tertentu

– Untuk kasus yang sama, banyaknya langkah harus tetap dan tertentu meskipun datanya berbeda

• Efektif

– Tidak boleh ada instruksi yang tidak mungkin dikerjakan oleh pemroses

(11)

11

TAHAP PEMROGRAMAN :

Pembuatan Program

Test

Dokumentasi

Dipakai Analisa Problem

Perancangan Algoritma

Test

FASE I : PROBLEM SOLVING

FASE II :

(12)

TAHAP PEMROGRAMAN :

I. Fase Problem Solving

Merancang atau Merumuskan Logika

• Kondisi awal, yaitu input yang tersedia • Kondisi akhir, yaitu output yang diinginkan

• Data lain yang tersedia

• Operator yang tersedia

• Syarat atau kendala yang harus dipenuhi

Contoh Kasus : Menghitung biaya percakapan di wartel

• Input yang tersedia : jam mulai bicara dan jam selesai bicara

• Output yang diinginkan adalah biaya percakapan

• Data lain yang tersedia adalah besarnya pulsa yang

digunakan dan biaya per pulsa

(13)

13

TAHAP PEMROGRAMAN :

II. Fase Implementasi

Menulis program

Standar penilaian program

• Standar teknik pemecahan masalah

• Teknik top-down à suatu masalah yang kompleks dibagi ke dalam beberapa kelompok masalah yang lebih kecil

• Teknik bottom-up à menggabungkan beberapa prosedur menjadi satu kesatuan program sebagai penyelesaian masalah tersebut

• Standar penyusunan program

• Kebenaran logika dan penulisan

• Waktu minimum untuk penulisan program • Ekspresi penggunaan memori

• Kemudahan perawatan dan mengembangkan program • User friendly

• Portability

• Pemrograman modular

• Standar Perawatan Program

• Dokumentasi

• Penulisan Instruksi

(14)

STRUKTUR DASAR ALGORITMA/

STRUKTUR KONTROL

Struktur dasar algoritma ada 3, yaitu :

• Struktur runtunan/sequential

– Digunakan untuk program yang instruksinya

sequential atau urutan

• Struktur pemilihan/conditional

– Digunakan untuk program yang menggunakan

pemilihan atau penyeleksi kondisi

• Struktur perulangan/iterasi

(15)

15

Struktur Runtunan

• Runtunan merupakan

struktur dasar algoritma

terdiri dari satu atau lebih

instruksi

• Dikerjakan secara

berurutan

• Pada dasarnya semua

program dibuat

berdasarkan struktur

algoritma runtunan

A1

A2 A3

(16)

Contoh kasus runtunan 1

• Terdapat 2 buah variabel a dan b yang

(17)

17

Contoh kasus runtunan 2

• Menghitung luas persegi

panjang

– Algoritmanya :

• Masukkan panjang dan lebar

• Kalikan panjang dan lebar, simpan hasil sebagai luas

• Tuliskan hasilnya

Dalam Pseudocode

Input (p,l); Luas = p * l; Output (Luas);

Start

Input(P,L)

Luas = P * L

Output(Luas)

End

(18)

Contoh kasus runtunan 3

• Konversikan total detik menjadi

berapa jam lebih berapa menit lebih berapa detik

– Algoritmanya :

• Baca data total detik • Bagi data dengan 3600 • Simpan hasil bagi dalam J

dan sisa dalam S • Bagi S dengan 60

• Simpan hasil dalam M dan sisa bagi dalam D

• Tulis hasil J, M, D

Dalam Pseudocode

Input (Dt);

(19)

19

Struktur Pemilihan

• Bentuk instruksi pemilihan

– IF

– IF – ELSE

– SWITCH

(20)

Struktur Pemilihan IF - ELSE

Pernyataan A

Pernyataan 1

Pernyataan B Pernyataan 2 false KONDISI true

Pseudocode :

Pernyataan A

If <kondisi> then <pernyataan 1> Else

<pernyataan 2> EndIf

(21)

21

Struktur Pemilihan SWITCH

Pseudocode :

Switch<pilihan>

Case <pilihan1> : <aksi1> Case <pilihan2> : <aksi2> …

{otherwise aksi} endcase

pilihan

pilihan

Aksi 1 Aksi 1 Aksi 1 Aksi 1

Pernyataan berikutnya

(22)

Struktur Perulangan

• Macam-macam instruktur perulangan

– FOR

– WHILE

(23)

23

STRUKTUR PERULANGAN FOR

• Instruksi perulangan yang paling sering

digunakan

• Memiliki 3 parameter, yaitu :

– Nilai awal (initial value)

(24)

STRUKTUR PERULANGAN FOR

Pseudocode :

For indeks = nilai_awal to nilai_akhir

do

<instruksi/blok instruksi>

endfor

Indeks = nilai awal

pilihan

Indeks = indeks + 1

Badan loop

(25)

25

STRUKTUR PERULANGAN WHILE

• Instruksi perulangan yang paling sering

digunakan

• Memiliki 3 parameter, yaitu :

– Nilai awal (initial value)

(26)

STRUKTUR PERULANGAN WHILE-DO

Pseudocode :

While <kondisi> do

<instruksi/blok instruksi>

endwhile pilihan

Badan loop

Pernyataan berikutnya true

false

Flowchart Instruksi WHILE- DO

Contoh dlm bhs C : int i;

i = 3;

(27)

27

STRUKTUR PERULANGAN DO-WHILE

Pseudocode :

do

<instruksi/blok instruksi> while <kondisi>

pilihan Badan loop

Pernyataan berikutnya true

false

Flowchart Instruksi DO-WHILE

Contoh dlm bhs C : int i;

i = 3; do {

printf (i); i--;

}

Referensi

Dokumen terkait

Hasil penelitian ini menunjukkan bahwa, (1) persepsi mahasiswa Jurusan Perbandingan Agama tentang Berita Penistaan Agama di Media Sosial muncul perbedaan pendapat yaitu ada

Petani yang memiliki umur yang semakin tua (&gt;50 tahun) biasanya semakin lamban mengadopsi ilmu baru atau inovasi baru yang dijelaskan oleh penyuluh dan cenderung hanya

Karena proses pendataan yang dipakai di PT.Kharisma Prima Abadi sela ma ini masih menggunakan proses manual dan menggunakan Microsoft Office Excel, maka penulis ingin membuat

Sejalan dengan penelitian yang telah dilakukan oleh oleh Arifin (2011) yang menyatakan bahwa penerapan model pembelajaran ATI (Aptitude Treatment Interaction) dapat

Berdasarkan latarbelakang yang telah diuraikan, maka peneliti tertarik untuk melakukan penelitian ini dengan beberapa alasan sebagai berikut: Strategi pembelajaran

Dalam wawancara singkat antara penulis dengan mbak Yuyun, penulis mendapatkan pernyataan bahwa mbak Yuyun telah benar-benar melakukan perkawinan di masa Iddah dengan

Apabila Arduino Uno telah terhubung ke router wifi portable, maka data yang terdapat pada Arduino Uno akan disalurkan oleh router wifi portable dan data tersebut mampu

Lauster (Fasikhah, 1994), menyatakan bahwa kepercayaan diri merupakan suatu sikap atau perasaan yakin atas kemampuan diri sendiri sehingga orang yang bersangkutan tidak