Anda di halaman 1dari 79

Algoritma dan Pemrograman

Fasilkom-Kelas C

Tubagus Purworusmiardi, S.Kom

Tujuan

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

~ Alpro Tubagus Purworusmiardi, S.Kom

Silabus

Chapter 1 Pendahuluan

Pengenalan mengenai sistem komputer Pengenalan algoritma dan pemrograman


Struktur dasar algoritma Penjelasan tipe data untuk algoritma dan bhs pemrograman Pembuatan penamaan dan nilai

Chapter 2. Dasar-dasar algoritma

Chapter 3. Tipe, nama dan nilai


Chapter 4. Runtunan
~ Alpro Tubagus Purworusmiardi, S.Kom

Silabus

Chapter 5. Pemilihan

Pemilihan Case
For..to..do.. While do.. Repeat until Rutin Prosedur Fungsi
~ Alpro Tubagus Purworusmiardi, S.Kom

Chapter 6. Pengulangan

Chapter 7. Prosedur dan Fungsi

Silabus

Chapter 8. Array Chapter 9. Record Chapter 10. Rekursif

~ Alpro Tubagus Purworusmiardi, S.Kom

Referensi

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

~ Alpro Tubagus Purworusmiardi, S.Kom

Penilaian

Tugas = 20% UTS = 30% UAS = 40% Kehadiran = 10%

~ Alpro Tubagus Purworusmiardi, S.Kom

Alat

Dev C++ Turbo Pascal VB Script Raptor

~ Alpro Tubagus Purworusmiardi, S.Kom

Algoritma & Pemrograman

Minggu 2 Kelas C Sistem Informasi Tubagus Purworusmiardi, S.Kom

~ Alpro Tubagus Purworusmiardi, S.Kom

Algoritma

Penemunya adalah seorang ahli matematika dari uzbekistan yang bernama Abu Abdullah Muhammad Ibn Musa al-Khwarizmi (770-840). Di literatur barat dia lebih terkenal dengan sebutan Algorizm. Panggilan inilah yang kemudian dipakai untuk menyebut konsep algorithm yang ditemukannya. Dalam bahasa Indonesia kita kemudian menyebutkannya sebagai algoritma. Algoritma adalah kunci dari bidang ilmu komputer, karena banyak bidang di bawah ilmu komputer yang lahir berdasarkan konsep algoritma ini. Pada hakekatnya algoritma juga adalah kunci dari kehidupan kita. Cara membuat masakan (resep masakan) adalah juga sebuah contoh nyata dari algoritma.

~ Alpro Tubagus Purworusmiardi, S.Kom

Algoritma

adalah logika, metode dan tahapan (urutan) sistematis yang digunakan untuk memecahkan suatu permasalahan.

~ Alpro Tubagus Purworusmiardi, S.Kom

Algoritma

Ketika manusia berusaha memecahkan masalah, metode atau teknik yang digunakan untuk memecahkan masalah itu ada kemungkinan bisa banyak (tidak hanya satu). Dan kita memilih mana yang terbaik diantara teknik-teknik itu. Hal ini sama juga dengan algoritma, yang memungkinkan suatu permasalahan dipecahkan dengan metode dan logika yang berlainan.
~ Alpro Tubagus Purworusmiardi, S.Kom

Program

Perwujudan atau implementasi algoritma yang ditulis dalam bahasa pemrograman tertentu

~ Alpro Tubagus Purworusmiardi, S.Kom

Belajar Memprogram & Belajar Bahasa Pemrograman

Belajar memprogram:
pemahaman

persoalan, analisis,
Notasi yang telah disepakati

dan sintesis
Pemecahan Masalah -Strategi -Metodologi -Sistematika

Belajar Bahasa Pemrograman :


Belajar memakai suatu bahasa aturan sintaks (tata bahasa)

~ Alpro Tubagus Purworusmiardi, S.Kom

DASAR-DASAR ALGORITMA dan FLOW CHART

~ Alpro Tubagus Purworusmiardi, S.Kom

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

~ Alpro Tubagus Purworusmiardi, S.Kom

Struktur Dasar Algoritma

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

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

~ Alpro Tubagus Purworusmiardi, S.Kom

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 ba+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)

~ Alpro Tubagus Purworusmiardi, S.Kom

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)
~ Alpro Tubagus Purworusmiardi, S.Kom

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)
berisi langkah-langkah penyelesaian masalah yang ditulis dengan bahasa yang mudah dipahami
~ Alpro Tubagus Purworusmiardi, S.Kom

TEKS ALGORITMA

Flow Chart

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

~ Alpro Tubagus Purworusmiardi, S.Kom

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)
~ Alpro Tubagus Purworusmiardi, S.Kom

ATURAN PENULISAN TEKS ALGORITMA

~ Alpro Tubagus Purworusmiardi, S.Kom

Teks Algoritma

Teks algoritma berisi langkahlangkah 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
~ Alpro Tubagus Purworusmiardi, S.Kom

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 }

~ Alpro Tubagus Purworusmiardi, S.Kom

Contoh Teks Algoritma


Judul algoritma

spesifikasi algoritma

Kata2 yg biasanya menjadi keyword bhs pemrogram diberi garis bawah

~ Alpro Tubagus Purworusmiardi, S.Kom

Pascal

~ Alpro Tubagus Purworusmiardi, S.Kom

TIPE, NAMA, DAN NILAI

~ Alpro Tubagus Purworusmiardi, S.Kom

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 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
~ Alpro Tubagus Purworusmiardi, S.Kom

Tipe bentukan

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

~ Alpro Tubagus Purworusmiardi, S.Kom

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 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
~ Alpro Tubagus Purworusmiardi, S.Kom

Rekaman (record)

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

~ Alpro Tubagus Purworusmiardi, S.Kom

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

~ Alpro Tubagus Purworusmiardi, S.Kom

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

~ Alpro Tubagus Purworusmiardi, S.Kom

Contoh Penamaan

SALAH

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

BENAR

titik6 atau titik_6 nilai_ujian atau nilaiUjian PT_1 atau PT1 hari
~ Alpro Tubagus Purworusmiardi, S.Kom

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

~ Alpro Tubagus Purworusmiardi, S.Kom

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

~ Alpro Tubagus Purworusmiardi, S.Kom

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)

~ Alpro Tubagus Purworusmiardi, S.Kom

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. ~ Alpro Tubagus Purworusmiardi, S.Kom

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

~ Alpro Tubagus Purworusmiardi, S.Kom

Ekspresi (3)

Ekspresi string Ekspresi dengan operator penyambungan/concatenation +.

~ Alpro Tubagus Purworusmiardi, S.Kom

Menuliskan Nilai ke Piranti Keluaran (monitor/printer)

Dilakukan dengan notasi write Contoh:

write (nama1, nama2, , namaN)

~ Alpro Tubagus Purworusmiardi, S.Kom

Contoh Algoritma
Algoritma Hello_World {mencetak string Hello World diikuti nama orang. Nama orang diinputkan dari piranti masukan} DEKLARASI const ucapan = Hello World namaUser : string DESKRIPSI read(namaUser) write(ucapan + + namaUser)

~ Alpro Tubagus Purworusmiardi, S.Kom

Sumber

Algoritma dan Pemrograman dalam Bahasa Pascal dan C (Buku 1), Rinaldi Munir, Informatika Bandung ilmukomputer.com

~ Alpro Tubagus Purworusmiardi, S.Kom

Dasar Algoritma

Dalam penulisan Algoritma ada beberapa ketentuan yaitu:


Program atau metode penyelesaian masalah harus sesuai tahapan / urutan Tahapan tersebut tidak baku, yang penting efektif Program bersifat terstruktur Tidak bermakna ganda

Struktur Badan Algoritma

Kepala Program
Berisi judul program dan keterangan tentang program Bahasa Algoritma : Algoritma

judul_program Ex. Algoritma menghitung_luas_segitiga Ex. Algoritma MenghitungLuasSegitiga

Bisa ditambahkan komentar tentang program dengan menggunakan operator { }

Struktur Badan Algoritma (2)

Deklarasi
Berisi variabel yang digunakan dalam program Bahasa Algoritma : nama_variabel : Tipe Data

Ex. AlasSegitiga : integer Ex. TinggiSegitiga : integer Ex. LuasSegitiga : integer

Struktur Badan Algoritma (3)

Deskripsi
Berisi uraian langkah penyelesaian Example:

read(PanjangSegitiga) read(LebarSegitiga) LuasSegitiga * PanjangSegitiga *


LebarSegitiga write(LuasSegitiga)

Struktur Badan Algoritma (4)


Algoritma menghitung_luas_segitiga {menghitung luas segitiga dengan inputan alas dan tinggi segitiga berasal dari keyboard} DEKLARASI AlasSegitiga : Integer TinggiSegitiga : Integer LuasSegitiga : Integer DESKRIPSI read(AlasSegitiga) read(TinggiSegitiga) LuasSegitiga * AlasSegitiga * TinggiSegitiga write(LuasSegitiga)

Kasus

Deklarasi data untuk mobil Merk : String {Contoh: Honda} NoKendaraan : String {Contoh: KH1A} TahunProduksi : Integer {Contoh: 2007} Deklarasi data untuk Mata kuliah Deklarasi data untuk Waktu

Deklarasi data untuk Alamat Rumah Deklarasi data untuk Data Pribadi <min 6 variabel>

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 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 bentukan

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

Rekaman (record)

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 {dimulai dg angka} nilai ujian {dipisahkan spasi} PT-1 {mengandung operator kurang} hari! {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 Hello_World {mencetak string Hello World diikuti nama orang. Nama orang diinputkan dari piranti masukan} DEKLARASI const ucapan = Hello World namaUser : string DESKRIPSI read(namaUser) write(ucapan + + namaUser)

Tugas di kumpul minggu depan

Buatlah algoritma lengkap tentang perhitungan konversi dari jam ke detik


Inputan berupa jam. Misalnya Masukan jam : 1 Ouput Detik : 3600

Sumber

Algoritma dan Pemrograman dalam Bahasa Pascal dan C (Buku 1), Rinaldi Munir, Informatika Bandung ilmukomputer.com