Budi Rahardjo Kuliah Metoda Formal 2004

Slides:



Advertisements
Presentasi serupa
Pelajaran Dari Mendirikan Perusahaan Start-UP Lessons learned from Starting-Up Budi Rahardjo Juni 2003
Advertisements

Dasar Pemrograman Komputer
PEMROGRAMAN PASCAL STATEMEN KENDALI.
Universitas Muhammadiyah Malang Fakultas Teknik Jurusan Teknik Informatika Semester Genap Nur hayatin, S.ST.
Ekspresi dan Operator As’ad Djamalilleil
Macam Statement As’ad Djamalilleil
Selection (pemilihan) As’ad Djamalilleil
Ekspresi As’ad Djamalilleil
Struktur Kondisi dan Perulangan
PHP (2) Pemrograman Internet.
Struktur Kontrol.
PHP. PHP itu … Merupakan singkatan recursive dari PHP : Hypertext Prepocessor Pertama kali dibuat oleh Rasmus Lerdorf pada tahun 1994.Rasmus Lerdorf Setiap.
Control Structures in Java Risanuri Hidayat, Ir., M.Sc.
PERTEMUAN 2 Variabel, Ekspresi, Operator, dan Flow Control
Situasi Saat Program Berjalan (Run-time Environment)
Pemrograman Berorientasi Objek Bab 1 – Pemrograman Terstruktur.
Security Implementation On Mission Critical Applications Budi Rahardjo INDOCISC.comhttp://budi.insan.co.id Developers Day – Jakarta, 3 Maret 2005.
Struktur Kontrol.
Struktur Dasar Java Percabangan & Perulangan
Kuliah 12 Type Checking.
Flow Control & Looping Pertemuan 4 Pemrograman Berbasis Obyek Oleh Tita Karlita.
Diberikan pada Kuliah Sela Teknik Informatika - Universitas Muhammadiyah Malang Tahun 2011.
Specification and Description Language (SDL)
Dasar-Dasar PHP.
Struktur Kendali Proses (Perulangan)
Pertemuan Operasi Seleksi
Struktur kontrol ∞ kondisi. ∞ if-else ,
Struktur kontrol.
PERNYATAAN PERULANGAN
03 Elemen Dasar Bahasa Java
Kostanta,Variabel,dan Tipe Data
Algoritme dan Pemrograman
PHP.
MODUL 3 PERULANGAN PERCABANGAN ARRAY
PHP: Hypertext Preprocessor
Dasar Pemrograman Pertemuan 10 Pengulangan dalam C
if (condition) statement if (x == 100) cout << "x is 100";
FONDASI PEMROGRAMAN & STRUKTUR DATA #2
Statement Control (if dan switch)
INTRODUCTION TO C++ Prepared by: Edi, SKom, MKM.
Lutfi Budi Ilmawan Univ. Muslim Indonesia
PERNYATAAN PERULANGAN
Konsep pemrograman LOOP
Pertemuan 1&2 - Dasar Pemrograman PHP By: Junta Zeniarja, M.Kom, M.CS
Percabangan C++ Norma Amalia, ST., M.Eng.
BAB 4 Flow Control & Looping
Aliran Kendali (Flow Control)
Struktur Dasar Pemrograman Java
Algoritme dan Pemrograman
Percabangan dan Perulangan.
Minggu ke-10 Imam Fahrur Rozi
MATERI PERKULIAHAN TEKNIK KOMPILASI
Remainder Senin depan mulai UTS Praktikum
Latihan #0 Dengan menggunakan pernyataan looping WHILE dan jumlah instruksi sesedikit mungkin, tuliskan cuplikan program (bukan program lengkap, hanya.
As’ad Djamalilleil Macam Statement As’ad Djamalilleil
As’ad Djamalilleil Referensi Bahasa (4) As’ad Djamalilleil
Selection (pemilihan)
PHP : Hypertext Processor
~ PERTEMUAN 4 KONSEP TIPE DATA ~
Flow Control & Exception Handling
MATERI PERKULIAHAN TEKNIK KOMPILASI
Variabel dan Tipe Data TEE 2103 Algoritma & Pemrograman
Pemrograman Terstruktur
Dasar-dasar PHP - Pengantar - variabel - operator -struktur kontrol
Konsep Bahasa Pemrograman I Operator
Perulangan Minggu ke-10.
if (condition) statement if (x == 100) cout << "x is 100";
Pertemuan 3 (Struktur Bahasa C) .:: Erna Sri Hartatik ::.
Struktur Dasar Pemrograman Java
DPH1C4 Pemrograman berorientasi Obyek
Transcript presentasi:

Budi Rahardjo Kuliah Metoda Formal 2004 PROMELA & SPIN Budi Rahardjo Kuliah Metoda Formal 2004

PROMELA & SPIN - Budi Rahardjo PROMELA = PROcess MEta Language Sebuah bahasa untuk men-spesifikasi-kan sistem Menggabungkan CSP, C, SDL SPIN merupakan tools untuk melakukan (model) checking terhadap sistem yang dituliskan dalam PROMELA PROMELA & SPIN - Budi Rahardjo

Bahasa PROMELA

PROMELA & SPIN - Budi Rahardjo OBJECTS Ada 3 objects (akan dijelaskan nanti) Processes Message channels State variables Object ini bisa ditransalasikan menjadi finite state machine PROMELA & SPIN - Budi Rahardjo

Executability of statements Dalam PROMELA tidak ada perbedaan antara conditions dan statements Eksekusi dari statement bergantung kepada sifat executability nya PROMELA statement bisa executable atau blocked bergantung kepada nilai dari variable atau isi dari message channels Jika kondisi benar (holds) maka statement dieksekusi. Jika tidak, maka dia akan terblokir (blocked) sampai condition holds PROMELA & SPIN - Budi Rahardjo

PROMELA & SPIN - Budi Rahardjo Variabel & Data Types Ada 6 predefined data types Bit, bool, byte, short, int, chan Ukuran (1), (1), (8), (16), (32) bit, kecuali channel Chan -> message channel, yaitu sebuah object yang dapat menyimpan beberapa nilai yang disatukan menjadi sebuah struktur Contoh penggunaan bool flag; int state; byte msg; PROMELA & SPIN - Budi Rahardjo

PROMELA & SPIN - Budi Rahardjo Array Variabel dapat dinyatakan sebagai array byte state[N] state[0] = state[3] + 5 * state[3*2/n] Declaration dan assigments selalu executable PROMELA & SPIN - Budi Rahardjo

PROMELA & SPIN - Budi Rahardjo Process proctype A() { byte state; state = 3} merupakan deklarasi sebuah proses dengan sebuah variable yang bernama state Tanda titik koma (semicolon) merupakan statement separator (bukan statement terminator). Ada dua statement separator: anak panah -> dan titik koma ;. Keduanya ekivalen PROMELA & SPIN - Budi Rahardjo

PROMELA & SPIN - Budi Rahardjo Contoh byte state = 2; proctype A() { (state == 1) -> state = 3} proctype B() { state = state – 1} PROMELA & SPIN - Budi Rahardjo

PROMELA & SPIN - Budi Rahardjo Initial Process init { run A(); run B() } Proses init sama seperti main() pada program Bahasa C PROMELA & SPIN - Budi Rahardjo

PROMELA & SPIN - Budi Rahardjo Message Channels chan a, b; chan c[3] chan qname = [16] of { byte, int, chan, byte} qname!expr mengirimkan nilai dari ekspresi expr ke channle qname?msg membaca sebuah message dari head dari channel tersebut, dan menyimpannya dalam variabel msg PROMELA & SPIN - Budi Rahardjo

PROMELA & SPIN - Budi Rahardjo Control Flow Case selection Repetition Unconditional jumps PROMELA & SPIN - Budi Rahardjo

PROMELA & SPIN - Budi Rahardjo Case Selection if :: (a != b) -> option1 :: (a == b) -> option2 fi Statement pertama berfungsi sebagai guard Jika lebih dari satu guard yang executable, dipilih salah satu secara random Jika semua guard tidak ada yang executable, maka proses menjadi blocked sampai ada salah satu yang bisa dieksekusi PROMELA & SPIN - Budi Rahardjo

PROMELA & SPIN - Budi Rahardjo Repetition byte count; proctype counter() { do :: count = count +1 :: count = count -1 :: (count == 0) -> break od } Hanya ada satu option yang dapat dieksekusi pada satu saat. PROMELA & SPIN - Budi Rahardjo

PROMELA & SPIN - Budi Rahardjo Jump proctype Euclid(in x, y) { do :: (x > y) -> x = x – y :: (x < y) -> y = y – x :: (x == y) -> goto done od done: skip } PROMELA & SPIN - Budi Rahardjo