450 likes | 733 Views
Algoritma & Pemrograman. Minggu 2 Kelas D – Sistem Informasi Jonh Fredrik Ulysses, S.T. ~ Alpro – Jonh – SI – STMIK Palangka Raya. Algoritma. Penemunya adalah seorang ahli matematika dari uzbekistan yang bernama Abu Abdullah Muhammad Ibn Musa al-Khwarizmi (770-840).
E N D
Algoritma & Pemrograman Minggu 2 Kelas D – Sistem Informasi Jonh Fredrik Ulysses, S.T ~ Alpro – Jonh – SI – STMIK Palangka Raya
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 – Jonh – SI – STMIK Palangka Raya
Algoritma • adalah logika, metode dan tahapan (urutan) sistematis yang digunakan untuk memecahkan suatu permasalahan. ~ Alpro – Jonh – SI – STMIK Palangka Raya
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 – Jonh – SI – STMIK Palangka Raya
Algoritma • Lima ciri penting algoritma • Selesai dalam jumlah langkah terbatas • Tidak memiliki arti ganda • Memiliki nol atau lebih input • Memiliki nol atau lebih output • Efektif ~ Alpro – Jonh – SI – STMIK Palangka Raya
Program • Perwujudan atau implementasi algoritma yang ditulis dalam bahasa pemrograman tertentu ~ Alpro – Jonh – SI – STMIK Palangka Raya
Pemecahan Masalah Notasi yang telah disepakati • Strategi • Metodologi • Sistematika Belajar Memprogram & Belajar Bahasa Pemrograman • Belajar memprogram: • pemahaman persoalan, analisis, dan sintesis • Belajar Bahasa Pemrograman : • Belajar memakai suatu bahasa • aturan sintaks (tata bahasa) ~ Alpro – Jonh – SI – STMIK Palangka Raya
Algoritma Translasi Program dalam Bahasa Tingkat Tinggi Kompilasi Program dalam Bahasa Mesin Interpretasi oleh CPU Operasi (Baca, tulis, hitung, perbandingan, dll) Tahapan Pemecahan Masalah ~ Alpro – Jonh – SI – STMIK Palangka Raya
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 ~ Alpro – Jonh – SI – STMIK Palangka Raya
DASAR-DASAR ALGORITMA dan FLOW CHART ~ Alpro – Jonh – SI – STMIK Palangka Raya
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 – Jonh – SI – STMIK Palangka Raya
Struktur Dasar Algoritma • Runtunan (sequence) • aksi-aksi dalam algoritma yang dikerjakan secara berurutan • contoh : A1. Aksi 1 A2. Aksi 2 A3. Aksi 3 ~ Alpro – Jonh – SI – STMIK Palangka Raya
Struktur Dasar Algoritma(2) • Pemilihan (selection) • aksi dikerjakan jika kondisi tertentu terpenuhi • contoh : IF kondisi1 THEN Aksi1 ELSE IF kondisi2 THEN Aksi2 ELSE Aksi3 (Aksi 3 dilakukan jika kondisi 1 dan 2 tidak terpenuhi) IF kondisi THEN aksi IF kondisi THEN aksi1 ELSE aksi2
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 UNTILkondisi (pengulangan aksi dilakukan sehingga kondisi/persyaratan berhenti terpenuhi) • WHILE kondisi DO Aksi (selama kondisi/persyaratan pengulangan masih benar, maka aksi dikerjakan) ~ Alpro – Jonh – SI – STMIK Palangka Raya
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 – Jonh – SI – STMIK Palangka Raya
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 ~ Alpro – Jonh – SI – STMIK Palangka Raya
Flow Chart • Input • Processing • Output (display) • Decision (untuk mengevaluasi suatu kondisi) • Procedure/subroutine ~ Alpro – Jonh – SI – STMIK Palangka Raya
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 – Jonh – SI – STMIK Palangka Raya
ATURAN PENULISAN TEKS ALGORITMA ~ Alpro – Jonh – SI – STMIK Palangka Raya
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 ~ Alpro – Jonh – SI – STMIK Palangka Raya
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 – Jonh – SI – STMIK Palangka Raya
Contoh Teks Algoritma Judul algoritma spesifikasi algoritma Kata2 yg biasanya menjadi keyword bhs pemrogram diberi garis bawah ~ Alpro – Jonh – SI – STMIK Palangka Raya
Pascal ~ Alpro – Jonh – SI – STMIK Palangka Raya
TIPE, NAMA, DAN NILAI ~ Alpro – Jonh – SI – STMIK Palangka Raya
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 ~ Alpro – Jonh – SI – STMIK Palangka Raya
Tipe Data(2) Empat hal yang harus diperhatikan dalam pendefinisian tipe: • Nama • Domain harga • Konstanta • Operator ~ Alpro – Jonh – SI – STMIK Palangka Raya
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 ~ Alpro – Jonh – SI – STMIK Palangka Raya
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 – Jonh – SI – STMIK Palangka Raya
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 – Jonh – SI – STMIK Palangka Raya
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 – Jonh – SI – STMIK Palangka Raya
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 – Jonh – SI – STMIK Palangka Raya
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 – Jonh – SI – STMIK Palangka Raya
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: ~ Alpro – Jonh – SI – STMIK Palangka Raya
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 – Jonh – SI – STMIK Palangka Raya
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 – Jonh – SI – STMIK Palangka Raya
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 – Jonh – SI – STMIK Palangka Raya
Ekspresi (3) • Ekspresi string • Ekspresi dengan operator penyambungan/concatenation “+”. ~ Alpro – Jonh – SI – STMIK Palangka Raya
Menuliskan Nilai ke Piranti Keluaran (monitor/printer) • Dilakukan dengan notasi write • Contoh: • write (nama1, nama2, …, namaN) ~ Alpro – Jonh – SI – STMIK Palangka Raya
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 – Jonh – SI – STMIK Palangka Raya
Sumber • Algoritma dan Pemrograman dalam Bahasa Pascal dan C (Buku 1), Rinaldi Munir, Informatika Bandung • Bahan Matakuliah Algoritma dan Pemrograman Universitas Atma Jaya Yogyakarta • ilmukomputer.com ~ Alpro – Jonh – SI – STMIK Palangka Raya