Anda di halaman 1dari 46

ALGORITMA & PEMROGRAMAN

Teknik Informatika Fakultas Teknologi Industri Universitas Atma Jaya Yogyakarta

Tujuan
memberikan pengetahuan konsep dan penerapan algoritma sebagai dasar pembuatan program dengan menggunakan salah satu bahasa pemrograman.

SAP
Pengantar Algoritma Dasar-dasar algoritma dan flow chart Tipe, Nama, dan Nilai Runtunan/Sekuens dan Pemilihan Pengulangan Prosedur Fungsi Array Record Rekursif Studi Kasus

Referensi & Penilaian


Referensi
Algoritma dan Pemrograman dalam Bahasa Pascal dan C (Buku 1), Rinaldi Munir, Informatika Bandung Algoritma dan Pemrograman dalam Bahasa Pascal dan C (Buku2), Rinaldi Munir&Leoni Lidya, Informatika Bandung

Penilaian
UTS UAS Praktikum 30% 40% 30%

PERATURAN
Batas keterlambatan 15 menit Handphone bunyi, kuliah dianggap selesai (materi yang belum sempat dibahas dipelajari sendiri). awal kuliah saling mengingatkan Mulai minggu kedua minimal 2 orang 1 buku Bagi yg hanya mengambil teori saja (mengulang), hubungi dosen pengampu dengan membawa transkrip nilai. Modul praktikum dikerjakan di rumah dan dikumpulkan ke dosen pengampu.

PENGANTAR ALGORITMA

Algoritma & Program


Algoritma
Urutan langkah-langkah logis penyelesaian masalah yang disusun secara sistematis Urutan logis pengambilan keputusan untuk pemecahan masalah

Lima ciri penting algoritma


Selesai dalam jumlah langkah terbatas Tidak memiliki arti ganda Memiliki nol atau lebih input Memiliki nol atau lebih output Efektif

Program
Perwujudan atau implementasi algoritma yang ditulis dalam bahasa pemrograman tertentu

Belajar Memprogram & Belajar Bahasa Pemrograman


Belajar memprogram:
pemahaman persoalan, analisis, dan sintesis
Pemecahan Masalah -Strategi -Metodologi -Sistematika

Notasi yang telah disepakati

Belajar Bahasa Pemrograman :


Belajar memakai suatu bahasa aturan sintaks (tata bahasa)

Tahapan Pemecahan Masalah


Algoritma

Translasi
Program dalam Bahasa Tingkat Tinggi

Kompilasi
Program dalam Bahasa Mesin

Interpretasi oleh CPU


Operasi (Baca, tulis, hitung, perbandingan, dll)

Paradigma Pemrograman
Prosedural (imperatif) Program = Struktur + Data mis : Pascal, C, Basic Object Oriented data dan instruksi dibungkus menjadi satu, disebut: kelas, kelas pada saat run-time disebut objek. mis : C++, Java Fungsional konsep pemetaan dan fungsi pada matematika mis : Matlab Deklaratif pendefinisian relasi antar individu yang dinyatakan sebagai predikat mis : Prolog

DASAR-DASAR ALGORITMA dan FLOW CHART

Proses, Instruksi, dan Aksi


Algoritma merupakan deskripsi urutan pelaksanaan suatu proses Algoritma tersusun oleh sederetan langkah instruksi yang logis Tiap langkah instruksi akan mengerjakan suatu tindakan (Aksi) Bila Aksi dilaksanakan, maka sejumlah operasi yang bersesuaian akan dikerjakan oleh CPU

Struktur Dasar Algoritma


Runtunan (sequence)
aksi-aksi dalam algoritma yang dikerjakan secara berurutan contoh :

A1. Aksi 1 A2. Aksi 2 A3. Aksi 3

mula-mula aksi 1 dilakukan aksi 2 dilakukan setelah aksi 1 selesai dilaksanakan dst.

Struktur Dasar Algoritma(2)

Pemilihan (selection)
aksi dikerjakan jika kondisi tertentu terpenuhi contoh :

IF kondisi THEN aksi

IF kondisi THEN aksi1 ELSE aksi2

IF kondisi1 THEN Aksi1 ELSE IF kondisi2 THEN Aksi2 ELSE Aksi3

(Aksi 3 dilakukan jika kondisi 1 dan 2 tidak terpenuhi)

Struktur Dasar Algoritma (3)

Pengulangan (repeatition)
aksi-aksi yang dikerjakan berulang kali contoh : FOR pencacah pengulangan dari a sampai b DO Aksi
(aksi dilakukan sebanyak hitungan pencacah pengulangan, yaitu dari a sampai b yakni sebanyak b-a+1 kali)

REPEAT Aksi UNTIL kondisi


(pengulangan aksi dilakukan sehingga kondisi/persyaratan berhenti terpenuhi)

WHILE kondisi DO Aksi


(selama kondisi/persyaratan pengulangan masih benar, maka aksi dikerjakan)

Flow Chart
Flow chart suatu bagan/diagram yang menggambarkan aliran proses yang dikerjakan program dari awal sampai akhir. Flow chart adalah algoritma yang digambarkan dengan diagram Fungsi dari flow chart adalah mendeskripsikan urutan pelaksanaan suatu proses (sama dengan fungsi algoritma)

Penulisan Algoritma
FLOW CHART
Flow chart adalah suatu bagan/diagram yang menggambarkan aliran proses yang dikerjakan suatu program dari awal sampai akhir Flow chart adalah algoritma yang digambarkan dengan diagram Fungsi dari flow chart adalah mendeskripsikan urutan pelaksanaan suatu proses (sama dengan fungsi dari algoritma)

TEKS ALGORITMA
berisi langkah-langkah penyelesaian masalah yang ditulis dengan bahasa yang mudah dipahami

Flow Chart(2)
Input Processing Output (display) Decision (untuk mengevaluasi suatu kondisi) Procedure/subroutine

Flow Chart(2)
Flow lines Terminator (mengawali dan mengakhiri flow chart) On page connector Off page connector Annotation (memberi komentar atau keterangan dalam flow chart)

ATURAN PENULISAN TEKS ALGORITMA

Teks Algoritma
Teks algoritma berisi langkah-langkah penyelesaian masalah Tidak ada notasi baku tapi sebaiknya berkorespondensi dengan bahasa pemrograman umum, supaya mudah ditranslasikan ke dalam bahasa pemrograman Notasi yang digunakan untuk menulis algoritma disebut notasi algoritmik

Teks Algoritma
Struktur teks algoritma
Kepala algoritma terdiri atas nama algoritma dan penjelasan (spesifikasi) tentang algoritma tersebut Deklarasi mendefinisikan semua nama (konstanta, peubah, tipe, prosedur atau fungsi) yang dipakai dalam algoritma Deskripsi Berisi uraian langkah-langkah penyelesaian Komentar ditulis diantara tanda kurung { dan }

Contoh Teks Algoritma


Judul algoritma

spesifikasi algoritma

Kata2 yg biasanya menjadi keyword bhs pemrogram diberi garis bawah

Pascal

TIPE, NAMA, DAN NILAI

Tipe Data
Tipe data terdiri dari tipe: Tipe dasar
Tipe yang dapat langsung dipakai (disediakan oleh bahasa pemrograman) Contoh: boolean, integer, real, char, string (?)

Tipe bentukan
Tipe yang didefinisikan sendiri oleh pemrogram Tipe yang dibentuk dari tipe dasar atau dari tipe bentukan lain yang sudah didefinisikan Contoh: tipe dasar yang diberi nama tipe baru, record

Tipe Data(2)
Empat hal yang harus diperhatikan dalam pendefinisian tipe: Nama Domain harga Konstanta Operator

Tipe Data(3)

Tipe Bentukan
Tipe dasar yang diberi nama tipe baru
Nama baru untuk tipe dasar menggunakan kata kunci type Domain nilai, cara menulis konstanta, dan operasi-operasi yang dapat dijalankan pada tipe baru tersebut tidak berubah, sama seperti tipe dasarnya. Contoh: type BilanganBulat: integer

Rekaman (record)
Rekaman disusun atas satu atau lebih field Tipe field menyimpan data dan tipe dasar tertentu atau dari tipe bentukan lain yang sudah didefinisikan sebelumnya Nama rekaman ditentukan oleh pemrogram Rekaman disebut juga tipe terstruktur

Contoh Record
DEKLARASI type MataKuliah : record <KodeMK : string, {kode matakuliah} NamaMK : string, {nama matakuliah} Nilai : char {indeks nilai} >
type Mahasiswa : record <NIM : integer, {nomor mhs} NamaMhs : string, {nama mhs} MK : array[1..4] of MataKuliah > LarikMhs : array[1..100] of Mahasiswa

Nama
Untuk mengidentifikasikan dan membedakan obyek Unik dan tidak boleh sama Dalam algoritma nama diberikan pada:
Variabel
Tempat penyimpanan data/informasi di memori yang nilainya dapat diubah selama pelaksanaan program

Konstanta
Tempat penyimpanan di memori yang nilainya tidak dapat diubah selama pelaksanaan program

Tipe bentukan
Tipe data baru yang didefinisikan oleh program dari tipe data yang sudah ada

Prosedur
Modul program (sederetan instruksi) yang ditulis terpisah dari badan program utamadan dapat dipanggil berulang dari program utama

Fungsi
Prosedur yang mengembalikan suatu nilai dengan tipe data sederhana

Aturan Penulisan Nama


Harus dimulai dengan huruf alfabet, tidak boleh dimulai dengan angka, spasi, atau karakter khusus lainnya. Tidak case sensitif (beda dengan bahasa pemrograman) Karakter penyusun nama hanya boleh: huruf alfabet, angka dan _ (underscore) Tidak boleh dipisahkan dengan spasi Panjang nama tidak terbatas Semua nama yang dipakai harus dideklarasikan dulu pada bagian deklarasi

Contoh Penamaan
SALAH
6titik nilai ujian PT-1 hari! {dimulai dg angka} {dipisahkan spasi} {mengandung operator kurang} {mengandung karakter khusus}

BENAR
titik6 atau titik_6 nilai_ujian atau nilaiUjian PT_1 atau PT1 hari

Nilai
Merupakan besaran dari tipe data yang sudah didefinisikan (tipe dasar maupun tipe bentukan) Nilai dapat berupa:
Isi variabel atau konstanta Nilai dari hasil perhitungan Nilai yang dihasilkan oleh fungsi

Nilai yang disimpan di variabel dimanipulasi dengan cara:


Mengisikan ke variabel lain yang bertipe sama Dipakai untuk perhitungan Dituliskan ke piranti keluaran

Nilai(2)
Pengisian nilai ke variabel: Pengisian nilai secara langsung(assignment)
Memasukkan sebuah nilai ke dalam nama variabel langsung di dalma teks algoritma Syaratnya nilai yang didisikan harus bertipe sama dengan tipe peubah Notasi: Contoh:
variabel konstanta variabel1 variabel2 variabel ekspresi NoMhs 1234 Nil_prev Nil_cur Luas 0.5 * p * l

Nilai(3)
Pembacaan nilai dari piranti masukan
Nilai untuk nama variabel dapt diisi dari piranti masukan, misalnya dari keyboard. Dinamakan dengan operasi pembacaan data Notasi dalam teks algoritma: read Contoh:
read (nama1, nama2,namaN)

Ekspresi
Ekspresi terdiri atas: operand dan operator Operand adalah nilai yang dioperasikan dengan operator tertentu Operand dapat berupa konstanta, nama variabel, nama konstanta, atau hasil suatu fungsi Hasil evaluasi dari sebuah ekspresi adalah nilai di dalam domain yang sesuai dengan tipe operand yang dipakai, ada tiga macam: ekspresi aritmetik, ekspresi relasional, ekspresi string.

Ekspresi(2)
Ekspresi Aritmetika
Ekspresi yang baik operand dan hasilnya berupa numerik (ingat: tingkat prioritas operator)
i. / , div, mod ii. * iii.+, -

Ekspresi relasional
Ekspresi dengan operator <,,>,,=,, not, and, or, dan xor Hasil evaluasi adalah nilai bertipe boolean Ekspresi string

Ekspresi (3)
Ekspresi string Ekspresi dengan operator penyambungan/concatenation +.

Menuliskan Nilai ke Piranti Keluaran (monitor/printer)


Dilakukan dengan notasi write Contoh:
write (nama1, nama2, , namaN)

Contoh Algoritma
Algoritma SAPA_SOBAT {mencetak string Selamat Siang diikuti nama orang. Nama prang diinputkan dari piranti masukan} DEKLARASI const ucapan = Selamat Siang
namaUser : string DESKRIPSI read(namaUser) write(ucapan + + namaUser)

TRANSALASI Algoritma-C-Pascal

Translasi Algoritma-C-Pascal

Lihat di buku!

Anda mungkin juga menyukai