Translate

Senin, 01 Oktober 2012

Modul Praktek Fakultas Ilmu Komputer (sistem informasi)




    Modul Fakultas Ilmu Komputer

Sumber : http://www.ilab.gunadarma.ac.id/Info/index.php?option=com_content&view=article&id=162&Itemid=128


MODUL FAKULTAS ILMU KOMPUTER

Jurusan
Praktikum
Nama Praktikum
Kode Mata Kuliah
Peserta Praktikum
Download Modul Pertemuan
Minggu
1
Minggu  2
Minggu  3
Minggu  4
Minggu  5
Minggu  6
Minggu  7
Sistem Informasi
Sistem Basis Data 1
AK011317
3-KA (S1 Sistem Informasi)
M1M2M3M4M5M6M7
Pemrograman Berorientasi Objek
AK011312
3-KA (S1 Siste#mce_temp_url#m Informasi)
M1M2M3M4M5M6M7
Teknik Pemrograman Terstruktur 1
IT011230
2-KA (S1 Sistem Informasi)
M1M2M3M4M5M6M7
Matematika Lanjut 1
IT011212
2-KA (S1 Sistem Informasi)
M1M2M3M4M5M6M7
Statistika 1
IT011226
2- KA(S1-Sistem Informasi )
M1M2M3M4M5M6M7
Pengantar Teknologi Sistem Informasi
IT011416
1-KA (S1 Sistem Informasi)
M1M2M3M4M5M6M7
Prak. Algoritma & Pemrograman 1
IT011119
1-KA (S1-Sistem Informasi )
M1M2M3M4M5M6M

ALGORITMA PEMOGRAMAN 1C (materi SEMANTIK)




SEMANTIK

Syntax mendefinisikan suatu bentuk      program yang benar dari suatu bahasa.


Semantik mendefinisikan arti dari      program yang benar secara syntax dari bahasa tersebut.
Semantik    suatu    bahasa    membutuhkan    semacam    ekpresi    untuk mengirimkan suatu nilai kebenaran (TRUE, FALSE, NOT atau nilai INTEGER). Dalam  banyak  kasus,  program  hanya  dapat  dieksekusi  jika  benar  serta mengikuti aturan syntax dan semantic.
Semantic  suatu  bahasa  pemrograman  mempunyai  banyak  potensial, beberapa diantaranya adalah:
1.  Standarisasi bahasa pemrograman
Banyak   usaha   yang   dilakukan   untuk   menstandarisasi   bahasa
pemrograman  seperti  COBOL,  PASCAL,  FORTRAN,dsb  untuk  lebih memudahkan programmer menggunakannya.
2.  Referensi untuk user
Programmer  membutuhkan  suatu  dokumentasi  yang  pasti  supaya
user dapat mengoperasikan program yang dibuat dengan baik
3.  Pembuktian dari program yang benar
Secara matematis, program tidak mungkin bekerja dan berjalan jika
tidak ada semantic
4.  Referensi untuk implementor
Semantis akan mencegah suatu gaya bahasa yang tidak kompatibel yang  diwujudkan  dalam   suatu  implementasi  berbeda  walaupun dengan bahasa yang sama
5.  Implementasi otomatis
Suatu  tool  dapat  secara  otomatis  membuat  translasi  bahasa  yang
melebihi   parsing.   Hal   ini   dapat   dilakukan   jika   semantic   sudah dirumuskan.
6.  Pemahaman yang lebih baik dari desain bahasa
Jika suatu rumusan semantic sulit untuk dideskripsikan secara formal maka  rumusan  semantic  tersebut  juga  akan  sulit  digunakan  oleh programmer.


Dua  alasan  mengapa  perlu  memahami  suatu  desain  bahasa  pemrograman dengan lebih baik yaitu : 

1.  Memahami  dengan  lebih  baik  suatu  desain  bahasa  pemrograman berarti membantu menguasai dan menggunakan bahasa tersebut.
2.  Memahami  dengan  lebih  baik  suatu  desain  bahasa  pemrograman secara  detail  membantu  programmer  untuk  memperbaiki  proses pengembangan program menjadi lebih baik.


Teknik Semantic :
1.  Operational Semantic
Pendekatan ini  mendefenisikan suatu mesin buatan (abstrak) dengan
instruksi-instruksi  primitive,  tidak perlu realistic, tetapi  dengan cukup sederhana  supaya  tidak  muncul  kesalahpahaman.  Deskripsi  semantic dari   bahasa   pemrograman   menetukan   suatu    translasi   ke   kode. semantik   operasional   menceritakan   bagaimana   perhitungan   yang dilakukan      dengan      mendefinisikan      bagaimana      mensimulasikan pelaksanaan program.
2.  Detonational Semantic
menggambarkan apa yang diproses dengan objek matematika Pendefinisian  denotasi  sebuah  bahasa  terdiri  dari  tiga  bagian: sintaks    abstrak    dari    bahasa    itu,    aljabar    semantik    yang menggambarkan model komputasi dan fungsi nilai
Pada pendekatan ini diberikan suatu fungsi yang memetakan program- program komputer yang ditunjukkan ke dalam bentuk nilai-nilai abstrak secara matematika (angka, nilai kebenaran, fungsi matematika, dsb)
3.  Axiomatic Semantic
Aksiomatik semantik bahasa pemrograman mendefinisikan sebuah teori
matematika
program yang ditulis dalam bahasa.
Pada   pendekatan   ini   dedefenisikan   suatu   tindakan   program   yang dibangun  dengan  properti  logika  yang  menyimpan  status  computer sebelum dan sesudah dieksekusi.
 Rumus semantik terbagi jadi 3:
 {P} c {Q}
 Di mana c adalah struktur kendali dalam bhs pemrograman, P dan Q adalah  pernyataan  sehubungan  dengan  properti  dari  objek  program (seringkali variabel). P adalah prekondisi dan Q adalah poskondisi.
 Arti dari
 {P} c {Q}
 Adalah jika c dilaksanakan di mana P sudah dipenuhi dan c sudah selesai, maka c diselesaikan pada saat pernyataan Q dipenuhi  


Contoh :
Program to compute S = sumi=1
nA[i]
S,I := 0,0 while I < n do
S,I := S+A[I+1],I+1 end

4.  Algebraic Semantic
Semantik Aljabar menggambarkan arti sebuah program dengan definisi
aljabar.
Pada  pendekatan  ini  dipertimbangkan  suatu  objek  komputasi  yang
menjadi     syarat-syarat     dalam     aljabar     multi     stored.     Program
mengimplementasikan  fungsi  yang  dapat  diwujudkan  dengan  suatu persamaan di antara syarat-syarat tersebut.




Contoh :
Defenisi aljabar dari integer Stack
 Domains:
 Nat (the natural numbers
 Stack ( of natural numbers)
 Bool (boolean values)
 Functions:
 newStack: () -> Stack
 push : (Nat, Stack) -> Stack
 pop: Stack -> Stack
 top: Stack -> Nat
 empty : Stack -> Bool
 Axioms:  or



 pop(push(N,S)) = S
 top(push(N,S)) = N
 empty(push(N,S)) = false
 empty(newStack()) = true
 Errors:
 pop(newStack())
 Defining Equations:
 newStack() = []
 push(N,S) = [N|S]
 pop([N|S]) = S
 top([N|S])  =  N



5.  Translation Semantic
Menterjemahkan  sebuah  program  ke  bahasa  lain,  biasanya  bahasa
mesin
Seperti  dalam  pengambilan  keputusan  secara  alamiah dengan  logika,
program    diberi    suatu    arti    dari    aturan    yang    diturunkan    yang menggambarkan penilaian gagasan suatu bahasa.


Proses analisa sintaks dan analisa semantic merupakan 2 proses yang sangat erat kaitannya sulit untuk dipisahkan.
Contoh : A:=(A+B)*(C+D)


Parser   hanya   akan   mengenali   symbol-simbol   :=’,   +’,   *’,   parser   tidak mengetahui makna dari symbol-simbol tersebut. Untuk mengenali  makna dari simbol-simbol tersebut maka compiler memanggil routin semantics.
Untuk mengetahui makna, maka routin ini akan memeriksa :
Apakah variabel yang ada telah didefenisikan terlebih dahulu
Apakah variabel-variabel tersebut tipenya sama
Apakah operand yang akan dioperasikan tersebut ada nilainy, dst
Menggunakan table symbol
Pemeriksaan bisa dilakukan pada table identifier, table display dsb


Pengecekkan yang dilakukan dapat berupa :
   Memeriksa penggunaan nama-nama (keberlakuannya) Duplikasi
Apakah  sebuah  nama  terjadi  pendefenisian  lebih  dari  2  kali.
Pengecekkan dilakuak pada bagian pengelolaan block.
Terdefenisi
Apakah nama yang dipakai pada program sudah terdefenisi atau belum. Pengecekkan dilakukan pada semua tempat kecuali block.
   Memeriksa tipe
Melakuakan  pemeriksaan  terhadap  kesesuaian  tipe  dalam  statemen-
staemen yang ada. Misalnya bila terdapat suatu operasi, diperiksa tipe operandnya.
Contoh :
   Ekspresi yang mengikuti if berarti tipenya Boolean, akan diperiksa
tipe identifier dan tipe ekspresinya
   Bila  ada  operasi  antara  2  operand  maka  tipe  operand  yang pertama harus bisa dioperasikan dengan operand yang kedua


Analisa Semantic sering juga digunakan dengan intermediate code yang akan menghasilkan intermedia code


 SYNTAX DIRECTED TRANSLATOR

Kode  antara  (intermediate  code)  adalah  sebuah  representasi  yang disiapkan untuk mesin  abstrak tertentu. Dua sifat yang harus dipenuhi oleh kode antara adalah :
1.  Dapat dihasilkan dengan mudah
2.  Mudah ditranslasikan menjadi program sasaran (target program)
Representasi  kode  antara  biasanya  berbentuk  tiga  alamat  (three  address code), baik berbentuk quadruples atau triples.



Kode antara (intermediate code) dibentuk dari sebuah kalimat X dalam bahasa context free. Kalimat  ini adalah keluaran dari parser. Kalimat ini tentu saja dapat dinyatakan dalam represntasi pohon  parsing (parse tree). Syntax directed translation adalah suatu urutan proses yang mentranslasikan parse tree menjadi kode  antara. Tahap pertama dari pembentukkan kode antara adalah evaluasi atribut setiap  tokn adalah semua informasi yang disimpan di dalam table symbol. Evaluasi dari parse tree.
Pandang sebuah node n yang ditandai sebuah token x pada parse tree.
Kita  tuliskan  x.a  untuk  menyatakan  atribut  a  untuk  token  x  pada  node  n tersebut.  Nilai  x.a  pada  node  n  tersebut  dievaluasi  dengan  menggunakan aturan semantic untuk atribut a. Aturan semantic ini ditetapkan untuk setiap produksi   dimana   x   adalah   ruas   kiri   produksi   sebuah   parse   tree   yang menyertakan nilai-nilai atribut pada setiap nodenya dinamakan nonated parse tree. Kumpulan aturan yang menetapkan aturan-aturan semantic untuk setiap tahap produksinyadinamakan syntax directed definition.
Untuk  jelasnya  berikut  ini  adalah  sebuah  syntax  directed  translation yang mentranslasikan ekspresi infix menjadi ekspresi postfix. Ekspresi infix ini dapat dipandang sebagai sebuah kalimat yang dihasilkan oleh parser.
Contoh :
Diketahui : 1. Kalimat X: 9-5+2
2. Grammar Q = {E    E+T| E T | I, T    0|1|2|...|9}
3. Syntax directed definition



PRAGMATIG
Pragmatic sebuah bahasa pemrograman berhubungan dengan :
 Kemudahan Implementasi
 Efisiensi dari suatu Aplikasi
 Metodologi Pemrograman contoh :
 Pemanfaatan dan Alokasi memori yang tepat
 Kecepatan pemrosesan
 Pada bhs.prog JAVA atau C++


Pragmatik  adl  aspek  praktis  tentang  bagaimana  membangun  dan  memakai fitur-fitur dari sebuah bahasa pemrogramang untuk mencapai tujuan.



1.   Heap & Pointer
Variabel heap adalah variabel yang bisa diciptakan dan dihapus kapan saja.
Heap variabel tidak memiliki nama dan bisa diakses dengan pointer. Heap   adalah   sebuah   blok   memori   di   mana   di   dalamnya   ada potongan-potongan informasi itu dialokasi dan  dikosongkan dengan cara tertentu
Jangka waktu hidup heap itu dimulai dari saat dia dibuat hingga dia tidak diakses lagi.
Kadang ada sebuah operasi deallocator yang memaksa penghapusan sebuah variabel heap.
Ketika sebuah variabel heap dihapus dia sebenarnya masih ada dalam memori tapi tidak bisa diakses, sehingga menjadi garbage
Jika seorang programmer bisa men-dealokasi variabel, akan terjadi masalah.  Pointer  yang   mengarah  ke  variabel  heap  yang  sudah terhapus, maka variabel ini menjadi dangling reference
Garbage  dan  dangling  reference  menjadi  sumber  kesulitan  bagi programmer
Solusi I: Batasi penggunaannya sehingga reference ke variabel lokal tidak diakses untuk waktu yang lama
Solusi II: dengan menggunakan reference count
Solusi III: garbage collection
2.  Coroutines
 Memisahkan simulation language dengan problem
 Menyediakan   struktur   kontrol   yang   lebih   natural   dari   pada subprogram pada umumnya
 Coroutines   dapat   diangggap   sebagai   subprogram   yang   tidak dibutuhkan untuk  menghentikan, kemudian memanggil program dan  melaksanakan  dari  titik  dimana  eksekusi  dihentikan.  Tapi
coroutines tidak boleh rekursif.


 3.  Safety
 Pemeriksaan penulisan nama variabel (konsistensi)
 Pendeklarasian yang tepat
Menentukan apakah jenis variabel yang dimaksud sesuai dengan penggunaan variabel.
 Fasilitas pengecekan yang mengurangi redundansi
Compiler cek setiap penggunaan   dari setiap entitas agar tidak berulang.

BISA JUGA DOWNLOAD MATERI LAINNYA :


  • KONKUREN (68)
  • IMPERATIF (219)
  • FUNGSIONAL (102)
  • VALUE,DOMAIN&TYPE (0)
  • abstraksi dan generalisasi (23)
  • pertemuan 2 (134)
  • pertemuan 2 (85)
  • pengantar (76)
  • Semantik KA_2 (97)
  •