deskripsi matakuliah

73
Deskripsi Matakuliah Matakuliah ini mengajarkan tentang konsep dan logika berpikir komputer, cara perancangan dan analisis masalah, yang kemudian dipecahkan dengan menggunakan komputer menggunakan algoritma dan pemrograman terstruktur.

Upload: kata

Post on 29-Jan-2016

105 views

Category:

Documents


1 download

DESCRIPTION

Deskripsi Matakuliah. Matakuliah ini mengajarkan tentang konsep dan logika berpikir komputer, cara perancangan dan analisis masalah, yang kemudian dipecahkan dengan menggunakan komputer menggunakan algoritma dan pemrograman terstruktur. Kompetensi Matakuliah. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Deskripsi Matakuliah

Deskripsi Matakuliah

• Matakuliah ini mengajarkan tentang konsep dan logika berpikir komputer, cara perancangan dan analisis masalah, yang kemudian dipecahkan dengan menggunakan komputer menggunakan algoritma dan pemrograman terstruktur.

Page 2: Deskripsi Matakuliah

Kompetensi Matakuliah

• Mahasiswa mampu memahami logika berpikir komputer, memahami prinsip kerja program, memahami alasan-alasan komputer dapat mengerjakan perintah-perintah yang diberikan, dengan diagram alir (flow chart) menggunakan suatu bahasa pemrograman tertentu dan mampu menggambarkan logika jalannya program secara tertulis dengan algoritma (pseudo code)

Page 3: Deskripsi Matakuliah

Materi-Materi

• Pengantar Algoritma • Konsep Bahasa Pemrograman• Flowchart• Tipe Data, Keywords, Konstanta, Variabel• Struktur Input/Output• Percabangan• Perulangan• Pemrograman Modular• Fungsi: parameter, kembalian fungsi by value• Array 1 dimensi• Array 2 dimensi• Manipulasi String

Page 4: Deskripsi Matakuliah

Referensi

• Rijanto Tosin, Flowchart untuk Siswa dan Mahasiswa, Diastindo 1997• Budi Sutedjo Skom,., MM dan Michael AN, SKOM, Algoritma &

Teknik Pemrograman , Penerbit Andi Yogyakarta• Rinaldi Munir, Algoritma dan Teknik Pemrograman, Jilid 1 dan 2,

Andi Yogyakarta.• B.J. Posen, Programming Flowcharting for Business Data Processing,

John Willey & Sons, New York, 1978• Seri Dikat Kuliah : Pengantar Algoritma dan Pemrograman : Teknik

Diagram Alur dan Bahasa Basic Dasar, Penerbit Gunadarma, Jakarta, 1991

• Yay Singleman, Business Programming Logic 2nd-ed, Prentice Hall Engelwood Cliffs, New Jersey,1982

• Gottfried, Programming in BASIC, MC Graw Hill, New York, 1981• Jogiyanto, Teori dan Aplikasi dan Program Komputer Bahasa Basic,

Andi Yogyakarta.

Page 5: Deskripsi Matakuliah

Referensi

• Gottfried, Programming in BASIC, MC Graw Hill, New York, 1981• Insap Santosa, Program-program Terapan Menggunakan Quick Basic,

Andi Yogyakarta.• R. Sedgewick, Algorithms, Addison-Wsley, 2002.• Yay Singlemann, Business Programming Logic 2/e, Prentice Hall

Engelwood Cliffs, New Jersey, 1982.• Clark, R, Comparative Programming Languages 3/e, Addison Wesley,

2001.• Bel, H. dan Grune, D., Programming Languages Essentials, Addison

Wesley, 1994.• Sebest, R.W., Concepts of Programming Languages 5/e, Addison

Wesley, 2002.

Page 6: Deskripsi Matakuliah

Bahasa Pemrograman

• Adalah alat untuk membuat program• Contoh: C, C++, C#, Pascal, Basic, Perl,

PHP, ASP, JHP, Java, dll.

• Perbedaan: cara memberikan instruksi• Persamaan: bertujuan menghasilkan output

yang sama

Page 7: Deskripsi Matakuliah

Paradigma Pemrograman• Pemrograman Prosedural

• Berdasarkan urutan-urutan, sekuensial• Program adalah suatu rangkaian prosedur untuk memanipulasi data. Prosedur

merupakan kumpulan instruksi yang dikerjakan secara berurutan.• Harus mengingat prosedur mana yang sudah dipanggil dan apa yang sudah

diubah.• Pemrograman Fungsional

• Berdasarkan teori fungsi matematika• Fungsi merupakan dasar utama program.

• Pemrograman Terstruktur• Secara berurutan dan terstrukrtur.• Program dapat dibagai-bagi menjadi prosedur dan fungsi.• Contoh: PASCAL dan C

• Pemrograman Modular• Pemrograman ini membentuk banyak modul.• Modul merupakan kumpulan dari prosedur dan fungsi yang berdiri sendiri• Sebuah program dapat merupakan kumpulan modul-modul.• Contoh: MODULA-2 atau ADA

Page 8: Deskripsi Matakuliah

Paradigma Pemrograman

• Pemrograman Berorientasi Obyek• Pemrograman berdasarkan prinsip obyek, dimana obyek memiliki

data/variabel/property dan method/event/prosedur yang dapat dimanipulasi

• Contoh: C++, Object Pascal, dan Java.• Pemrograman Berorientasi Fungsi

• Pemrograman ini berfokus pada suatu fungsi tertentu saja. Sangat tergantung pada tujuan pembuatan bahasa pemrograman ini.

• Contoh: SQL (Structured Query Language), HTML, XML dan lain-lain.

• Pemrograman Deklaratif• Pemrograman ini mendeskripsikan suatu masalah dengan pernyataan

daripada memecahkan masalah dengan implementasi algoritma.• Contoh: PROLOG

Page 9: Deskripsi Matakuliah
Page 10: Deskripsi Matakuliah
Page 11: Deskripsi Matakuliah
Page 12: Deskripsi Matakuliah

MASALAH / IDEA PEMECAHAN SOLUSI / HASIL

Algoritma

Source Code

Executable Code

TAHAP PENGEMBANGAN ALGORITMA

Page 13: Deskripsi Matakuliah

TAHAP PENGEMBANGAN ALGORITMA

13

DEFINISI MASALAH

MEMBUAT MODEL

RANCANG ALGORITMA

TULIS PROGRAM

COMPILE

Sintak Err

Executable code: => Run

Output Err

DOKUMEN TASI

Y

Y

T

T

Page 14: Deskripsi Matakuliah

TAHAP PENGEMBANGAN ALGORITMA

14

DEFINISI MASALAH

MEMBUAT MODEL

RANCANG ALGORITMA

TULIS PROGRAM

COMPILE

Sintak Err

Executable code: => Run

Output Err

DOKUMEN TASI

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

Page 15: Deskripsi Matakuliah

15

TAHAP PENGEMBANGAN ALGORITMA

DEFINISI MASALAH

MEMBUAT MODEL

RANCANG ALGORITMA

TULIS PROGRAM

COMPILE

Sintak Err

Executable code: => Run

Output Err

DOKUMEN TASI

Model Matematika :

Rumus ABC

x1 = (-b + sqrt(b^2 - 4ac))/2a

x2 = (-b – sqrt(b^2 - 4ac))/2a

Page 16: Deskripsi Matakuliah

16

TAHAP PENGEMBANGAN ALGORITMA

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

YT

TULIS PROGRAM

COMPILE

Sintak Err

Executable code: => Run

Output Err

DOKUMEN TASI

DEFINISI MASALAH

MEMBUAT MODEL

RANCANG ALGORITMA

Page 17: Deskripsi Matakuliah

17

DEFINISI MASALAH

MEMBUAT MODEL

RANCANG ALGORITMA

TULIS PROGRAM

COMPILE

Sintak Err

Executable code: => Run

Output Err

DOKUMEN TASI

TAHAP PENGEMBANGAN ALGORITMA

Page 18: Deskripsi Matakuliah

18

DEFINISI MASALAH

MEMBUAT MODEL

RANCANG ALGORITMA

TULIS PROGRAM

COMPILE

Sintak Err

Executable code: => Run

Output Err

DOKUMEN TASI

TAHAP PENGEMBANGAN ALGORITMA

Page 19: Deskripsi Matakuliah

19

DEFINISI MASALAH

MEMBUAT MODEL

RANCANG ALGORITMA

TULIS PROGRAM

COMPILE

Sintak Err

Executable code: => Run

Output Err

DOKUMEN TASI

TAHAP PENGEMBANGAN ALGORITMA

Page 20: Deskripsi Matakuliah

20

DEFINISI MASALAH

MEMBUAT MODEL

RANCANG ALGORITMA

TULIS PROGRAM

COMPILE

Sintak Err

Executable code: => Run

Output Err

DOKUMEN TASI

TAHAP PENGEMBANGAN ALGORITMA

Page 21: Deskripsi Matakuliah

21

DEFINISI MASALAH

MEMBUAT MODEL

RANCANG ALGORITMA

TULIS PROGRAM

COMPILE

Sintak Err

Executable code: => Run

Output Err

DOKUMEN TASI

TAHAP PENGEMBANGAN ALGORITMA

Page 22: Deskripsi Matakuliah

22

DEFINISI MASALAH

MEMBUAT MODEL

RANCANG ALGORITMA

TULIS PROGRAM

COMPILE

Sintak Err

Executable code: => Run

Output Err

DOKUMEN TASI

TAHAP PENGEMBANGAN ALGORITMA

Page 23: Deskripsi Matakuliah
Page 24: Deskripsi Matakuliah
Page 25: Deskripsi Matakuliah
Page 26: Deskripsi Matakuliah
Page 27: Deskripsi Matakuliah
Page 28: Deskripsi Matakuliah
Page 29: Deskripsi Matakuliah
Page 30: Deskripsi Matakuliah
Page 31: Deskripsi Matakuliah
Page 32: Deskripsi Matakuliah

• Ada banyak cara untuk menyelesaikan suatu masalah Algoritma tiap orang berbeda-beda.

• Algoritma dilakukan secara bertahap dari langkah awal sampai akhir.

• Algoritma bisa mencari suatu penyelesaian benar maupun penyelesaian salah.

Ciri-Ciri Algoritma

Page 33: Deskripsi Matakuliah

• Definisikan permasalahan (proses dan tujuan akhir).• Buat runtutan proses dari awal hingga akhir secara

perinci.• Buat flowchart untuk menggambarkan alur proses

algoritma.• Implementasi algoritma dalam program.• Testing, cek apakah tujuan akhir sudah

memenuhi/merupakan hasil akhir yang dituju atau belum.

Cara Membuat Algoritma Sebuah Program

Page 34: Deskripsi Matakuliah

• Representasi algoritma berbeda-beda.• Diantaranya: block code,

diagram/FlowChart, dsb.

Representasi Sebuah Algoritma

Page 35: Deskripsi Matakuliah

Contoh algoritma 1

• Ada 2 buah gelas. Satu berisi teh dan satunya lagi berisi kopi. Bagaimana caranya menukar isi masing-masing gelas?

next

Page 36: Deskripsi Matakuliah

Algoritma Dalam Bahasa Natural1. Ambil bilangan pertama dan set maks sama

dengan bilangan pertama2. Ambil bilangan kedua dan bandingkan dengan

maks3. Apa bila bilangan kedua lebih besar dari maks,

set maks sama dengan bilangan kedua4. Ambil bilangan ketiga dan bandingkan dengan

maks5. Apabila bilangan ketiga lebih besar dari maks,

set maks sama dengan bilangan ketiga6. Variabel maks berisi bilangan terbesar.

Tayangkan hasilnyanext

Page 37: Deskripsi Matakuliah
Page 38: Deskripsi Matakuliah
Page 39: Deskripsi Matakuliah
Page 40: Deskripsi Matakuliah

• 3 komponen utama (saling berurutan) INPUT PROSES OUTPUT.

• Hindari proses yang tidak perlu dan berbelit-belit (Cari algoritma proses terbaik).

• Gambar flowchart dari atas ke bawah dengan penghubung anak panah yang jelas.

• Flowchart diawali dengan titik awal (start) dan titik akhir (end)

Cara Membuat Sebuah FlowChart

Page 41: Deskripsi Matakuliah

Contoh FlowChart

START

READ A, B, C

IS A>B?

IS A>C?

IS B>C?

NO YES

PRINT B

YES

END

PRINT C PRINT A

NO YESNO

Page 42: Deskripsi Matakuliah
Page 43: Deskripsi Matakuliah
Page 44: Deskripsi Matakuliah
Page 45: Deskripsi Matakuliah
Page 46: Deskripsi Matakuliah
Page 47: Deskripsi Matakuliah
Page 48: Deskripsi Matakuliah
Page 49: Deskripsi Matakuliah
Page 50: Deskripsi Matakuliah

NO

Page 51: Deskripsi Matakuliah
Page 52: Deskripsi Matakuliah

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

Add

Page 53: Deskripsi Matakuliah

Algoritma dan Pseudocode

• Algoritma: urutan langkah-langkah yang dapat digunakan untuk memecahkan suatu masalah

• Pseudocode:• Bahasa buatan yang bersifat informal yang dapat

membantu untuk mengembangkan algoritma• Serupa dengan bahasa sehari-hari• Membantu mempermudah penulisan program; dengan

menggunakan statement-statement yang dapat dieksekusi, mempermudah konversi ke bahasa pemrograman

Page 54: Deskripsi Matakuliah

Struktur Kontrol

• Semua program ditulis dalam 3 macam bentuk struktur kontrol:• Sequence atau berturutan: struktur ini tersedia secara built-in. Secara

default program dieksekusi secara berturutan sesuai urutan perintah• Selection atau pilihan: ada 3 macam dalam bahasa C: if, if…else, dan

switch• Repetition atau pengulangan: ada 3 macam dalam bahasa C: while, do…

while, dan for• Flowchart

• Representasi grafis dari algoritma• Menggunakan simbol-simbol khusus yang dihubungkan dengan garis

beranak panah• Simbol kotak melambangkan aksi• Simbol oval melambangkan awal dan akhir suatu program atau blok

program• Simbol berlian melambangkan keputusan/pilihan

Page 55: Deskripsi Matakuliah

Selection Control [1] (if)

• Statement if:• Digunakan untuk seleksi suatu kondisi• Contoh pseudocode:

If student’s grade is greater than or equal to 60 Print “Passed”• Contoh Flowchart:

true

false

grade >= 60 print “Passed”

Page 56: Deskripsi Matakuliah

Selection Control [2] (if)

• Jika kondisi true• Statement Print dieksekusi dan program dilanjutkan ke statement

berikutnya• Jika kondisi false

• Statement Print diabaikan dan program dilanjutkan ke statement berikutnya• Dalam bahasa C:

if ( grade >= 60 ) printf( "Passed\n" );

Page 57: Deskripsi Matakuliah

Selection Control [3] (if…else)

• Statement if…else:• Menspesifikasikan aksi baik untuk kondisi true maupun untuk kondisi

false• Contoh pseudocode:

If student’s grade is greater than or equal to 60 Print “Passed”

else

Print “Failed”• Contoh Flowchart: truefalse

print “Failed” print “Passed”

grade >= 60

Page 58: Deskripsi Matakuliah

Selection Control [4] (if…else)

• Dalam C :if ( grade >= 60 ) printf( "Passed\n");else printf( "Failed\n");

• Ternary conditional operator (?:) • Memerlukan tiga argumen (kondisi, nilai jika true, nilai jika false)• Contoh di atas dapat ditulis sbb:

printf( "%s\n", grade >= 60 ? "Passed" : "Failed" ); • Atau dapat ditulis sbb:

grade >= 60 ? printf( “Passed\n” ) : printf( “Failed\n” );

Page 59: Deskripsi Matakuliah

Selection Control [5] (if…else)

• Statement if…else bertingkat/bersarang:• Digunakan untuk menguji banyak kondisi dimana menempatkan statement

seleksi if…else di dalam statement if…else • Sekali kondisi terpenuhi, sisa statement lainnya dilewatkan/diabaikan• Contoh pseudocode:If student’s grade is greater than or equal to 90

Print “A”else

If student’s grade is greater than or equal to 80 Print “B”else If student’s grade is greater than or equal to 70 Print “C” else If student’s grade is greater than or equal to 60 Print “D” else Print “F”

Page 60: Deskripsi Matakuliah

Selection Control [6] (if…else)• Compound statement

• Ada lebih dari satu statement/aksi yang harus dieksekusi setelah suatu kondisi dipenuhi

• Sering disebut juga blok karena ditandai dengan pasangan { dan }• Contoh:

if ( grade >= 60 ) printf( "Passed.\n" );else { printf( "Failed.\n" ); printf( "You must take this course

again.\n" );}

• Tanpa tanda kurung kurawal, statementprintf( "You must take this course

again.\n" );Akan dieksekusi secara otomatis.

Page 61: Deskripsi Matakuliah

Selection Control [7] (switch)

• Multiple-Selection Statement switch:• Berguna pada waktu sebuah variabel atau ekspresi diuji terhadap semua

nilai yang mungkin dan masing-masing mengambil aksi yang berbeda• Format penulisan:

• Sederetan label case dan opsional default caseswitch ( value ){

case '1':actions

case '2':actions

default:actions

}• break; keluar dari statement

Page 62: Deskripsi Matakuliah

Selection Control [8] (switch)

• Flowchart statement switch:

true

false

.

.

.

case a case a action(s) break

case b case b action(s) break

false

false

case z case z action(s) break

true

true

default action(s)

Page 63: Deskripsi Matakuliah

Repetition Control [1] (while)

• Struktur pengulangan structure• Programmer menentukan aksi yang akan diulang selama kondisi tetap

true• Psuedocode:

While there are more items on my shopping list Purchase next item and cross it off my list

• while loop diulang hingga kondisi menjadi false• Contoh:

int product = 2;while ( product <= 1000 )

product = 2 * product;

Page 64: Deskripsi Matakuliah

Repetition Control [2] (while)

product <= 1000 product = 2 * producttrue

false

• Flowchart:

Page 65: Deskripsi Matakuliah

Repetition Control [3] (while)

• Pengulangan yang dikontrol sebuah counter• Loop diulang hingga counter mencapai angka tertentu• Disebut juga definite repetition karena jumlah pengulangan dapat kita

ketahui• Contoh: Sebuah kelas dengan 10 orang mahasiswa mengikuti kuis. Nilai

kuis adalah bilangan bulat dari 0 hingga 100. Tentukan nilai rata-rata kuis tersebut.

• Pseudocode: Set total to zero

Set grade counter to oneWhile grade counter is less than or equal to ten

Input the next gradeAdd the grade into the totalAdd one to the grade counter

Set the class average to the total divided by tenPrint the class average

Page 66: Deskripsi Matakuliah

Latihan 1 Buat diagram alur untuk mencetak nama-nama

pelamar yang lolos saringan tahap pertama. Dalam tes terdapat 2 materi. Bila jumlah nilai kedua materi tersebut lebih besar dari 70 pelamar dinyatakan lolos saringan tahap pertama. Bentuk laporan yang diinginkan terdiri dari nama pelamar, nilai tes dan keterangan.

Add

Page 67: Deskripsi Matakuliah

Latihan 2 Suatu perusahaan akan membuat laporan gaji

pegawainya berdasarkan golongannya. Data yang dibaca terdiri dari nomor pegawai, nama pegawai, golongan dan gaji bersih. Data yang dibaca sudah urut per golongan yang terdiri dari : golongan 1, 2, 3,4. Jika golongan berubah maka cetak TOTAL GAJI per golongan dan ganti halaman baru serta NOMOR dimulai dari 1.

Add

Page 68: Deskripsi Matakuliah

LatihanAdd

Page 69: Deskripsi Matakuliah

Contoh algoritma

• Siapkan gelas cadangan X• Tuangkan gelas yang berisi teh ke gelas X• Tuangkan gelas yang berisi kopi ke gelas

teh• Tuangkan gelas X yang berisi teh ke gelas

kopi

Page 70: Deskripsi Matakuliah

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

• DESKRIPSI1. Tuangkan larutan dari bejana A ke bejana X2. Tuangkan larutan dari bejana B ke bejana A3. 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

Page 71: Deskripsi Matakuliah

Algoritma TUKAR_ISI_BEJANA

• Misal urutan diubah menjadi1. Tuangkan larutan dari bejana B ke bejana A

2. Tuangkan larutan dari bejana A ke bejana X

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

back

Page 72: Deskripsi Matakuliah

Algoritma dengan Flowchart

Maks = bilangan pertama

Maks < bilangan kedua

Maks = bilangan kedua

Maks < bilangan ketiga

Maks = bilangan ketiga

Ya

Ya

Selesai

Mulai

Tidak

Tidak

Page 73: Deskripsi Matakuliah

Algoritma dengan pseudo-code

maks ← bilangan pertama

if (maks < bilangan kedua)maks ← bilangan kedua

if (maks < bilangan ketiga)maks ← bilangan ketiga

back