42
BAHASA PEMROGRAMAN • Program harus ditulis dalam suatu bahasa yang dimengerti oleh komputer yaitu dalam Bahasa pemrogram dibedakan menjadi : – Bahasa tingkat rendah (low level language) : bahasa yang berorientasi ke mesin. – Bahasa tingkat tinggi (high level language) : bahasa yang berorientasi ke manusia (seperti bahasa inggris) contoh bahasa Pascal, bahasa C dll.

Algoritma pemrograman minggu 1 2

Embed Size (px)

Citation preview

  • BAHASA PEMROGRAMAN

    Program harus ditulis dalam suatu bahasa yang dimengerti oleh komputer yaitu dalam Bahasa pemrogram dibedakan menjadi : Bahasa tingkat rendah (low level language) : bahasa yang berorientasi ke mesin. Bahasa tingkat tinggi (high level language) : bahasa yang berorientasi ke manusia (seperti bahasa inggris) contoh bahasa Pascal, bahasa C dll.

  • BAHASA PEMROGRAMAN Program yang ditulis dalam bahasa pemrograman akan diterjemahkan ke dalam bahasa mesin (kenal dengan biner digit) dengan menggunakan penterjemah. Penterjemah : Interpreter : menterjemahkan baris per baris instruksi. Contoh bahasa Basic. Compiler : menterjamahkan setelah seluruh instruksi ditulis. Contoh bahasa Pascal, C, C++, dll.

  • Definisi AlgoritmaUrutan langkah-langkah untuk memecahkan masalahUrutan logis pengambilan keputusan untuk memecahkan masalahurutan langkah logis, berarti algoritma harus mengikuti suatu urutan tertentu, tidak boleh melompat-lompat.Alur pemikiran dalam menyelesaikan suatu pekerjaan yang dituangkan secara tertulis.alur pikiran, yang artinya algoritma seseorang dapat berbeda dari algoritma orang lain. tertulis, yang artinya dapat berupa kalimat, gambar, atau tabel tertentu.

  • Dalam bidang komputer, algoritma sangat diperlukan dalam menyelesaikan berbagai masalah pemrograman, terutama dalam komputasi numeris. Tanpa algoritma yang dirancang baik maka proses pemrograman akan menjadi salah, rusak, atau lambat dan tidak efisien.Algoritma di butuhkan untuk memerintah komputer mengambil langkah-langkah tertentu untuk menyelesaikan masalahAlgoritma Pemrograman ProgramAgar algoritma dapat memerintah (diproses) komputer, maka dirubah menjadi bentuk program (melalui proses pemrograman).

  • Tahap Penyelesaian MasalahMasalahModelAlgoritmaProgramEksekusiHasilDataanalisisanalisisanalisis

  • Kriteria Pemilihan AlgoritmaAda OutputEfektifitas dan EfisiensiJumlah Langkahnya BerhinggaBerakhir Terstruktur

  • Suatu Algoritma yg terbaik (The Best): Suatu algoritma harus menghasilkan output yg tepat guna (efektif) dlm waktu yg relatif singkat & penggunaan memori yg relatif sedikit (efesien) dgn langkah yg berhingga & prosedurnya berakhir baik dlm keadaan diperoleh suatu solusi ataupun tdk ada solusinya.

  • Contoh:Sebuah prosedur ketika akan mengirimkan surat kepada teman:Tulis surat pada secarik kertas suratAmbil sampul surat atau amplopMasukkan surat ke dalam amplopTutup amplop surat dengan lem perekatTulis alamat surat yg dituju, jika tdk ingat, lebih dahulu ambil buku alamat & cari alamat yg dituju, lalu tulis alamat tsb pd amplop surat.Tempelkan perangko pada amplop suratBawa surat ke kantor pos utk diserahkan pd pegawai pos atau menuju ke bis surat untuk memasukkan surat ke dlm kotak/bis surat.

  • Penulisan AlgoritmaMenggunakan bahasa natural (Bahasa manusia: Indonesia, Inggris)Kelemahannya masih sering membingungkan (ambigu) / sulit dipahami.Menggunakan FlowchartBaik karena alur algoritma dapat dilihat secara visual, tetapi repot pembuatannya jika algoritma panjang Menggunakan PseudocodeSudah dekat dengan bahasa pemrograman, tetapi sulit dimengerti oleh orang yang belum tahu pemrograman

  • Tahap Analisa AlgoritmaBagaimana merencanakan algoritma Bagaimana menyatakan suatu algoritma (menulis algoritma)Bagaimana validitas suatu algoritma.Bagaimana Menganalisa suatu Algoritma.Bagaimana Menguji Program dari suatu Algoritma

  • Ad.1.Bagaimana merencanakan algoritma

    Dengan Mendefinisikan masalah.

    Contoh : Permasalahan menghitung luas lingkaran, dengan data yang diketahui adalah diameter lingkaran.

    Rumus : . r2 dengan Phi = 3.14 atau 22/7.

  • Ad.2.Bagaimana menyatakan suatu algoritma (menulis algoritma)

    Dengan psudocodeSuatu cara penulisan algoritma agar ide dan logika dari algoritma dapat disampaikan/diekspresikan menggunakan gaya bahasa pemrograman tertentu.Phi 3.14Input (diameter)Radius diameter / 2Luar phi * radius * radiusOutput (Luas)End

  • Dengan flowchart / diagram alirProgram Flowchart, yaitu bagan yang menggambar-kan urutan logika dari suatu prosedur pemecahan masalah.StartPhi = 3.14Input(diameter)Radius = diameter/2Luas = phi * radius * radiusOutputLuasStop

  • Tahap Proses Uji Algoritma

    Pengujian Tahap DebugingUntuk mengecek kesalahan program, Baik sintaksis maupun logika.2. Pengujian Tahap ProfilingUntuk menentukan waktu tempuh dan banyak nya memori program yang digunakan.

  • Analisis Suatu Algoritma Untuk melihat effisiensi dan efektifitas dari suatu algoritma, dapat dilihat dari:

    Waktu Tempuh dari Suatu AlgoritmaJumlah memori yang digunakan

    Hal-hal yang dapat mempengaruhi waktu tempuh adalah :Banyaknya langkah.Besar dan jenis input data.Jenis Operasi.Komputer dan kompilator

  • Sifat - Sifat AlgoritmaAspek Penting Algoritma :Finite algoritma harus berhenti setelah mengerjakan sejumlah langkah terbatasDefinite setiap langkah didefinisikan secara tepat, tidak boleh membingungkan (ambigu)Input sebuah algoritma memiliki nol/lebih input sebelum dijalankanOutput algoritma memiliki satu/lebih output, yang biasanya bergantung kepada inputEffective setiap algoritma diharapkan memiliki sifat efektif. (setiap langkah harus sederhana dan sehingga dapat dikerjakan dalam waktu yang masuk akal)

  • Langkah-langkah yang membentuk suatu algoritma dapat dibagi menjadi 3 kelompok proses:

    1.Sequence Process instruksi dikerjakan secara berurutan satu persatu dimulai dari langkah pertama sampai terakhir.2.Selection Process instruksi pemilihan proses (percabangan), sehingga apabila memenuhi persyaratan tertentu maka instruksi akan dikerjakan.Contoh : jika pembayaran tunai diberi diskon 10%Jika dilakukan secara kredit maka diskon 0 %.(dalam pernyataan diatas, hanya boleh melakukan 1 instruksi dari 2 alternatif instruksi.3.Iteration Process suatu instruksi yang dikerjakan berulang-ulang selama beberapa kali selama masih memenuhi suatu kondisi.

  • Algoritma TUKAR ISI BEJANADiberikan dua buah bejana A dan B, bejana A berisilarutan berwarna merah, bejana B berisi larutanberwarna biru. Pertukarkan isi kedua bejana itusedemikian sehingga bejana A berisi larutanberwarna biru dan bejana B berisi larutan berwarnamerah.DESKRIPSI : Tuangkan larutan dari bejana A ke dalam bejana B Tuangkan larutan dari bejana B ke dalam bejana A.

  • AlgoritmaAlgoritma TUKAR ISI BEJANA di atas tidak menghasilkan pertukaran yang benar. Langkah di atas tidak logis, hasil pertukaran yang terjadi adalah percampuran kedua larutan tersebut.Untuk mempertukarkan isi duah bejana, diperlukan sebuah bejana tambahan sebagai tempat penampungan sementara, misalnya bejana C.

  • Ciri penting AlgoritmaAlgoritma harus berhenti setelah mengerjakan sejumlah langkah terbatas.Setiap langkah harus didefinisikan dengan tepat dan tidak berarti-dua (Ambiguitas). Algoritma memiliki nol atau lebih masukkan. Algoritma memiliki nol atau lebih keluaran.Algoritma harus efektif (setiap langkah harus sederhana sehingga dapat dikerjakan dalam waktu yang masuk akal).

  • Notasi AlgoritmaPenulisan algoritma tidak tergantung dari spesifikasi bahasa pemrograman dan komputer yang mengeksekusinya. Notasi algoritma bukan notasi bahasa pemrograman tetapi dapat diterjemahkan ke dalam berbagai bahasa pemrograman

  • LatihanBuatlah algoritma dengan menggunakan bahasa natural (bahasa sehari-hari / pseudocode )

    Buat langkah untuk melakukan penggantian ban mobil yang pecah ( tanpa ada masalah / syarat ).

    Dari Soal diatas dikembangkan kembali, mis : bila ban serep kempes atau ban serep bocor.

  • Latihan contBuatlah algoritma (dengan bahasa natural):

    Menampilkan bilangan ganjil dari 1 sampai dengan 10.

    Menghitung jumlah deret : 1 + 2 + 3 + 4 + .... + NN = jumlah maksimum suatu nilai yang dimasukkan.

  • Struktur Badan AlgoritmaKepala ProgramBerisi judul program dan keterangan tentang programBahasa Algoritma : Algoritma judul_programEx. Algoritma menghitung_luas_segitiga Ex. Algoritma MenghitungLuasSegitigaBisa ditambahkan komentar tentang program dengan menggunakan operator { }

  • Struktur Badan Algoritma (2)DeklarasiBerisi variabel yang digunakan dalam programBahasa Algoritma : nama_variabel : Tipe DataEx. AlasSegitiga : integerEx. TinggiSegitiga : integerEx. LuasSegitiga : integer

  • Struktur Badan Algoritma (3)DeskripsiBerisi uraian langkah penyelesaianExample:read(PanjangSegitiga)read(LebarSegitiga)LuasSegitiga * PanjangSegitiga * LebarSegitigawrite(LuasSegitiga)

  • Struktur Badan Algoritma (4)Algoritma menghitung_luas_segitiga{menghitung luas segitiga dengan inputan alas dan tinggi segitiga berasal dari keyboard}

    DEKLARASIAlasSegitiga : IntegerTinggiSegitiga : IntegerLuasSegitiga: Integer

    DESKRIPSIread(AlasSegitiga)read(TinggiSegitiga)LuasSegitiga * AlasSegitiga * TinggiSegitiga

    write(LuasSegitiga)

  • KasusDeklarasi data untuk mobil Merk: String {Contoh: Honda}NoKendaraan: String {Contoh: KH1A}TahunProduksi: Integer {Contoh: 2007}

    Deklarasi data untuk Mata kuliahDeklarasi data untuk Waktu

  • Deklarasi data untuk Alamat RumahDeklarasi data untuk Data Pribadi

  • TIPE, NAMA, DAN NILAI

  • Tipe DataTipe data terdiri dari tipe:Tipe dasarTipe yang dapat langsung dipakai (disediakan oleh bahasa pemrograman)Contoh: boolean, integer, real, char, string (?)Tipe bentukanTipe yang didefinisikan sendiri oleh pemrogramTipe yang dibentuk dari tipe dasar atau dari tipe bentukan lain yang sudah didefinisikanContoh: 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 BentukanTipe dasar yang diberi nama tipe baruNama baru untuk tipe dasar menggunakan kata kunci typeDomain nilai, cara menulis konstanta, dan operasi-operasi yang dapat dijalankan pada tipe baru tersebut tidak berubah, sama seperti tipe dasarnya.Contoh: type BilanganBulat: integerRekaman (record)Rekaman disusun atas satu atau lebih fieldTipe field menyimpan data dan tipe dasar tertentu atau dari tipe bentukan lain yang sudah didefinisikan sebelumnyaNama rekaman ditentukan oleh pemrogramRekaman disebut juga tipe terstruktur

  • Contoh RecordDEKLARASItype MataKuliah : record

    type Mahasiswa : record

    LarikMhs : array[1..100] of Mahasiswa

  • NamaUntuk mengidentifikasikan dan membedakan obyekUnik dan tidak boleh samaDalam algoritma nama diberikan pada:VariabelTempat penyimpanan data/informasi di memori yang nilainya dapat diubah selama pelaksanaan programKonstantaTempat penyimpanan di memori yang nilainya tidak dapat diubah selama pelaksanaan programTipe bentukanTipe data baru yang didefinisikan oleh program dari tipe data yang sudah adaProsedurModul program (sederetan instruksi) yang ditulis terpisah dari badan program utamadan dapat dipanggil berulang dari program utamaFungsiProsedur yang mengembalikan suatu nilai dengan tipe data sederhana

  • Aturan Penulisan NamaHarus 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 spasiPanjang nama tidak terbatasSemua nama yang dipakai harus dideklarasikan dulu pada bagian deklarasi

  • Contoh PenamaanSALAH6titik{dimulai dg angka}nilai ujian{dipisahkan spasi}PT-1{mengandung operator kurang}hari!{mengandung karakter khusus}

    BENARtitik6 atau titik_6nilai_ujian atau nilaiUjianPT_1 atau PT1hari

  • NilaiMerupakan besaran dari tipe data yang sudah didefinisikan (tipe dasar maupun tipe bentukan)Nilai dapat berupa:Isi variabel atau konstantaNilai dari hasil perhitunganNilai yang dihasilkan oleh fungsiNilai yang disimpan di variabel dimanipulasi dengan cara:Mengisikan ke variabel lain yang bertipe samaDipakai untuk perhitunganDituliskan 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 algoritmaSyaratnya nilai yang didisikan harus bertipe sama dengan tipe peubahNotasi: Contoh:

    variabel konstantaNoMhs 1234variabel1 variabel2Nil_prev Nil_curvariabel ekspresiLuas 0.5 * p * l

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

  • SumberAlgoritma dan Pemrograman dalam Bahasa Pascal dan C (Buku 1), Rinaldi Munir, Informatika BandungBahan Matakuliah Algoritma dan Pemrograman Universitas Atma Jaya Yogyakartailmukomputer.com

  • TERIMAKASIH

    *