Showing posts with label Pemrograman. Show all posts
Showing posts with label Pemrograman. Show all posts

Wednesday, March 5, 2014

CARA PENANGANAN KESALAHAN DALAM PEMROGRAMAN

- 0 comments
Sebuah kompilator akan sering menemui program yang mengandung kesalahan, maka kompilator harus memiliki strategi apa yang harus dilakukan untuk menangani kesalahan - kesalahan tersebut.

1        Jenis – jenis Kesalahan
n  Kesalahan Leksikal
Misalnya kesalahan mengeja keyword,
contoh: then ditulis ten
n  Kesalahan Sintaks
Misalnya pada operasi aritmatika kekurangan jumlah paranthesis (kurung).
contoh : A:=X+(B*(C+D)         
n  Kesalahan Semantik
o   Tipe data yang salah, misal tipe data integer digunakan untuk variabel string.
    Contoh :        Var     Siswa : Integer
                                 Siswa := 'Aka'           {tipe string}
o  Variabel belum didefinisikan tetapi digunakan dalam operasi.
    Contoh :        B := B + 1      {B belum didefinisikan}

2        Penanganan Kesalahan
n  Prosedur penanganan kesalahan terdiri dari :
·           Mendeteksi kesalahan
·      Melaporkan kesalahan
·      Tindak lanjut perbaikan / pemulihan
n  Pelaporan kesalahan yang dilakukan oleh sebuah kompilator yang menemukan kesalahan meliputi :
·      Kode kesalahan
·      Pesan kesalahan dalam bahasa natural
·      Nama dan atribut identifier
·      Tipe – tipe yang terkait bila type checking
Contoh : Error Message : Error 162  jumlah: unknown identifier
Ø  Kode kesalahan = 162
Ø  Pesan kesalahan = unknown identifier
Ø  Nama identifier = jumlah
Adanya pesan kesalahan tersebut akan memudahkan pemrogram dalam mencari dan mengoreksi sumber dari kesalahan.
n  Pada saat kompilator menemukan kesalahan terdapat beberapa tingkatan reaksi diantaranya adalah :
a.     Reaksi yang tidak dapat diterima (tidak melaporkan error)
·         Kompilator crash : berhenti atau hang
·         Looping : kompilator masih berjalan tapi tidak pernah berakhir karena looping tak berhingga (indefinite/onbounded loop)
·         Menghasilkan program objek yang salah : kompilator melanjutkan proses sampai selesai tapi program objek yang dihasilkan salah. Ini berbahaya bila tidak diketahui pemrogram, karena baru akan muncul saat program dieksekusi.
b.  Reaksi yang benar tapi kurang dapat diterima dan kurang bermanfaat. Kompilator menemukan kesalahan pertama, melaporkannya, lalu berhenti (halt). Ini bisa muncul bila pembuat kompilator menganggap jarang terjadi kemunculan error dalam program sehingga kemampuan kompilator untuk mendeteksi dan melaporkan kesalahan hanya satu untuk setiap kali kompilasi. Pemrogram akan membuang waktu untuk melakukan pengulangan kompilasi setiap kali terdapat sebuah error.                 
c.  Reaksi yang dapat diterima
·           Reaksi yang sudah dapat dilakukan, yaitu kompilator melaporkan kesalahan / error, dan selanjutnya melakukan:
Ø Recovery / pemulihan, lalu melanjutkan menemukan kesalahan / error yang lain bila masih ada.
Ø Repair / Perbaikan kesalahan, lalu melanjutkan proses translasi dan menghasilkan program objek yang valid
Kebanyakan kompilator dewasa ini sudah memiliki kemampuan recovery dan repair.
·         Reaksi yang belum dapat dilakukan, yaitu kompilator mengkoreksi kesalahan, lalu menghasilkan program objek sesuai dengan yang diinginkan pemrogram. Disini komputernya sudah memiliki kecerdasan untuk mengetahui maksud pemrogram. Tingkatan respon ini belum dapat diimplementasikan pada kompilator yang ada dewasa ini.

3        Pemulihan Kesalahan
Tujuannya mengembalikan kondisi parser ke kondisi stabil (supaya bisa melanjutkan proses parsing ke posisi selanjutnya). Strategi yang dilakukan error recovery sebagai berikut :
v  Mekanisme Ad Hoc
Recovery yang dilakukan tergantung dari pembuat kompilator sendiri/Spesifik, dan tidak terikat pada suatu aturan tertentu. Cara ini biasa disebut juga special purpose error recovery.
v  Syntax Directed Recovery
Melakukan recovery berdasarkan syntax
Contoh : ada program
                               begin
                                          A:=A+1
                                                  B:=B+1;
                                                 C:=C+1
                               end;
kompilator akan mengenali sebagai (dalam notasi BNF)
          begin < statement>?<statement>;<statement>end;
? akan diperlakukan sebagai “;”
v  Secondary Error Recovery
Berguna untuk melokalisir kesalahan / error, caranya :
·           Panic mode
Maju terus dan mengabaikan teks sampai bertemu delimeter (misal ‘;’)
contoh :
                IF A := 1
                    Kondisi := true;
Teks diatas terjadi kesalahan karena tidak ada instruksi THEN, kompilator akan maju terus sampai bertemu ‘;’
·      Unit deletion
Menghapus keseluruhan suatu unit sintaktik (misal: <block>,<exp>,<statement> dan sebagainya), efeknya sama dengan panic mode tetapi unit deletion memelihara kebenaran sintaksis dari source program dan mempermudah untuk melakukan error repairing lebih lanjut.
v  Context Sensitive Recovery
          Berkaitan dengan semantik,misal bila terdapat variabel yang belum dideklarasikan(undifined variabel) maka diasumsikan tipenya berdasarkan kemunculannya.
Contoh :
                   B:= 'nama'
sementara diawal program variabel B belum dideklarasikan, maka  berdasarkan kemunculannya diasumsikan variabel B bertipe string.

4        Error Repair
Bertujuan untuk memodifikasi source program dari kesalahan dan membuatnya valid sehingga memungkinkan kompilator untuk melakukan translasi program yang mana akan dialirkan ketahapan selanjutnya pada proses kompilasi. Mekanisme error repair meliputi :
Ø  Mekanisme Ad Hoc
Tergantung dari pembuat kompilator sendiri / spesifik.
Ø  Syntax Directed Repair
Menyisipkan simbol terminal yang dianggap hilang atau membuang terminal penyebab kesalahan
Contoh :
                                           While a<1
                                            I:=I+1;
Kompilator akan menyisipkan DO karena kurang simbol DO
contoh lain :
                                 Procedure Increment;
                                 begin
                                          x:=x+1;
                                 end;
                                 end;
terdapat kelebihan simbol end, yang menyebabkan kesalahan maka kompilator akan membuangnya.
Ø  Context Sensitive Repair
Perbaikan dilakukan pada kesalahan :
·           Tipe identifier. Diatasi dengan membangkitkan identifier dummy, misalkan :
                       Var A : string;
                       begin
                             A:=0;
                                 end;
·         Tipe konstanta. Diatasi dengan membangkitkan konstanta baru dengan tipe yang tepat.
Ø  Spelling repair
Memperbaiki kesalahan pengetikan pada identifier, misal :
                       WHILLE A = 1 DO
 Identifier yang salah tersebut akan diperbaiki menjadi WHILE
[Continue reading...]

Sunday, March 24, 2013

Database

- 0 comments
Database adalah suatu kumpulan data-data yang disusun sedemikian rupa sehingga membentuk informasi yang sangat berguna. Database terbentuk dari sekelompok data-data yang memiliki jenis/sifat sama. Ambil contoh, data-data berupa nama-nama, kelas-kelas, alamat-alamat. Semua data tersebut dikumpulkan menjadi satu menjadi kelompok data baru, sebut saja sebagai data-data mahasiswa. Demikian juga, kumpulan dari data-data mahasiswa, data-data dosen, data-data keuangan dan lainnya dapat dikumpulkan lagi menjadi kelompok besar, misalkan data-data politeknik elektronika. Bahkan dalam perkembangannya, data-data tersebut dapat berbentuk berbagai macam data, misalkan dapat berupa program, lembaran-lembaran untuk entry (memasukkan) data, laporan-laporan. Kesemuanya itu dapat dikumpulkan menjadi satu yang disebut dengan database.

Perlunya Database
            Data secara umum dapat dikatakan sebagai segala sesuatu yang dapat dikumpulkan. Tentu saja hal ini akan membuat segala sesuatu di dunia ini menjadi data, dan masing masing dapat dikumpulkan menurut jenisnya. Segala bentuk catatan mengenai data-data tersebut sebenarnya dapat dianggap sebagai database (tempat kumpulan data-data). Biasanya catatan dari data-data tersebut dilakukan dengan relatif sederhana dan dilakukan dengan cara manual (dicatat di atas lembaran-lembaran kertas, atau paling tidak diketik menggunakan program aplikasi tertentu). Setelah data-data tersebut dikumpulkan, biasanya diperlukan untuk pembuatan laporan, pengambilan keputusan atau segala sesuatu bentuk pengolahan yang berhubungan dengan data tersebut.
            Jika data-data tersebut tercatat secara manual, maka segala bentuk pengolahan juga dilakukan secara manual (disusun, dihitung atau dibuat laporannya secara manual). Cara ini tentu saja membutuhkan ekstra tenaga dan waktu. Dan lebih sering lagi, diperlukan pengumpulan data-data yang sejenis secara berkali-kali dan dilakukan juga pengolahan dan pembuatan laporan secara berkali-kali pula. Bisa dibayangkan ini merupakan pekerjaan yang sangat membosankan.
            Dari kenyataan tersebut, akan lebih mudah jika dibuat suatu sistem yang digunakan untuk menyimpan data-data tersebut secara lebih terorganisasi, dan dengan bantuan program-program aplikasi tertentu, data-data tersebut dapat diolah dan dibuat laporannya secara lebih cepat dan lebih mudah. Hal inilah yang menjadikan perlunya dibuat sistem database.

Beberapa Jenis Database
            Meskipun sebenarnya tujuan dari database tersebut sama, yaitu lebih mempermudah dalam pengolahan data, namun caranya ada berbagai macam. Macam dari database tersebut dapat dilihat dari bentuk konfigurasi sistemnya atau dari bentuk/isi dari database tersebut.
            Ada beberapa jenis dari database, mulai dari yang menggunakan text biasa, menggunakan exel, lotus, foxpro, dbase, paradoc, access, oracle, SQL dan banyak lagi. Masing-masing dapat berbeda dari sisi format datanya, fasilitas yang disediakan dan teknik pengolah databasenya (database engine).

Bentuk Umum Database
            Seperti pada uraian-uraian sebelumnya, database terdiri dari kumpulan sekelompok data, dan biasanya dinyatakan dalam bentuk tabel. Data-data tersebut tersimpan dalam suatu file.
[Continue reading...]

CSS - Cascading Style Sheets

- 0 comments

Introduksi

Style Sheet adalah template yang mengontrol pemformatan tag HTML pada halaman web anda. Bila anda telah terbiasa menggunakan Microsoft Word, anda dapat melihat bahwa konsep Style Sheet mirip dengan template pada Microsoft Word: anda dapat megubah penampilan pada dokumen Word dengan mengubah format pada style dokumen. Begitu pula anda dapat mengubah penampilan halaman web dengan mengubah format pada tag HTML tertentu melalui Style Sheet, untuk selanjutnya menggantikan spesifikasi default dari browser untuk tag-tag tersebut.
Anda dapat mengambil keuntungan dengan menggunakan Style Sheet ini dengan tiga alasan utama: pemformatan tambahan, kontrol yang lebih baik, dan perubahan yang lebih mudah.

Dukungan Browser

Style Sheet relatif baru pada web. Internet Explorer 3.0 keluaran Microsoft adalah web browser pertama yang mendukung Style Sheet. Implementasi Style Sheet pada Internet Explorer 3.0 berdasarkan pada draft World Wide Web Consortium (W3C) yang berjudul “Cascading Style Sheets, Level 1” (diterbitkan pada bulan Mei 1996, lihat http://www.w3.org/pub/WWW/TR/WD-css1.html). Netscape juga telah mengindikasikan bahwa mereka akan mendukung Style Sheet pada versi-versi terbaru browsernya. Browser yang tidak mendukung Style Sheet menampilkan halaman web berdasarkan spesifikasi default browser tersebut.

3 Cara Untuk Menambahkan Style Pada Web

Style Sheet dapat digunakan dengan 3 cara, sesuai dengan kebutuhan anda:
  • Dengan membuat link ke file Style Sheet dari file HTML. Metode seperti ini memungkinkan anda mengubah style sejumlah halaman web dengan hanya mengedit satu file Style Sheet.
  • Dengan menyisipkan Style Sheet pada file HTML. Metode seperti ini memungkinkan anda mengubah style suatu halaman web dengan hanya mengedit beberapa baris Style Sheet.
  • Dengan menyisipkan secara inline pada tag dalam file HTML. Hal ini memberi cara tercepat untuk mengubah suatu tag, sejumlah tag, atau satu blok informasi pada halaman web.
Anda dapat menggunakan satu, dua, atau ketiga cara tersebut pada halaman web.

Sintax Dasar

Baik Style Sheet yang dilink maupun yang disisipkan memiliki satu atau lebih definisi style. (Sintax inline kadang berbeda). Suatu definisi style terdiri dari suatu tag HTML (tag apapun), diikuti oleh sejumlah properti untuk tag tersebut yang terletak diantara tanda kurung kurawal. Tiap properti diidentifikasi oleh nama properti, diikuti oleh titik dua dan nilai properti. Properti ganda dipisahkan oleh titik koma. Sebagi contoh, definisi style berikut memberi tag <H1> ukuran font yang spesifik (15 point), dan ketebalan huruf (boldface):
            H1 {font-size: 15pt;
                font-weight: bold}

Anda kemudian dapat membuat definisi style untuk sejumlah tag HTML dan menempatkannya pada file terpisah atau sisipkan langsung pada halaman web.

Membuat Link ke Style Sheet

Untuk membuat link ke Style Sheet eksternal, anda dapat dengan mudah membuat sebuah file berisi definisi style kemudian simpan (save) dengan ekstensi .CSS, kemudian buat link ke file tersebut dari halaman web. Dengan cara ini, anda dapat memanfaatkan Style Sheet yang sama untuk beberapa halaman dalam site anda.
Sebagai contoh, bila Style Sheet anda dinamai style-saya.css dan terletak di alamat http://alamat-internet/style-saya.css, diantara tag <HEAD> anda harus menambahkan:
<HEAD>
<TITLE>Judul artikel</TITLE>
<LINK REL=STYLESHEET
HREF="http://alamat-internet/style-saya.css"
TYPE="text/css">
</HEAD>
  

Menyisipkan blok STYLE

Untuk menyisipkan (embed) Style Sheet, tambahkan blok <STYLE> </STYLE> di awal dokumen, di antara tag-tag <HTML> dan <BODY>. Hal ini memungkinkan anda unutk mengubah penampilan satu halaman web. Tag <STYLE> memilki satu parameter yaitu TYPE, yang menspesifikasi type media internet sebagai “text/css” (memungkinkan browser yang tidak mendukung type ini untuk mengabaikan Style Sheet). Tag <STYLE> diikuti oleh sejumlah definisi style dan berakhir dengan tag </STYLE>.
<HTML>
<STYLE TYPE="text/css">
<!--
  BODY {font: 10pt "Arial"}
  H1 {font: 15pt/17pt "Arial";
      font-weight: bold;
      color: maroon}
  H2 {font: 13pt/15pt "Arial";
      font-weight: bold;
      color: blue}
  P  {font: 10pt/12pt "Arial";
      color: black}
-->
</STYLE>
<BODY>
...
</BODY>
</HTML>

Menggunakan inline style

Bila anda menginginkan pemformatan pada sebagian kecil saja dari web anda, anda dapat menggunakan inline style.
Definisi style pada inline style hanya berpengaruh pada tag dimana inline style tersebut berada. Contoh inline style pada tag <p> berikut:
<P STYLE="margin-left: 0.5in; margin-right:0.5in">
This line will be indented on the left and right.
<P>
This line will receive no indentation.
Hasilnya akan terlihat seperti ini

This line will be indented on the left and right.
 

This line will receive no indentation.
 
 

Opsi Tambahan

Sederhanakan melalui pengelompokkan

Bila anda ingin menerapkan pemformatan yang sama bagi berbagai tag, misal:
  H1 {font-size: 15pt;
      font-weight: bold;
      color: maroon}
  H2 {font-size: 15pt;
      font-weight: bold;
      color: maroon}
  H3 {font-size: 15pt;
      font-weight: bold;
      color: maroon}
anda dapat mengelompokkannya menjadi
  H1, H2, H3
{font-size: 15pt;
font-weight: bold;
color: maroon}
Anda dapat pula mengelompokkan spesifikasi pemformatan. Misal:
  H1 {font-size: 15pt;
      line-height: 17pt;
      font-weight: bold;
      font-family: "Arial"
      font-style: normal}
dapat disederhanakan menjadi seperti berikut ini
  H1 {font:15pt/17pt bold "Arial" normal} 

Variasi melalui class

Gunakan class untuk membuat berbagai macam variasi bagi satu tag HTML. Sebagi contoh, bila anda ingin menggunakan tiga warna untuk heading H1 (katakanlah bergantung pada konteks), anda dapat mendefinisikannnya dalam tiga class dalam STYLE tag berikut:
<STYLE>
  H1.red {font: 15pt/17pt;
          color: red}
  H1.green {font: 15pt/17pt;
          color: green}
  H1.blue {font: 15pt/17pt;
          color: blue}
</STYLE>
Pada halaman web gunakan class tersebut
<H1 CLASS=red>This is the red heading</H1>
...
<H1 CLASS=blue>This is the blue heading</H1>
...
<H1 CLASS=green>You get the picture...</H1>
 

Link

Implementasi Style Sheet juga memungkinkan anda mengubah penampilan dari link (teks yang diklik oleh user untuk lompat ke halaman lain) dengan memberikan dua class yang telah didefinisikan pada tag <A>:
  • A:link menunjukkan link yang belum dikunjungi
  • A:visited menunjukkan link yang telah diklik/dikunjungi oleh user
Anda dapat mengeset sejumlah properti pemformatan teks pada class-class A tersebut, termasuk color, Font-size, font-weight, dan text-decoration. Sebagai contoh, untuk menentukan warna yang spesifik pada tiga tipe link, anda dapat menspesifikasi:
  A:link {color: red}
  A:visited {color: blue}
  A:active {color: orange}
Dengan menambahkan text-decoration “none” menghilangkan garis bawah pada teks link
  A:visited {color: blue; text-decoration: none}

Komentar

Anda dapat menambahkan komentar pada Style Sheet. Komentar dapat ditulis pada baris manapun dalam spesifikasi style di antara tanda /* dan */ misal:
  H1 {font: 20pt/22pt
bold; color=#00FF00} /* Hijau untuk heading 1 */

[Continue reading...]
 
Copyright © . Only-me - Posts · Comments
Theme Template by BTDesigner · Powered by Blogger