CS1023 Pemrograman Komputer

Slides:



Advertisements
Presentasi serupa
Algoritma dan Pemrograman I
Advertisements

Introduction to Algorithm evaluation Soal Matrikulasi Buka Buku
STRUKTUR DASAR ALGORITMA
STRUKTUR PERULANGAN Perulangan adalah instruksi yang dapat mengulang sederetan Instruksi secara berulang-ulang sesuai persyaratan yang ditetapkan. Struktur.
PERTEMUAN 6 Algoritma Presented by : Sity Aisyah, M.Kom
PENGURUTAN (SORTING).
CS1023 Pemrograman Komputer
Algoritma Pemrograman Muhamad Akbar
ALGORITMA Lecture Pengulangan.
PENCARIAN (SEARCHING)
Analisis Kasus Algortima Pemrograman Muhamad Akbar.
Bab 2 – b PERINTAH 2 B Percabangan. PERCABANGAN Tidak setiap baris program akan dikerjakan Hanya yang memenuhi syarat (kondisi) Syarat terdiri dari operand-operand,
Operasi Perulangan pada FORTRAN Pertemuan 6
Algoritma (Struktur, Tipe Data, Input/Output)
Notasi Algoritma.
Pengulangan.
CS1023 Pemrograman Komputer Lecture 20 Array / Tabel [2]
{Pertemuan 4 Struktur Kondisi IF}
Prodi S1-Sistem Komputer, F Teknik Elektro
Algoritma dan Pemrograman Subrutin
Algoritma Pencarian (searching)
STRUKTUR DASAR ALGORITMA
{Pertemuan 4 Struktur Kondisi IF}
Algoritma dan Pemrograman STRUKTUR PEMILIHAN (SELECTION) lanjutan
4. Linked List (List Linier)
KUG1C3 Dasar Pemrograman
KUG1A3 Algoritma& Pemrograman
KUG1A3 Algoritma& Pemrograman
KUG1C3 Dasar algoritma & pemrograman
Dasar Algoritma dan Pemrograman
CS1023 Pemrograman Komputer
CS1023 Pemrograman Komputer
Algoritma dan Pemrograman Searching
Pencarian pada Array Tim PHKI Modul Dasar Pemrograman
STRUKTUR DASAR ALGORITMA
Algoritma dan Pemrograman Searching
STRUKTUR DASAR ALGORITMA
{Pertemuan 4 Struktur Kondisi IF}
CS1023 Pemrograman Komputer
Analisis leksikal (Scanner)
Array Tim PHKI Modul Dasar Pemrograman Fakultas Ilmu Komputer
Array 1.
Stack (Tumpukan).
CS1023 Pemrograman Komputer
Algoritma dan Pemrograman Subrutin
Algoritma dan Pemrograman
Algoritma dan Pemrograman (Pertemuan 03)
Algoritma dan Pemrograman STRUKTUR PEMILIHAN (SELECTION) lanjutan
Pengulangan.
Analisis leksikal ( SCANNER )
Struktur Dasar Algoritma dan Runtunan
MATERI PERKULIAHAN ANALISIS ALGORITMA
Algoritma dan Pemrograman Subrutin (Function)
SEARCHING (PENCARIAN)
Seleksi Kondisi merupakan perintah yang memungkinkan pemilihan atas perintah yang akan dijalankan sesuai dengan kondisi tertentu. Operator yang digunakan.
Algoritma dan Pemrograman Subrutin
Algoritma dan Pemrograman Rekursif
Algoritma & Pemrograman 1
Algoritma dan Pemrograman Searching
Algoritma dan Pemrograman STRUKTUR PEMILIHAN (SELECTION) lanjutan
Algoritma dan Pemrograman STRUKTUR ALGORITMA (3)
Pencarian (searching)
Algoritma Pemrograman Muhamad Akbar
KUG1E3/ Pemrograman Terstruktur 1
STRUKTUR DASAR ALGORITMA
Kode MK/ Pemrograman Terstruktur 2
CS1023 Pemrograman Komputer
Perulangan (Loop) Oleh : Tim Teaching
Logika dan Algoritma Agung BP Chapter 5.
Dasar Pemrograman Percabangan Nurul Anisa Sri Winarsih, M. CS
Transcript presentasi:

CS1023 Pemrograman Komputer Lecture 16 Mesin Abstrak [2]

Mesin Couple Kasus : Diberikan sebuah mesin karakter dengan pita berisi karakter (mungkin kosong). Buatlah algoritma untuk menghitung banyaknya pasangan dua huruf ‘LE’ yang ada pada pita tersebut

Mesin Couple HITUNG-LE Versi 1 : Realisasi dengan membuat mesin couple: mesin yang mampu untuk menampilkan dua karakter sekaligus berdasarkan mesin karakter.

HITUNG-LE Versi 1 : Kamus : Program COUNTLE-1 {SKEMA PEMROSESAN DENGAN MARK} {Solusi 1: Mesin COUPLE}: Kamus : CPTLE : Integer {banyaknya ‘LE’ pada bagian pita yang sudah dibaca} C1, C2 : character {C1, C2 adalah Couple} procedure START-COUPLE {mendapatkan couple yang pertama}

HITUNG-LE Versi 1 : {I.S. : sembarang } Lanjutan Kamus {I.S. : sembarang } {F.S. : Couple pertama terbentuk : C1 = ‘ ‘, C2 = CC, CC mungkin = ‘.’} procedure ADV-COUPLE {next-couple} {I.S. : C1 dan C2, C2 ≠ ‘.’} {F.S. : C1 = C2, C2 = CC, CC mungkin = ‘.’}

HITUNG-LE Versi 1 : Algoritma : START-COUPLE {First_Elmt} CPTLE ← 0 Lanjutan Kamus Algoritma : START-COUPLE {First_Elmt} CPTLE ← 0 while (CC ≠ ‘.’) do {not End-Couple} if (C1 = ‘L’ and C2 = ‘E’) then CPTLE ← CPTLE + 1 {couple ‘LE’} {else : C1 ≠ ‘L’ or C2 ≠ ‘E’ : -} ADV-COUPLE {Next_Elmt} Output (CPTLE) {Terminasi}

HITUNG-LE Versi 1 : Procedure START-COUPLE {SKEMA PEMROSESAN DENGAN MARK, Solusi 1 : mesin COUPLE}: {I.S. : sembarang } {F.S. : Couple pertama terbentuk : C1 = ‘ ‘, C2 = CC, CC mungkin = ‘.’} Kamus : Algoritma : C1 ← ‘ ‘ {karena yang dicari adalah ‘LE’, Bagaimana jika yang dicari pasangan lain?} START C2 ← CC

HITUNG-LE Versi 1 : procedure ADV-COUPLE {SKEMA PEMROSESAN DENGAN MARK, Solusi 1 : mesin COUPLE}: {I.S. : C1 dan C2, C2 ≠ ‘.’} {F.S. : C1 = C2, C2 = CC, CC mungkin = ‘.’} Kamus : Algoritma : C1← C2 ADV C2 ← CC

HITUNG-LE, versi 2 : Ide → mengingat-ingat jika menemukan ‘L’, dan memeriksa karakter selanjutnya

HITUNG-LE, versi 2 : Program COUNTLE-2 {SKEMA PEMROSESAN DENGAN MARK} {Solusi 2: Memorisasi satu karakter sebelum karakter yang ada di jendela} Kamus : CPTLE : Integer {banyaknya ‘LE’ pada bagian pita yang sudah dibaca} Prec-Is-L : boolean {true jika karakter sebelum CC adalah ‘L’}

HITUNG-LE, versi 2 : Algoritma : Prec-Is-L ← false {inisialisasi} CPTLE ← 0 {inisialisasi} START {First_Elmt} while CC ≠ ‘.’ do Prec-Is-L ← CC = ‘L’ ADV {Next_Elmt} if CC = ‘E’ and Prec-Is-L then CPTLE = CPTLE + 1 Output (CPTLE) {Terminasi}

HITUNG-LE versi-3 : Ide → maju terus sampai menemukan ‘L’, dan memeriksa karakter berikutnya

HITUNG-LE versi-3 Program COUNTLE-3 {SKEMA PEMROSESAN DENGAN MARK} {Solusi 3: majukan pita sampai ketemu ‘L’, periksa karakter berikutnya. Proses ini diulang sampai seluruh karakter selesai diproses}: Kamus : CPTLE : Integer {banyaknya ‘LE’ pada bagian pita yang sudah dibaca}

Algoritma : CPTLE ← 0 START {First_Elmt} while (CC ≠ ‘.’) do {Cari sampai ketemu ‘L’, namun mungkin ketemu ‘.’} while (CC ≠ ‘L’) and (CC ≠ ‘.’) do ADV {CC = ‘L’ or CC = ‘.’} if (CC = ‘L’ and CC = ‘.’) then ADV {Boleh ADV, karena CC bukan‘.’} if CC = ‘E’ then CPTLE ← CPTLE + 1 {else : CC ≠ ‘L’ : -} {CC = ‘.’, seluruh karakter pada pita sudah dibaca} Output (CPTLE) {Terminasi}

MESIN KATA Dari primitif-primitif mesin karakter, dapat dibuat mesin kata yang melakukan pemrosesan terhadap pita karakter dengan anggapan tiap elemen yang diakuisisi berupa kata. Definisi kata : sederetan karakter suksesif pada pita larakter yang merupakan karakter bukan blank Kemungkinan isi dari pita karakter : hanya mengandung titik (pita kosong)

MESIN KATA hanya mengandung blank diakhiri titik - tidak mengandung blank di awal dan di akhir pita

MESIN KATA - mengandung blank di akhir pita - mengandung blank di awal pita

MODEL AKUISISI Berikut ini beberapa contoh model akuisisi kata pada pita karakter dengan kasus menghitung panjang rata- rata kata pada sebuah pita karakter. Versi 1 Akhir proses adalah sebuah Boolean, berisi true jika kata terakhir telah diakusisi. Kata diakuisisi mulai dari karakter pertama sesudah akhir kata. Akuisisi kata terakhir menghasilkan kata kosong.

Model Akuisisi Versi 1 Program PANJANG_RATA_KATA1 { algoritma menghitung panjang rata-rata kata pada pita karakter } { Versi 1 : Skema pemrosesan tanpa penanganan kasus kosong } Kamus Constant Mark : character = ‘.’ Constant Blank : character = ‘ ’ Lkata : integer {panjang kata terakhir yang sudah diakuisisi} NbKata : integer {jumlah kata pada pita} LTotal : integer {akumulasi panjang kata} EndKata : boolean {true jika kata terakhir sudah diakusisi}

Procedure Ignore_Blank {mengabaikan satu atau beberapa blank} Lanjutan Kamus Procedure Ignore_Blank {mengabaikan satu atau beberapa blank} {I.S : CC sembarang} {F.S : CC  Blank, atau CC = mark} Procedure Hitung_Panjang {menghitung panjang kata} {I.S : CC adalah karakter pertama dari kata } {F.S : CC = Blank atau CC = mark, CC adalah karakter pertama sesudah huruf terkahir kata yang diakuisisi; Lkata berisi panjang kata yang sudah diakuisisi}

Lanjutan Kamus Procedure START_KATA {mengabaikan satu atau beberapa blank} {I.S : CC sembarang} {F.S : Endkata true dan CC = mark atau EndKata false, Lkata adalah panjang kata yang sudah diakuisisi, CC karakter pertama sesudah karakter terakhir kata} Procedure ADVKATA {mengabaikan satu atau beberapa blank} {I.S : EndKata false; CC adalah karakter sesudah karakter terakhir dari kata yang sudah diakuisisi}

Algoritma : LTotal  0 NbKata  0 STARTKATA While not EndKata do LTotal  LTotal + LKata NbKata  NbKata + 1 ADVKATA depend on NbKata NbKata  0 : Output (LTotal/NbKata) NbKata  0 : Output (‘Pita tidak mengandung kata’)

Procedure Ignore_Blank {mengabaikan satu atau beberapa Blank} {I.S : CC sembarang} {F.S : CC  Blank atau CC = Mark} Kamus Algoritma {I.S CC sembarang} while (CC = Blank) and (CC  Mark) do ADV

Procedure Hitung_Panjang {menghitung panjang kata} {I.S : CC adalah karakter pertama dari kata, CC  Blank dan CC  Mark } {F.S : CC = Blank atau CC = Mark; CC adalah karakter sesudah huruf terakhir kata yang diakuisisi; Lkata berisi panjang kata yang sudah diakuisisi} Kamus Algoritma Lkata  1 {karena berada pada karakter pertama pita} iterate ADV Stop ((CC = Mark) or (CC = Blank)) Lkata  Lkata + 1 {(CC = Mark) or (CC = Blank); Lkata = # karakter kata yang diakuisisi}

Procedure START_KATA {mengabaikan satu atau beberapa Blank} {I.S : CC sembarang } {F.S : Endkata True dan CC = Mark atau EndKata = False; Lkata adalah panjang kata yang sudah diakuisisi; CC karakter pertama sesudah karakter terakhir kata} Kamus Algoritma START Ignore_blank depend on CC CC = Mark : EndKata  true CC  Mark : EndKata  false Hitung_Panjang

Procedure ADVKATA {mengabaikan satu atau beberapa Blank} {I.S : EndKata = false; CC adalah karakter sesudah karakter karakter terahir kata yang sudah diakusisi } {F.S : Endkata True dan CC = Mark atau EndKata = False; Lkata adalah panjang kata yang sudah diakuisisi; CC karakter pertama sesudah karakter terakhir kata} Kamus Algoritma Ignore_blank depend on CC CC = Mark : EndKata  true CC  Mark : Hitung_Panjang