algoritma dan pemrograman
DESCRIPTION
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. - PowerPoint PPT PresentationTRANSCRIPT
Algoritma dan PemrogramanAlgoritma dan Pemrograman
Fasilkom-Kelas CFasilkom-Kelas C
Tubagus Purworusmiardi, S.KomTubagus Purworusmiardi, S.Kom
TujuanTujuan
memberikan pengetahuan konsep memberikan pengetahuan konsep dan penerapan algoritma sebagai dan penerapan algoritma sebagai dasar pembuatan program dasar pembuatan program dengan menggunakan salah satu dengan menggunakan salah satu bahasa pemrograman.bahasa pemrograman.
~ Alpro – Tubagus Purworusmiardi, S.Kom~ Alpro – Tubagus Purworusmiardi, S.Kom
SilabusSilabus
Chapter 1 PendahuluanChapter 1 Pendahuluan Pengenalan mengenai sistem Pengenalan mengenai sistem
komputerkomputer Pengenalan algoritma dan Pengenalan algoritma dan
pemrogramanpemrograman Chapter 2. Dasar-dasar algoritmaChapter 2. Dasar-dasar algoritma
Struktur dasar algoritmaStruktur dasar algoritma Chapter 3. Tipe, nama dan nilaiChapter 3. Tipe, nama dan nilai
Penjelasan tipe data untuk algoritma Penjelasan tipe data untuk algoritma dan bhs pemrogramandan bhs pemrograman
Pembuatan penamaan dan nilaiPembuatan penamaan dan nilai Chapter 4. Chapter 4. RuntunanRuntunan
~ Alpro – Tubagus Purworusmiardi, S.Kom~ Alpro – Tubagus Purworusmiardi, S.Kom
SilabusSilabus
Chapter 5. PemilihanChapter 5. Pemilihan PemilihanPemilihan CaseCase
Chapter 6. PengulanganChapter 6. Pengulangan For..to..do..For..to..do.. While do..While do.. Repeat untilRepeat until
Chapter 7. Prosedur dan FungsiChapter 7. Prosedur dan Fungsi RutinRutin ProsedurProsedur FungsiFungsi
~ Alpro – Tubagus Purworusmiardi, S.Kom~ Alpro – Tubagus Purworusmiardi, S.Kom
SilabusSilabus
Chapter 8. ArrayChapter 8. Array Chapter 9. RecordChapter 9. Record Chapter 10. RekursifChapter 10. Rekursif
~ Alpro – Tubagus Purworusmiardi, S.Kom~ Alpro – Tubagus Purworusmiardi, S.Kom
ReferensiReferensi
ReferensiReferensi Algoritma dan Pemrograman Algoritma dan Pemrograman
dalam Bahasa Pascal dan C dalam Bahasa Pascal dan C (Buku 1), Rinaldi Munir, (Buku 1), Rinaldi Munir, Informatika BandungInformatika Bandung
Algoritma dan Pemrograman Algoritma dan Pemrograman dalam Bahasa Pascal dan C dalam Bahasa Pascal dan C (Buku2), Rinaldi Munir&Leoni (Buku2), Rinaldi Munir&Leoni Lidya, Informatika BandungLidya, Informatika Bandung
~ Alpro – Tubagus Purworusmiardi, S.Kom~ Alpro – Tubagus Purworusmiardi, S.Kom
PenilaianPenilaian
Tugas = 20%Tugas = 20% UTS = 30%UTS = 30% UAS = 40%UAS = 40% Kehadiran = 10%Kehadiran = 10%
~ Alpro – Tubagus Purworusmiardi, S.Kom~ Alpro – Tubagus Purworusmiardi, S.Kom
AlatAlat
Dev C++Dev C++ Turbo PascalTurbo Pascal VB ScriptVB Script RaptorRaptor
~ Alpro – Tubagus Purworusmiardi, S.Kom~ Alpro – Tubagus Purworusmiardi, S.Kom
Algoritma & Algoritma & PemrogramanPemrograman
Minggu 2Minggu 2
Kelas C – Sistem InformasiKelas C – Sistem Informasi
Tubagus Purworusmiardi, S.KomTubagus Purworusmiardi, S.Kom
~ Alpro – Tubagus Purworusmiardi, S.Kom
AlgoritmaAlgoritma
Penemunya adalah seorang ahli matematika dari Penemunya adalah seorang ahli matematika dari uzbekistan yang bernama Abu Abdullah uzbekistan yang bernama Abu Abdullah Muhammad Ibn Musa al-Khwarizmi (770-840).Muhammad Ibn Musa al-Khwarizmi (770-840).
Di literatur barat dia lebih terkenal dengan sebutan Di literatur barat dia lebih terkenal dengan sebutan Algorizm. Panggilan inilah yang kemudian dipakai Algorizm. Panggilan inilah yang kemudian dipakai untuk menyebut konsep algorithm yang untuk menyebut konsep algorithm yang ditemukannya. Dalam bahasa Indonesia kita ditemukannya. Dalam bahasa Indonesia kita kemudian menyebutkannya sebagai algoritma. kemudian menyebutkannya sebagai algoritma.
Algoritma adalah kunci dari bidang ilmu komputer, Algoritma adalah kunci dari bidang ilmu komputer, karena banyak bidang di bawah ilmu komputer karena banyak bidang di bawah ilmu komputer yang lahir berdasarkan konsep algoritma ini. yang lahir berdasarkan konsep algoritma ini.
Pada hakekatnya algoritma juga adalah kunci dari Pada hakekatnya algoritma juga adalah kunci dari kehidupan kita.kehidupan kita.
Cara membuat masakan (resep masakan) adalah Cara membuat masakan (resep masakan) adalah juga sebuah contoh nyata dari algoritma.juga sebuah contoh nyata dari algoritma.
~ Alpro – Tubagus Purworusmiardi, S.Kom
AlgoritmaAlgoritma
adalah logika, metode dan adalah logika, metode dan tahapan (urutan) sistematis tahapan (urutan) sistematis yang digunakan untuk yang digunakan untuk memecahkan suatu memecahkan suatu permasalahan.permasalahan.
~ Alpro – Tubagus Purworusmiardi, S.Kom
AlgoritmaAlgoritma
Ketika manusia berusaha Ketika manusia berusaha memecahkan masalah, metode atau memecahkan masalah, metode atau teknik yang digunakan untuk teknik yang digunakan untuk memecahkan masalah itu ada memecahkan masalah itu ada kemungkinan bisa banyak (tidak kemungkinan bisa banyak (tidak hanya satu). hanya satu).
Dan kita memilih mana yang terbaik Dan kita memilih mana yang terbaik diantara teknik-teknik itu. diantara teknik-teknik itu.
Hal ini sama juga dengan algoritma, Hal ini sama juga dengan algoritma, yang memungkinkan suatu yang memungkinkan suatu permasalahan dipecahkan dengan permasalahan dipecahkan dengan metode dan logika yang berlainan. metode dan logika yang berlainan.
~ Alpro – Tubagus Purworusmiardi, S.Kom
ProgramProgram
Perwujudan atau implementasi Perwujudan atau implementasi algoritma yang ditulis dalam algoritma yang ditulis dalam bahasa pemrograman tertentu bahasa pemrograman tertentu
~ Alpro – Tubagus Purworusmiardi, S.Kom
Belajar Memprogram & Belajar Memprogram & Belajar Bahasa Belajar Bahasa PemrogramanPemrograman Belajar memprogramBelajar memprogram::
pemahaman persoalan, analisis, pemahaman persoalan, analisis, dan sintesisdan sintesis
Belajar Bahasa Pemrograman Belajar Bahasa Pemrograman :: Belajar memakai suatu bahasa Belajar memakai suatu bahasa aturan sintaks (tata bahasa)aturan sintaks (tata bahasa)
Pemecahan Masalah
-Strategi-Metodologi-Sistematika
Notasi yang telah disepakati
~ Alpro – Tubagus Purworusmiardi, S.Kom
DASAR-DASAR DASAR-DASAR ALGORITMA dan ALGORITMA dan
FLOW CHARTFLOW CHART
~ Alpro – Tubagus Purworusmiardi, S.Kom
Proses, Instruksi, dan AksiProses, Instruksi, dan Aksi
Algoritma merupakan deskripsi Algoritma merupakan deskripsi urutan pelaksanaan suatu urutan pelaksanaan suatu prosesproses
Algoritma tersusun oleh sederetan Algoritma tersusun oleh sederetan langkah langkah instruksi instruksi yang logisyang logis
Tiap langkah instruksi akan Tiap langkah instruksi akan mengerjakan suatu mengerjakan suatu tindakan (Aksi)tindakan (Aksi)
Bila Aksi dilaksanakan, maka Bila Aksi dilaksanakan, maka sejumlah sejumlah operasioperasi yang bersesuaian yang bersesuaian akan dikerjakan oleh CPUakan dikerjakan oleh CPU
~ Alpro – Tubagus Purworusmiardi, S.Kom
Struktur Dasar AlgoritmaStruktur Dasar Algoritma
Runtunan (sequence)Runtunan (sequence) aksi-aksi dalam algoritma yang aksi-aksi dalam algoritma yang
dikerjakan secara berurutandikerjakan secara berurutan contoh :contoh :
A1. Aksi 1A1. Aksi 1
A2. Aksi 2A2. Aksi 2
A3. Aksi 3A3. Aksi 3
~ Alpro – Tubagus Purworusmiardi, S.Kom
Struktur Dasar Algoritma(2)Struktur Dasar Algoritma(2)
Pemilihan (selection)Pemilihan (selection) aksi dikerjakan jika kondisi tertentu terpenuhiaksi dikerjakan jika kondisi tertentu terpenuhi contoh :contoh :
IF kondisi1 THENAksi1
ELSEIF kondisi2 THEN
Aksi2ELSE
Aksi3(Aksi 3 dilakukan jika kondisi 1 dan 2 tidak terpenuhi)
IF kondisi THEN aksi
IF kondisi THENaksi1
ELSEaksi2
Struktur Dasar Algoritma (3)Struktur Dasar Algoritma (3)
Pengulangan (repeatition)Pengulangan (repeatition) aksi-aksi yang dikerjakan berulang kaliaksi-aksi yang dikerjakan berulang kali contoh :contoh :
FORFOR pencacah pengulangan dari a sampai b pencacah pengulangan dari a sampai b DODOAksiAksi
(aksi dilakukan sebanyak hitungan pencacah (aksi dilakukan sebanyak hitungan pencacah pengulangan, yaitu dari a sampai bpengulangan, yaitu dari a sampai b yakni sebanyak b- yakni sebanyak b-a+1 kali)a+1 kali)
REPEATREPEAT AksiAksi
UNTILUNTIL kondisikondisi(pengulangan aksi dilakukan sehingga (pengulangan aksi dilakukan sehingga kondisi/persyaratan berhenti terpenuhi)kondisi/persyaratan berhenti terpenuhi)
WHILEWHILE kondisi kondisi DODOAksiAksi
(selama kondisi/persyaratan pengulangan masih benar, (selama kondisi/persyaratan pengulangan masih benar, maka aksi dikerjakan)maka aksi dikerjakan)
~ Alpro – Tubagus Purworusmiardi, S.Kom
Flow ChartFlow Chart
Flow chart suatu bagan/diagram Flow chart suatu bagan/diagram yang menggambarkan aliran proses yang menggambarkan aliran proses yang dikerjakan program dari awal yang dikerjakan program dari awal sampai akhir.sampai akhir.
Flow chart adalah algoritma yang Flow chart adalah algoritma yang digambarkan dengan diagramdigambarkan dengan diagram
Fungsi dari flow chart adalah Fungsi dari flow chart adalah mendeskripsikan urutan mendeskripsikan urutan pelaksanaan suatu proses (sama pelaksanaan suatu proses (sama dengan fungsi algoritma)dengan fungsi algoritma)
~ Alpro – Tubagus Purworusmiardi, S.Kom
Penulisan AlgoritmaPenulisan Algoritma
FLOW CHARTFLOW CHART Flow chart Flow chart adalah suatu bagan/diagram adalah suatu bagan/diagram
yang menggambarkan aliran proses yang yang menggambarkan aliran proses yang dikerjakan suatu program dari awal sampai dikerjakan suatu program dari awal sampai akhir akhir
Flow chart Flow chart adalah algoritma yang adalah algoritma yang digambarkan dengan diagramdigambarkan dengan diagram
Fungsi dari Fungsi dari flow chart flow chart adalah adalah mendeskripsikan urutan pelaksanaan suatu mendeskripsikan urutan pelaksanaan suatu proses (sama dengan fungsi dari algoritma)proses (sama dengan fungsi dari algoritma)
TEKS ALGORITMATEKS ALGORITMA berisi langkah-langkah penyelesaian berisi langkah-langkah penyelesaian
masalah yang ditulis dengan bahasa yang masalah yang ditulis dengan bahasa yang mudah dipahamimudah dipahami
~ Alpro – Tubagus Purworusmiardi, S.Kom
Flow ChartFlow Chart
InputInput ProcessingProcessing Output (display)Output (display) Decision (untuk mengevaluasi Decision (untuk mengevaluasi
suatu kondisi)suatu kondisi) Procedure/subroutineProcedure/subroutine
~ Alpro – Tubagus Purworusmiardi, S.Kom
Flow Chart(2)Flow Chart(2)
Flow linesFlow lines Terminator (mengawali dan Terminator (mengawali dan
mengakhiri flow chart)mengakhiri flow chart) On page connectorOn page connector Off page connectorOff page connector Annotation (memberi komentar Annotation (memberi komentar
atau keterangan dalam flow atau keterangan dalam flow chart)chart)
~ Alpro – Tubagus Purworusmiardi, S.Kom
ATURAN PENULISAN ATURAN PENULISAN TEKS ALGORITMATEKS ALGORITMA
~ Alpro – Tubagus Purworusmiardi, S.Kom
Teks AlgoritmaTeks Algoritma
Teks algoritma berisi langkah-Teks algoritma berisi langkah-langkah penyelesaian masalahlangkah penyelesaian masalah
Tidak ada notasi baku tapi sebaiknya Tidak ada notasi baku tapi sebaiknya berkorespondensi dengan bahasa berkorespondensi dengan bahasa pemrograman umum, supaya mudah pemrograman umum, supaya mudah ditranslasikan ke dalam bahasa ditranslasikan ke dalam bahasa pemrogramanpemrograman
Notasi yang digunakan untuk Notasi yang digunakan untuk menulis algoritma disebut menulis algoritma disebut notasi notasi algoritmikalgoritmik
~ Alpro – Tubagus Purworusmiardi, S.Kom
Teks AlgoritmaTeks Algoritma
Struktur teks algoritmaStruktur teks algoritma Kepala algoritmaKepala algoritma
terdiri atas nama algoritma dan penjelasan terdiri atas nama algoritma dan penjelasan (spesifikasi) tentang algoritma tersebut(spesifikasi) tentang algoritma tersebut
DeklarasiDeklarasimendefinisikan semua nama (konstanta, mendefinisikan semua nama (konstanta, peubah, tipe, prosedur atau fungsi) yang dipakai peubah, tipe, prosedur atau fungsi) yang dipakai dalam algoritmadalam algoritma
DeskripsiDeskripsiBerisi uraian langkah-langkah penyelesaianBerisi uraian langkah-langkah penyelesaian
Komentar ditulis diantara tanda kurung “{“ dan “}”Komentar ditulis diantara tanda kurung “{“ dan “}”
~ Alpro – Tubagus Purworusmiardi, S.Kom
Contoh Teks AlgoritmaContoh Teks Algoritma
Judul algoritmaJudul algoritma
spesifikasi algoritmaspesifikasi algoritma
Kata2 yg biasanya menjadi keyword bhs pemrogram diberi garis bawahKata2 yg biasanya menjadi keyword bhs pemrogram diberi garis bawah
~ Alpro – Tubagus Purworusmiardi, S.Kom
PascalPascal
~ Alpro – Tubagus Purworusmiardi, S.Kom
TIPE, NAMA, DAN TIPE, NAMA, DAN NILAINILAI
~ Alpro – Tubagus Purworusmiardi, S.Kom
Tipe DataTipe Data
Tipe data terdiri dari tipe:Tipe data terdiri dari tipe: Tipe dasarTipe dasar
Tipe yang dapat langsung dipakai Tipe yang dapat langsung dipakai (disediakan oleh bahasa pemrograman)(disediakan oleh bahasa pemrograman)
Contoh: boolean, integer, real, char, Contoh: boolean, integer, real, char, stringstring (?)(?)
Tipe bentukanTipe bentukan Tipe yang didefinisikan sendiri oleh Tipe yang didefinisikan sendiri oleh
pemrogrampemrogram Tipe yang dibentuk dari tipe dasar atau Tipe yang dibentuk dari tipe dasar atau
dari tipe bentukan lain yang sudah dari tipe bentukan lain yang sudah didefinisikandidefinisikan
Contoh: tipe dasar yang diberi nama tipe Contoh: tipe dasar yang diberi nama tipe baru, recordbaru, record
~ Alpro – Tubagus Purworusmiardi, S.Kom
Tipe Data(2)Tipe Data(2)
Empat hal yang harus Empat hal yang harus diperhatikan dalam diperhatikan dalam pendefinisian tipe:pendefinisian tipe:
NamaNama Domain hargaDomain harga KonstantaKonstanta OperatorOperator
~ Alpro – Tubagus Purworusmiardi, S.Kom
Tipe Data(3)Tipe Data(3)
Tipe BentukanTipe Bentukan
Tipe dasar yang diberi nama tipe baruTipe dasar yang diberi nama tipe baru Nama baru untuk tipe dasar menggunakan kata Nama baru untuk tipe dasar menggunakan kata
kunci kunci typetype Domain nilai, cara menulis konstanta, dan Domain nilai, cara menulis konstanta, dan
operasi-operasi yang dapat dijalankan pada tipe operasi-operasi yang dapat dijalankan pada tipe baru tersebut tidak berubah, sama seperti tipe baru tersebut tidak berubah, sama seperti tipe dasarnya.dasarnya.
Contoh: Contoh: typetype BilanganBulat: BilanganBulat: integerinteger Rekaman (record)Rekaman (record)
Rekaman disusun atas satu atau lebih fieldRekaman disusun atas satu atau lebih field Tipe field menyimpan data dan tipe dasar tertentu Tipe field menyimpan data dan tipe dasar tertentu
atau dari tipe bentukan lain yang sudah atau dari tipe bentukan lain yang sudah didefinisikan sebelumnyadidefinisikan sebelumnya
Nama rekaman ditentukan oleh pemrogramNama rekaman ditentukan oleh pemrogram Rekaman disebut juga tipe terstrukturRekaman disebut juga tipe terstruktur
~ Alpro – Tubagus Purworusmiardi, S.Kom
Contoh RecordContoh Record
DEKLARASIDEKLARASItypetype MataKuliah : MataKuliah : recordrecord <KodeMK : <KodeMK : stringstring, {kode , {kode
matakuliah}matakuliah} NamaMK : NamaMK : stringstring, {nama , {nama
matakuliah}matakuliah} Nilai : Nilai : charchar {indeks nilai} {indeks nilai}>>
typetype Mahasiswa : Mahasiswa : recordrecord <NIM : <NIM : integerinteger, {nomor , {nomor mhs}mhs}
NamaMhs : NamaMhs : stringstring, {nama mhs}, {nama mhs} MKMK : : arrayarray[1..4] [1..4] ofof
MataKuliahMataKuliah>>
LarikMhs : LarikMhs : arrayarray[1..100] [1..100] ofof Mahasiswa Mahasiswa
~ Alpro – Tubagus Purworusmiardi, S.Kom
NamaNama
Untuk mengidentifikasikan dan membedakan obyekUntuk mengidentifikasikan dan membedakan obyek Unik dan tidak boleh samaUnik dan tidak boleh sama Dalam algoritma nama diberikan pada:Dalam algoritma nama diberikan pada:
VariabelVariabel Tempat penyimpanan data/informasi di memori yang Tempat penyimpanan data/informasi di memori yang
nilainya dapat diubah selama pelaksanaan programnilainya dapat diubah selama pelaksanaan program KonstantaKonstanta
Tempat penyimpanan di memori yang nilainya tidak Tempat penyimpanan di memori yang nilainya tidak dapat diubah selama pelaksanaan programdapat diubah selama pelaksanaan program
Tipe bentukanTipe bentukan Tipe data baru yang didefinisikan oleh program dari tipe Tipe data baru yang didefinisikan oleh program dari tipe
data yang sudah adadata yang sudah ada ProsedurProsedur
Modul program (sederetan instruksi) yang ditulis Modul program (sederetan instruksi) yang ditulis terpisah dari badan program utamadan dapat dipanggil terpisah dari badan program utamadan dapat dipanggil berulang dari program utamaberulang dari program utama
FungsiFungsi Prosedur yang mengembalikan suatu nilai dengan tipe Prosedur yang mengembalikan suatu nilai dengan tipe
data sederhanadata sederhana
~ Alpro – Tubagus Purworusmiardi, S.Kom
Aturan Penulisan NamaAturan Penulisan Nama
Harus dimulai dengan huruf alfabet, tidak Harus dimulai dengan huruf alfabet, tidak boleh dimulai dengan angka, spasi, atau boleh dimulai dengan angka, spasi, atau karakter khusus lainnya.karakter khusus lainnya.
Tidak case sensitif (beda dengan bahasa Tidak case sensitif (beda dengan bahasa pemrograman)pemrograman)
Karakter penyusun nama hanya boleh: Karakter penyusun nama hanya boleh: huruf alfabet, angka dan “_” (underscore)huruf alfabet, angka dan “_” (underscore)
Tidak boleh dipisahkan dengan spasiTidak boleh dipisahkan dengan spasi Panjang nama tidak terbatasPanjang nama tidak terbatas Semua nama yang dipakai harus Semua nama yang dipakai harus
dideklarasikan dulu pada bagian deklarasidideklarasikan dulu pada bagian deklarasi
~ Alpro – Tubagus Purworusmiardi, S.Kom
Contoh PenamaanContoh Penamaan
SALAHSALAH 6titik6titik {dimulai dg angka}{dimulai dg angka} nilai ujiannilai ujian {dipisahkan spasi}{dipisahkan spasi} PT-1PT-1 {mengandung operator kurang}{mengandung operator kurang} hari!hari! {mengandung karakter khusus}{mengandung karakter khusus}
BENARBENAR titik6 titik6 atauatau titik_6 titik_6 nilai_ujian nilai_ujian atauatau nilaiUjian nilaiUjian PT_1 PT_1 atauatau PT1 PT1 harihari
~ Alpro – Tubagus Purworusmiardi, S.Kom
NilaiNilai
Merupakan besaran dari tipe data yang Merupakan besaran dari tipe data yang sudah didefinisikan (tipe dasar maupun sudah didefinisikan (tipe dasar maupun tipe bentukan)tipe bentukan)
Nilai dapat berupa:Nilai dapat berupa: Isi variabel atau konstantaIsi variabel atau konstanta Nilai dari hasil perhitunganNilai dari hasil perhitungan Nilai yang dihasilkan oleh fungsiNilai yang dihasilkan oleh fungsi
Nilai yang disimpan di variabel Nilai yang disimpan di variabel dimanipulasi dengan cara:dimanipulasi dengan cara: Mengisikan ke variabel lain yang bertipe samaMengisikan ke variabel lain yang bertipe sama Dipakai untuk perhitunganDipakai untuk perhitungan Dituliskan ke piranti keluaranDituliskan ke piranti keluaran
~ Alpro – Tubagus Purworusmiardi, S.Kom
Nilai(2)Nilai(2)
Pengisian nilai ke variabel:Pengisian nilai ke variabel: Pengisian nilai secara Pengisian nilai secara
langsung(assignment)langsung(assignment) Memasukkan sebuah nilai ke Memasukkan sebuah nilai ke
dalam nama variabel langsung dalam nama variabel langsung di dalma teks algoritmadi dalma teks algoritma
Syaratnya nilai yang didisikan Syaratnya nilai yang didisikan harus bertipe sama dengan harus bertipe sama dengan tipe peubahtipe peubah
Notasi: Notasi: Contoh: Contoh:
variabel konstanta
NoMhs 1234
variabel1 variabel2
Nil_prev Nil_cur
variabel ekspresi
Luas 0.5 * p * l ~ Alpro – Tubagus Purworusmiardi, S.Kom
Nilai(3)Nilai(3)
Pembacaan nilai dari piranti Pembacaan nilai dari piranti masukanmasukan Nilai untuk nama variabel dapt diisi Nilai untuk nama variabel dapt diisi
dari piranti masukan, misalnya dari dari piranti masukan, misalnya dari keyboard.keyboard.
Dinamakan dengan operasi Dinamakan dengan operasi pembacaan datapembacaan data
Notasi dalam teks algoritma: Notasi dalam teks algoritma: readread Contoh: Contoh:
read read (nama1, nama2,…namaN)(nama1, nama2,…namaN)
~ Alpro – Tubagus Purworusmiardi, S.Kom
EkspresiEkspresi
Ekspresi terdiri atas: operand dan Ekspresi terdiri atas: operand dan operatoroperator
Operand adalah nilai yang dioperasikan Operand adalah nilai yang dioperasikan dengan operator tertentudengan operator tertentu
Operand dapat berupa konstanta, Operand dapat berupa konstanta, nama variabel, nama konstanta, atau nama variabel, nama konstanta, atau hasil suatu fungsihasil suatu fungsi
Hasil evaluasi dari sebuah ekspresi Hasil evaluasi dari sebuah ekspresi adalah nilai di dalam domain yang adalah nilai di dalam domain yang sesuai dengan tipe operand yang sesuai dengan tipe operand yang dipakai, ada tiga macam: ekspresi dipakai, ada tiga macam: ekspresi aritmetik, ekspresi relasional, ekspresi aritmetik, ekspresi relasional, ekspresi string.string.
~ Alpro – Tubagus Purworusmiardi, S.Kom
Ekspresi(2)Ekspresi(2)
Ekspresi AritmetikaEkspresi Aritmetika Ekspresi yang baik operand dan hasilnya Ekspresi yang baik operand dan hasilnya
berupa numerikberupa numerik (ingat: tingkat prioritas operator)(ingat: tingkat prioritas operator)
i. / , i. / , divdiv, , modmodii. *ii. *iii.+, -iii.+, -
Ekspresi relasionalEkspresi relasional Ekspresi dengan operator <,Ekspresi dengan operator <,≤,>,≥,=,≠, ≤,>,≥,=,≠, notnot, , andand, ,
oror, dan , dan xorxor Hasil evaluasi adalah nilai bertipe booleanHasil evaluasi adalah nilai bertipe boolean Ekspresi stringEkspresi string
~ Alpro – Tubagus Purworusmiardi, S.Kom
Ekspresi (3)Ekspresi (3)
Ekspresi stringEkspresi string Ekspresi dengan operator Ekspresi dengan operator
penyambungan/concatenation penyambungan/concatenation “+”.“+”.
~ Alpro – Tubagus Purworusmiardi, S.Kom
Menuliskan Nilai ke Piranti Menuliskan Nilai ke Piranti Keluaran (monitor/printer)Keluaran (monitor/printer)
Dilakukan dengan notasi Dilakukan dengan notasi writewrite Contoh: Contoh:
write write (nama1, nama2, …, namaN)(nama1, nama2, …, namaN)
~ Alpro – Tubagus Purworusmiardi, S.Kom
Contoh AlgoritmaContoh Algoritma
Algoritma Hello_WorldAlgoritma Hello_World{mencetak string Hello World diikuti nama orang. {mencetak string Hello World diikuti nama orang.
Nama orang diinputkan dari piranti masukan}Nama orang diinputkan dari piranti masukan}
DEKLARASIDEKLARASIconstconst ucapan = ‘Hello World’ ucapan = ‘Hello World’
namaUser : namaUser : stringstring
DESKRIPSIDESKRIPSIreadread(namaUser)(namaUser)writewrite(ucapan + ‘ ‘ + namaUser)(ucapan + ‘ ‘ + namaUser)
~ Alpro – Tubagus Purworusmiardi, S.Kom
SumberSumber
Algoritma dan Pemrograman Algoritma dan Pemrograman dalam Bahasa Pascal dan C dalam Bahasa Pascal dan C (Buku 1), Rinaldi Munir, (Buku 1), Rinaldi Munir, Informatika BandungInformatika Bandung
ilmukomputer.comilmukomputer.com
~ Alpro – Tubagus Purworusmiardi, S.Kom
Dasar-
dasar
Dasar-
dasar
Algoritma
Algoritma
Kelas C – S
istem In
formasi
Kelas C – S
istem In
formasi
Tubagus Purw
orusm
iardi, S
.Kom
Tubagus Purw
orusm
iardi, S
.Kom
Dasar AlgoritmaDasar Algoritma
Dalam penulisan Algoritma ada Dalam penulisan Algoritma ada beberapa ketentuan yaitu:beberapa ketentuan yaitu: Program atau metode penyelesaian Program atau metode penyelesaian
masalah harus sesuai tahapan / masalah harus sesuai tahapan / urutanurutan
Tahapan tersebut tidak baku, yang Tahapan tersebut tidak baku, yang penting efektifpenting efektif
Program bersifat terstrukturProgram bersifat terstruktur Tidak bermakna gandaTidak bermakna ganda
Struktur Badan AlgoritmaStruktur Badan Algoritma
Kepala ProgramKepala Program Berisi judul program dan keterangan Berisi judul program dan keterangan
tentang programtentang program Bahasa Algoritma : Bahasa Algoritma : Algoritma Algoritma
judul_programjudul_program Ex. Algoritma menghitung_luas_segitiga Ex. Algoritma menghitung_luas_segitiga Ex. Algoritma MenghitungLuasSegitigaEx. Algoritma MenghitungLuasSegitiga
Bisa ditambahkan komentar tentang Bisa ditambahkan komentar tentang program dengan menggunakan program dengan menggunakan operator “{ }”operator “{ }”
Struktur Badan Algoritma (2)Struktur Badan Algoritma (2)
DeklarasiDeklarasi Berisi variabel yang digunakan Berisi variabel yang digunakan
dalam programdalam program Bahasa Algoritma : nama_variabel Bahasa Algoritma : nama_variabel
: Tipe Data: Tipe Data Ex. AlasSegitiga : integerEx. AlasSegitiga : integer Ex. TinggiSegitiga : integerEx. TinggiSegitiga : integer Ex. LuasSegitiga : integer Ex. LuasSegitiga : integer
Struktur Badan Algoritma (3)Struktur Badan Algoritma (3)
DeskripsiDeskripsi Berisi uraian langkah Berisi uraian langkah
penyelesaianpenyelesaian Example:Example:
read(PanjangSegitiga)read(PanjangSegitiga)
read(LebarSegitiga)read(LebarSegitiga)
LuasSegitiga LuasSegitiga ←← ½ * PanjangSegitiga * ½ * PanjangSegitiga * LebarSegitigaLebarSegitiga
write(LuasSegitiga)write(LuasSegitiga)
Struktur Badan Algoritma (4)Struktur Badan Algoritma (4)
Algoritma Algoritma menghitung_luas_segitigamenghitung_luas_segitiga
{menghitung luas segitiga dengan inputan alas dan {menghitung luas segitiga dengan inputan alas dan tinggi segitiga berasal dari keyboard}tinggi segitiga berasal dari keyboard}
DEKLARASIDEKLARASIAlasSegitiga : AlasSegitiga : IntegerIntegerTinggiSegitiga : TinggiSegitiga : IntegerIntegerLuasSegitigaLuasSegitiga : : IntegerInteger
DESKRIPSIDESKRIPSIreadread(AlasSegitiga)(AlasSegitiga)readread(TinggiSegitiga)(TinggiSegitiga)
LuasSegitiga LuasSegitiga ←← ½ * AlasSegitiga * TinggiSegitiga ½ * AlasSegitiga * TinggiSegitiga
writewrite(LuasSegitiga)(LuasSegitiga)
KasusKasus
Deklarasi data untuk mobil Deklarasi data untuk mobil MerkMerk : : StringString {Contoh: Honda} {Contoh: Honda} NoKendaraanNoKendaraan : : StringString {Contoh: KH1A} {Contoh: KH1A} TahunProduksiTahunProduksi : : IntegerInteger {Contoh: 2007} {Contoh: 2007}
Deklarasi data untuk Mata kuliahDeklarasi data untuk Mata kuliah Deklarasi data untuk WaktuDeklarasi data untuk Waktu
Deklarasi data untuk Alamat Deklarasi data untuk Alamat RumahRumah
Deklarasi data untuk Data Deklarasi data untuk Data Pribadi <min 6 variabel>Pribadi <min 6 variabel>
TIPE, NAMA, DAN TIPE, NAMA, DAN NILAINILAI
Tipe DataTipe Data
Tipe data terdiri dari tipe:Tipe data terdiri dari tipe: Tipe dasarTipe dasar
Tipe yang dapat langsung dipakai Tipe yang dapat langsung dipakai (disediakan oleh bahasa pemrograman)(disediakan oleh bahasa pemrograman)
Contoh: boolean, integer, real, char, Contoh: boolean, integer, real, char, stringstring (?)(?)
Tipe bentukanTipe bentukan Tipe yang didefinisikan sendiri oleh Tipe yang didefinisikan sendiri oleh
pemrogrampemrogram Tipe yang dibentuk dari tipe dasar atau Tipe yang dibentuk dari tipe dasar atau
dari tipe bentukan lain yang sudah dari tipe bentukan lain yang sudah didefinisikandidefinisikan
Contoh: tipe dasar yang diberi nama tipe Contoh: tipe dasar yang diberi nama tipe baru, recordbaru, record
Tipe Data(2)Tipe Data(2)
Empat hal yang harus Empat hal yang harus diperhatikan dalam diperhatikan dalam pendefinisian tipe:pendefinisian tipe:
NamaNama Domain hargaDomain harga KonstantaKonstanta OperatorOperator
Tipe Data(3)Tipe Data(3)
Tipe BentukanTipe Bentukan
Tipe dasar yang diberi nama tipe baruTipe dasar yang diberi nama tipe baru Nama baru untuk tipe dasar menggunakan kata Nama baru untuk tipe dasar menggunakan kata
kunci kunci typetype Domain nilai, cara menulis konstanta, dan Domain nilai, cara menulis konstanta, dan
operasi-operasi yang dapat dijalankan pada tipe operasi-operasi yang dapat dijalankan pada tipe baru tersebut tidak berubah, sama seperti tipe baru tersebut tidak berubah, sama seperti tipe dasarnya.dasarnya.
Contoh: Contoh: typetype BilanganBulat: BilanganBulat: integerinteger Rekaman (record)Rekaman (record)
Rekaman disusun atas satu atau lebih fieldRekaman disusun atas satu atau lebih field Tipe field menyimpan data dan tipe dasar tertentu Tipe field menyimpan data dan tipe dasar tertentu
atau dari tipe bentukan lain yang sudah atau dari tipe bentukan lain yang sudah didefinisikan sebelumnyadidefinisikan sebelumnya
Nama rekaman ditentukan oleh pemrogramNama rekaman ditentukan oleh pemrogram Rekaman disebut juga tipe terstrukturRekaman disebut juga tipe terstruktur
Contoh RecordContoh Record
DEKLARASIDEKLARASItypetype MataKuliah : MataKuliah : recordrecord <KodeMK : <KodeMK : stringstring, {kode , {kode
matakuliah}matakuliah} NamaMK : NamaMK : stringstring, {nama , {nama
matakuliah}matakuliah} Nilai : Nilai : charchar {indeks nilai} {indeks nilai}>>
typetype Mahasiswa : Mahasiswa : recordrecord <NIM : <NIM : integerinteger, {nomor , {nomor mhs}mhs}
NamaMhs : NamaMhs : stringstring, {nama mhs}, {nama mhs} MKMK : : arrayarray[1..4] [1..4] ofof
MataKuliahMataKuliah>>
LarikMhs : LarikMhs : arrayarray[1..100] [1..100] ofof Mahasiswa Mahasiswa
NamaNama
Untuk mengidentifikasikan dan membedakan obyekUntuk mengidentifikasikan dan membedakan obyek Unik dan tidak boleh samaUnik dan tidak boleh sama Dalam algoritma nama diberikan pada:Dalam algoritma nama diberikan pada:
VariabelVariabel Tempat penyimpanan data/informasi di memori yang nilainya Tempat penyimpanan data/informasi di memori yang nilainya
dapat diubah selama pelaksanaan programdapat diubah selama pelaksanaan program KonstantaKonstanta
Tempat penyimpanan di memori yang nilainya tidak dapat Tempat penyimpanan di memori yang nilainya tidak dapat diubah selama pelaksanaan programdiubah selama pelaksanaan program
Tipe bentukanTipe bentukan Tipe data baru yang didefinisikan oleh program dari tipe data Tipe data baru yang didefinisikan oleh program dari tipe data
yang sudah adayang sudah ada ProsedurProsedur
Modul program (sederetan instruksi) yang ditulis terpisah dari Modul program (sederetan instruksi) yang ditulis terpisah dari badan program utamadan dapat dipanggil berulang dari badan program utamadan dapat dipanggil berulang dari program utamaprogram utama
FungsiFungsi Prosedur yang mengembalikan suatu nilai dengan tipe data Prosedur yang mengembalikan suatu nilai dengan tipe data
sederhanasederhana
Aturan Penulisan NamaAturan Penulisan Nama
Harus dimulai dengan huruf alfabet, tidak Harus dimulai dengan huruf alfabet, tidak boleh dimulai dengan angka, spasi, atau boleh dimulai dengan angka, spasi, atau karakter khusus lainnya.karakter khusus lainnya.
Tidak case sensitif (beda dengan bahasa Tidak case sensitif (beda dengan bahasa pemrograman)pemrograman)
Karakter penyusun nama hanya boleh: Karakter penyusun nama hanya boleh: huruf alfabet, angka dan “_” (underscore)huruf alfabet, angka dan “_” (underscore)
Tidak boleh dipisahkan dengan spasiTidak boleh dipisahkan dengan spasi Panjang nama tidak terbatasPanjang nama tidak terbatas Semua nama yang dipakai harus Semua nama yang dipakai harus
dideklarasikan dulu pada bagian deklarasidideklarasikan dulu pada bagian deklarasi
Contoh PenamaanContoh Penamaan
SALAHSALAH 6titik6titik {dimulai dg angka}{dimulai dg angka} nilai ujiannilai ujian {dipisahkan spasi}{dipisahkan spasi} PT-1PT-1 {mengandung operator kurang}{mengandung operator kurang} hari!hari! {mengandung karakter khusus}{mengandung karakter khusus}
BENARBENAR titik6 titik6 atauatau titik_6 titik_6 nilai_ujian nilai_ujian atauatau nilaiUjian nilaiUjian PT_1 PT_1 atauatau PT1 PT1 harihari
NilaiNilai
Merupakan besaran dari tipe data yang Merupakan besaran dari tipe data yang sudah didefinisikan (tipe dasar maupun sudah didefinisikan (tipe dasar maupun tipe bentukan)tipe bentukan)
Nilai dapat berupa:Nilai dapat berupa: Isi variabel atau konstantaIsi variabel atau konstanta Nilai dari hasil perhitunganNilai dari hasil perhitungan Nilai yang dihasilkan oleh fungsiNilai yang dihasilkan oleh fungsi
Nilai yang disimpan di variabel Nilai yang disimpan di variabel dimanipulasi dengan cara:dimanipulasi dengan cara: Mengisikan ke variabel lain yang bertipe samaMengisikan ke variabel lain yang bertipe sama Dipakai untuk perhitunganDipakai untuk perhitungan Dituliskan ke piranti keluaranDituliskan ke piranti keluaran
Nilai(2)Nilai(2)Pengisian nilai ke variabel:Pengisian nilai ke variabel:Pengisian nilai secara langsung(assignment)Pengisian nilai secara langsung(assignment)
Memasukkan sebuah nilai ke dalam nama Memasukkan sebuah nilai ke dalam nama variabel langsung di dalma teks algoritmavariabel langsung di dalma teks algoritma
Syaratnya nilai yang didisikan harus bertipe Syaratnya nilai yang didisikan harus bertipe sama dengan tipe peubahsama dengan tipe peubah
Notasi: Notasi: Contoh: Contoh:
variabel konstanta NoMhs 1234
variabel1 variabel2 Nil_prev Nil_cur
variabel ekspresi Luas 0.5 * p * l
Nilai(3)Nilai(3)
Pembacaan nilai dari piranti Pembacaan nilai dari piranti masukanmasukan Nilai untuk nama variabel dapt diisi Nilai untuk nama variabel dapt diisi
dari piranti masukan, misalnya dari dari piranti masukan, misalnya dari keyboard.keyboard.
Dinamakan dengan operasi Dinamakan dengan operasi pembacaan datapembacaan data
Notasi dalam teks algoritma: Notasi dalam teks algoritma: readread Contoh: Contoh:
read read (nama1, nama2,…namaN)(nama1, nama2,…namaN)
EkspresiEkspresi
Ekspresi terdiri atas: operand dan Ekspresi terdiri atas: operand dan operatoroperator
Operand adalah nilai yang dioperasikan Operand adalah nilai yang dioperasikan dengan operator tertentudengan operator tertentu
Operand dapat berupa konstanta, Operand dapat berupa konstanta, nama variabel, nama konstanta, atau nama variabel, nama konstanta, atau hasil suatu fungsihasil suatu fungsi
Hasil evaluasi dari sebuah ekspresi Hasil evaluasi dari sebuah ekspresi adalah nilai di dalam domain yang adalah nilai di dalam domain yang sesuai dengan tipe operand yang sesuai dengan tipe operand yang dipakai, ada tiga macam: ekspresi dipakai, ada tiga macam: ekspresi aritmetik, ekspresi relasional, ekspresi aritmetik, ekspresi relasional, ekspresi string.string.
Ekspresi(2)Ekspresi(2)
Ekspresi AritmetikaEkspresi Aritmetika Ekspresi yang baik operand dan hasilnya Ekspresi yang baik operand dan hasilnya
berupa numerikberupa numerik (ingat: tingkat prioritas operator)(ingat: tingkat prioritas operator)
i. / , i. / , divdiv, , modmodii. *ii. *iii.+, -iii.+, -
Ekspresi relasionalEkspresi relasional Ekspresi dengan operator <,Ekspresi dengan operator <,≤,>,≥,=,≠, ≤,>,≥,=,≠, notnot, , andand, ,
oror, dan , dan xorxor Hasil evaluasi adalah nilai bertipe booleanHasil evaluasi adalah nilai bertipe boolean Ekspresi stringEkspresi string
Ekspresi (3)Ekspresi (3)
Ekspresi stringEkspresi string Ekspresi dengan operator Ekspresi dengan operator
penyambungan/concatenation penyambungan/concatenation “+”.“+”.
Menuliskan Nilai ke Piranti Menuliskan Nilai ke Piranti Keluaran (monitor/printer)Keluaran (monitor/printer)
Dilakukan dengan notasi Dilakukan dengan notasi writewrite Contoh: Contoh:
write write (nama1, nama2, …, namaN)(nama1, nama2, …, namaN)
Contoh AlgoritmaContoh Algoritma
Algoritma Hello_WorldAlgoritma Hello_World{mencetak string Hello World diikuti nama orang. {mencetak string Hello World diikuti nama orang.
Nama orang diinputkan dari piranti masukan}Nama orang diinputkan dari piranti masukan}
DEKLARASIDEKLARASIconstconst ucapan = ‘Hello World’ ucapan = ‘Hello World’
namaUser : namaUser : stringstring
DESKRIPSIDESKRIPSIreadread(namaUser)(namaUser)writewrite(ucapan + ‘ ‘ + namaUser)(ucapan + ‘ ‘ + namaUser)
Tugas di kumpul minggu Tugas di kumpul minggu depandepan
Buatlah algoritma lengkap Buatlah algoritma lengkap tentang perhitungan konversi tentang perhitungan konversi dari jam ke detikdari jam ke detik Inputan berupa jam. MisalnyaInputan berupa jam. Misalnya
Masukan jam : 1Masukan jam : 1 OuputOuput
Detik : 3600Detik : 3600
SumberSumber
Algoritma dan Pemrograman Algoritma dan Pemrograman dalam Bahasa Pascal dan C dalam Bahasa Pascal dan C (Buku 1), Rinaldi Munir, (Buku 1), Rinaldi Munir, Informatika BandungInformatika Bandung
ilmukomputer.comilmukomputer.com