12.07.2015 Views

PENGANTAR ALGORITMA & PEMROGRAMAN C/C++

PENGANTAR ALGORITMA & PEMROGRAMAN C/C++

PENGANTAR ALGORITMA & PEMROGRAMAN C/C++

SHOW MORE
SHOW LESS
  • No tags were found...

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>PENGANTAR</strong> <strong>ALGORITMA</strong> &<strong>PEMROGRAMAN</strong> C/<strong>C++</strong>Analisis Algoritma dan Struktur Data (TKE 670)Jum’at, 04 Februari 2011


Topik DiskusiKomputer dan PemrogramanMengenal Algoritma dan Struktur DataLangkah Penyelesaian MasalahStandar Algoritma dan Program yang BaikPenyajian Algoritma


Komputer dan PemrogramanKomputer : alat bantu penyelesaian masalah.Langkah-langkah penyelesaian masalah ditentukanoleh operator dalam runtunan instruksiProgram adalah sekumpulan instruksi untukmenyelesaikan masalahBahasa pemrograman digunakan untuk menulisprogram.Low-level language dan high-level languageInterpreted dan compiled language


Algoritma & Struktur DataPemecahan masalah tidak harus dengan langsung menulis programdengan bahasa pemrograman tertentuDisain pemecahan masalah lebih pentingAlgoritma menjadi sarana untuk merancang urutan langkahlangkahlogis penyelesaian masalah yang disusun secara sistematisVariasi algoritma muncul dalam hal penanganan data:Bagaimana data disusunData mana yang disimpan di memoriData mana yang digunakan pada saat tertentu, dll.Perlu strategi penanganan data : struktur data


AlgoritmaCiri-ciri algoritma yang baik :1. Benar secara logika2. Jumlah langkah/step berhingga dan tertentu3. Efektif4. Harus terminate pada kondisi tertentu5. Output yang dihasilkan tepat


Langkah Pemecahan Masalah(1) Inisiasi solusi secara umum:deskripsi masalahmerancang algoritma-algoritma untukmemecahkan masalah (bisa lebih darisatu solusi untuk satu permasalahan)menekankan pada ketepatan solusi


Langkah Pemecahan Masalah(2) Analisa algoritma :Menekankan pada efisiensiEfisiensi waktu dan efisiensi ruangMelakukan analisa algoritma dari solusi-solusi yangdirancangMemilih metode struktur data yang tepatContoh: analisis kompleksitas algoritma(Asymptotic Analysis) untuk membandingkan duametode sorting, yakni insertion sort dan merge sort(akan dijelaskan di pertemuan berikutnya)


Langkah Pemecahan Masalah(3) Implementasi solusiMenggambar flowchart dan atau menulispseudocodeMenerjemahkan ke dalam bahasapemrograman tertentuMelakukan pengujian (debugging) danperbaikan program


Standar Program yang Baik1. Standar Penyusunan Programa. Kebenaran logikab. Waktu untuk penulisan programc. Kecepatan maksimum eksekusi programd. Ekspresi penggunaan memorie. User friendly (bisa dikembangkan programmerdeveloper lain)f. Portability (instalasi dan inisiasi mudah)g. Pemrograman Modular (memudahkan perawatan)


Standar Program yang Baik2. Standar Perawatan Programa. Dokumentasi pemakaian untuk penggunab. Dokumentasi pengembangan untukprogrammer (biasanya berbentuk komentarkomentarpada source code program)c. Konvensi penulisan instruksi (memudahkanpengerjaan program oleh programmer lain)


Penyajian AlgoritmaAlgoritma disajikan dengan tulisan dan gambar.Algoritma yang disajikan dengan tulisan berupapseudocode, sedangkan yang disajikan dengangambar berupa flowchart (bagan alir).


Contoh Penyajian AlgoritmaAlgoritma untuk mencari rata-rata dari 3 bilangan bulat yang diinputkan:a. Algoritma dengan struktur bahasa Indonesia1. Baca bilangan a, b, dan c2. Jumlahkan ketiga bilangan tersebut3. Bagi jumlahnya dengan 34. Tulis hasilnyab. Algoritma dengan pseudocodeAlgoritma CARI_RERATAa, b, c, Jml: integerRerata : realInput (a,b,c)Jml


Contoh Penyajian AlgoritmaAlgoritma untuk mencari luas lingkaran :a. Algoritma dengan struktur bahasa Indonesia1. Beri nilai phi dengan 3.142. Masukkan jari-jari lingkaran3. Kalikan phi dengan kuadrat dari jari-jarinya4. Tulis hasilnyab. Algoritma dengan pseudocodeAlgoritma LUAS_LINGKARANphi, L, R : realphi


FlowchartFlowchart (bagan alir) adalah suatu bagan yangmenggambarkan/mempresentasikan suatualgoritma/prosedur untuk menyelesaikan masalah.Flowchart ada dua macam :Flowchart SystemFlowchart Program


Flowchart systemYaitu bagan yang menggambarkan suatu prosedur dan proses suatu filedalam suatu media menjadi file dalam media yang lain dalam suatusistem data.Simbol yang digunakan :


Flowchart programYaitu bagan yang menggambarkan urutan logika dari suatu prosedurpemecahan masalah.Simbol yang digunakan :: menunjukkan awal dan akhir dari program: memberikan niai awal pada suatu variabel atau counter: menunjukkan pengolahan aritmatika dan pemindahan data: menunjukkan proses input atau output: untuk mewakili operasi perbandingan logika: proses yang ditulis sebagai sub program, yaitu prosedur/ fungsi: penghubung pada halaman yang sama: penghubung pada halaman yang berbeda


PseudocodeMempermudah pembuatan programIndependen dari berbagai bahasapemrogramanNotasi-notasinya bisa diterjemahkan keberbagai bahasa pemrograman


Struktur PseudocodeAlgoritma HITUNG_RERATA(Menghitung rerata bilangan bulat)x, n, k, jumlah: integerrerata: realinput(n)k ← 1jumlah ← 0while k ≦ n doinput(x)jumlah ← jumlah + xk ← k + 1endwhileKepala AlgoritmaDeklarasiDeskripsirerata ← jumlah/noutput(rerata)


Konversi ke bahasa C/* Program Hitung Rerata *//* Menghitung nilai rerata sekumpulan bilangan *//* bulat yang dibaca dari keyboard */#include main(){/*Deklarasi*/int x, n, k, jumlah;float rerata;/*Deskripsi*/printf(“Masukkan jumlah data: “);scanf(“%d”, &n);}k = 1;jumlah = 0;while (k


STRUKTUR DASAR <strong>ALGORITMA</strong>Struktur dasar algoritma ada tiga, yaitu :1. Sequence Structure (struktur runtunan)Digunakan untuk program yang instruksinya sequential/urutan.2. Selection Structure (struktur percabangan)Digunakan untuk program yang menggunakan pilihan/penyeleksian kondisi.3. Repetition Structure (struktur perulangan)Digunakan untuk program yang instruksinya akan dieksekusiberulang-ulang.


STRUKTUR RUNTUNAN(Sequence Structure)Dengan Struktur runtunan, berarti :Setiap instruksi akan dikerjakan satu persatuSetiap instruksi dilaksanakan tepat satu kali, tidakada instruksi yang diulang maupun tidak dilaksanakanUrutan instruksi yang dilaksanakan pemroses samadengan urutan aksi sebagaimana yang tertulis di dalamteks algoritmanyaAkhir dari instruksi terakhir merupakan akhiralgoritmaBila runtunan instruksi dalam algoritma berturutturutdilambangkan dengan A1, A2, A3, A4, dan A5,maka pelaksanaan instruksi tersebut adalah :


Contoh:Pseudocode sebuah algoritma, sbb:1. A ← 10A ← 2*AB ← AOutput(B)2. A ← 10B ← AA ← 2*AOutput(B)Contoh 1) → keluaran = 20,Contoh 2) → keluaran = 10


Contoh-Contoh Kasus1. Algoritma untuk menghitung sisi miring segitiga siku sikuAlgoritma HITUNG_SISI_MIRING_SEGITIGAalas, tinggi: integerSisimiring: realInput(alas,tinggi)Sisimiring ← sqrt(alas^2 +tinggi^2)Output(Sisimiring)2. Algoritma untuk mengkonversi input Jam, Menit, dan Detik, ketotal detikAlgoritma KONVERSI_WAKTUJam, Menit, Detik, TotalDetik: integerInput(Jam,Menit,Detik)TotalDetik ← Jam*3600 + Menit*60 + DetikOutput(TotalDetik)


STRUKTUR PERCABANGAN(Selection Structure)Pernyataan percabangan memungkinkan suatu pernyataandieksekusi hanya jika suatu kondisi terpenuhi atau tidakterpenuhiContoh :Jika mau nonton film, maka belilah tiketnyaJika suatu bilangan habis dibagi 2, maka bilangan itu adalahbilangan pastilah bilangan genapBentuk instruksi percabanganInstruksi IFPernyataan IF SederhanaPernyataan IF-ELSEInstruksi CASE


INSTRUKSI IFSecara Umum flowchartnya, sebagai berikut:


Pernyataan IF SederhanaBentuk:IF THENENDIFPernyataan IF dengan Syarat TunggalInstruksi untuk memeriksa sebuah kondisi sajaContoh :IF komentar=”coba” THENOutput(“Anda memasukan kata yang benar”)ENDIF


Pernyataan IF SederhanaPernyataan IF dengan Syarat MajemukDigunakan operator AND dan ORContoh :atauIF nilai = “A” OR nilai = “B” THENOutput(“Anda dapat mengikuti tes asisten”)ENDIFIF nilai=80THENOutput(“Nilai mata kuliah Anda A”)ENDIF


Pernyataan IF – ELSEBentuk:IF THENELSEENDIF


Pernyataan IF – ELSEContoh :IF x>0 THENOutput(“X adalah bilangan positif”)ELSEOutput(“X adalah bilangan negatif”)ENDIF


INSTRUKSI CASEAlternatif dari pernyataan IF untuk masalah dengan pilihan gandaSemua masalah yang bisa CASE pasti bisa ditangani oleh IF, tetapitidak sebaliknyaBentuk:SELECT CASE CASE CASE ...CASE ELSEEND SELECT


STRUKTUR PERULANGAN(Repetition Structure)Pemrograman untuk melakukan suatu proses yang berulangulang,jika suatu kondisi dipenuhi atau tidakProses ini biasanya digunakan, untuk :Mengulang proses pemasukan dataMengulang proses perhitunganMengulang proses penampilan hasil pengolahan data


STRUKTUR PERULANGAN(Repetition Structure)Struktur perulangan terdiri dari 2 bagian :Kondisi pengulangan, yaitu ekspresi boolean yang harus dipenuhiuntuk melaksanakan pengulanganBadan (body) pengulangan, yaitu satu atau lebih aksi yang akandiulangDisamping itu biasanya disertai dengan :Inisialisasi, yaitu aksi yang dilakukan sebelum pengulangandilakukan pertama kaliTerminasi, yaitu aksi yang dilakukan setelah pengulanganselesai dilaksanakan


STRUKTUR PERULANGAN(Repetition Structure)Bentuk instruksi perulangan :Instruksi FORInstruksi WHILE – DOInstruksi REPEAT-UNTIL


INSTRUKSI FORDigunakan untuk mengeksekusi suatu baris/blok instruksi secaraberulang-ulang selama kondisi terpenuhiKondisi yang digunakan untuk menguji hanya sebatasperhitungan menambah/mengurangi isi variabel counter denganSTEP tertentuJumlah perulangan diketahui secara pasti (n kali)


INSTRUKSI FORBentuk instruksi :FOR variable_counter ← nilai_awal TO nilai_akhir DOENDFOR


INSTRUKSI FORContoh: Mencetak tulisan ‘HALO’ sepuluh kaliAlgoritma CETAK_HALO_SEPULUH_KALIk : integerFOR k ← 1 TO 10 DOoutput(‘HALO’)ENDFOR


Instruksi WHILE-DOINSTRUKSIProses berulang selama sebuah kondisi terpenuhiProses berulang tidak diketahui jumlahnyaBentuk Instruksi :WHILE DOENDWHILE


Instruksi WHILE-DOContoh: mencetak tulisan “Halo” sebanyak 10 kaliAlgoritma CETAK_HALO_SEPULUH_KALIk : integerk ← 1WHILE k ≦ 10 DOoutput(‘Halo’)k ← k + 1ENDWHILE


Instruksi REPEAT-UNTILInstruksi REPEAT - UNTILPengulangan dilakukan selama kondisi bernilai salahPengujian dilakukan setelah blok pernyataan dijalankan,sehingga minimal sekali pernyataan akan dieksekusiBentuk Instruksi :REPEATUNTIL


Instruksi REPEAT-UNTILContoh: Menampilkan angka 1, 2, ......., 20Algoritma CETAK_ANGKA_1-20angka : integerangka ← 1REPEAToutput(angka)angka ← angka + 1UNTIL angka > 20


TugasKerjakan TugasASD040311.pdfWaktu pengerjaan dua minggu, deadline hari Kamis,17 Maret 2011 pkl. 23.59 WIBTugas dikumpul via email : sunu_jteti@yahoo.co.idMinggu depan kelas ditiadakan, mohon selama duaminggu pelajari dasar-dasar C/<strong>C++</strong> ProgrammingPEMBAGIAN GRUP untuk TUGAS PRESENTASI(ambil no. undian). Tema presentasi dan jadwalpresentasi diunduh di course page dan papirus

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!