Wednesday, November 23, 2011

Bahsa Pemograman Pragmatics


Pragmatics


Pragmatik dalam  bahasa pemrograman berhubungan dengan kemudahan pelaksanaan, efisiensi
dalam aplikasi, dan metodologi pemrograman.
Slonneger & Kurtz

 Pragmatik berhubungan dengan kemudahan implementasi dan efisiensi. Dalam hubungannya dengan bahasa pemrograman, seorang programmer harus bisa memastikan efisiensi dalam melakukan peng-coding-an.

Keywords and phrases: strict, non-strict, eager evaluation, lazy evaluation, normal-order evaluation, binding time, passing by value, passing by reference, passing by name, passing by value, passing by result, passing by value-result, aliasing.

Heaps and Pointers

Memperlakukan abstrak prosedur dan berfungsi sebagai nilai-nilai kelas pertama adalah penyebab lain potensi menjuntai referensi. (Watt)

Sebuah variabel heap adalah salah satu yang dapat dibuat dan dihapus setiap saat. Variabel Heap bersifat anonim dan diakses melalui pointer. Heap adalah sebuah blok penyimpanan di mana potongan dialokasikan dan dibebaskan dalam beberapa mannner yang relatif tidak terstruktur.
Awalnya elemen heap dihubungkan bersama-sama dalam beberapa mode untuk membentuk daftar
ruang kosong. Penciptaan sebuah variabel diminta oleh sebuah operasi disebut pengalokasi yang mengembalikan pointer ke head variabel baru dibuat. Untuk mengalokasikan elemen, elemen pertama dalam daftar akan dihapus dari daftar dan pointer untuk itu dikembalikan ke operasi meminta penyimpanan.
Sering ada operasi yang disebut deallocator paksa menghapus variabel
head yang di berikan. Ketika suatu unsur adalah deallocated (dibebaskan), itu hanya terkait kembali di kepala daftar gratis-ruang. Jika semua referensi ke variabel tumpukan dihancurkan, variabel tumpukan tidak dapat diakses dan menjadi sampah. Ketika variabel menjadi sampah, ruang memori tidak dapat digunakan oleh variabel lain karena sarana referensi itu harus ada dalam rangka untuk kembali ruang untuk daftar ruang bebas.
Ketika dealokasi berada di bawah kendali programmer, itu adalah potensi sumber masalah. Jika seorang programmer deallocates variabel, setiap pointer ke variabel yang tersisa tumpukan dihapus menjadi referensi menggantung.
Sampah dan menggantung referensi yang berpotensi menyusahkan bagi programmer. Jika sampah menumpuk, penyimpanan yang tersedia secara bertahap dikurangi sampai program mungkin tidak dapat melanjutkan karena kurangnya ruang bebas yang dikenal (ini juga disebut kebocoran memori).
Jika sebuah program mencoba untuk mengubah melalui referensi menggantung sebuah struktur yang telah deallocated (hancur), isi dari sebuah elemen freespace dapat dimodifikasi. Hal ini dapat menyebabkan sisa ruang bebas untuk menjadi sampah atau sebagian dari program untuk menjadi terkait dengan ruang bebas. Ruang deallocated bisa dialokasikan kembali untuk beberapa struktur lain yang mengakibatkan masalah yang sama.

Dalam hubungannya dengan bahasa pemrograman, seorang programmer harus bisa memastikan efisiensi dalam melakukan peng-coding-an. Dalam bahasa C, programmer diberikan kekuasaan untuk mengalokasikan memori. Sebagai akibatnya, apabila programmer lalai dalam mengontorl variabel-variabel yang dihasilkan dari hasil assignment pointer, maka akan terjadi kebocoran memori. Ini diakibatkan apabila seorang programmer mengcreate sebuah variabel pointer, dan kemudian menghapusnya, informasi tersebut masih ada dalam memori, hanya saja sudah tidak bisa diakses lagi.

Masalah acuan menjuntai bisa dihilangkan. Salah satu solusi adalah untuk membatasi tugas sehingga referensi ke variabel lokal mungkin tidak ditugaskan untuk variabel dengan seumur hidup lagi. Pembatasan ini mungkin memerlukan pemeriksaan runtime dan kadang-kadang membatasi programmer.
Solusi lain adalah untuk menjaga jumlah referensi dengan setiap variabel tumpukan. Integer disebut jumlah referensi yang terkait dengan setiap elemen tumpukan. Jumlah referensi menunjukkan jumlah dari pointer ke elemen yang ada. Awalnya menghitung diatur ke 1. Setiap kali pointer ke elemen yang dibuat jumlah referensi meningkat dan setiap kali pointer ke elemen ini hancur jumlah referensi menurun. Ruangnya tidak deallocated sampai jumlah referensi mencapai nol.

Metode acuan hasil penghitungan biaya overhead yang cukup besar dalam ruang dan waktu.
Solusi lain adalah untuk menyediakan pengumpulan sampah. Ide dasarnya adalah untuk memungkinkan sampah yang dihasilkan dalam rangka untuk menghindari referensi menggantung. Ketika daftar gratis-ruang kelelahan dan penyimpanan lebih lanjut diperlukan,
, perhitungan ditangguhkan dan prosedur khusus yang disebut kolektor sampah mulai yang mengidentifikasi sampah dan kembali ke daftar ruang bebas.

Ada dua tahap untuk pengumpulan sampah menandai fase dan fase mengumpulkan.
l Menandai fase: Fase menandai dimulai di luar tumpukan dengan pointer yang menunjuk ke tumpukan elemen aktif. Rantai pointer diikuti dan setiap elemen tumpukan dalam rantai ditandai untuk menunjukkan bahwa itu adalah aktif. Ketika fase ini selesai elemen tumpukan hanya aktif ditandai sebagai aktif.
l Mengumpulkan fase: Selama tahap mengumpulkan tumpukan dipindai dan setiap elemen yang tidak
aktif kembali ke daftar ruang bebas dan bit yang ditandai akan ulang untuk mempersiapkan pengumpulan sampah kemudian.
Ini ruang mungkin tidak dapat digunakan reclamed oleh seorang kolektor sampah. Sebuah variabel tumpukan hidup selama setiap referensi untuk itu ada.

Coroutines

Coroutines digunakan dalam bahasa simulasi diskrit dan, untuk beberapa masalah, menyediakan struktur kontrol yang lebih alami dari hirarki biasa panggilan subprogram.
Coroutines dapat dianggap sebagai subprogram yang tidak diperlukan untuk mengakhiri sebelum kembali ke rutinitas Alling. Pada titik kemudian memanggil program dapat (Resume) pelaksanaan coroutine pada titik dari mana eksekusi ditangguhkan. Coroutines kemudian muncul sebagai setara dengan melewati kontrol dari satu ke
yang lain yang diperlukan. Dari dua coroutines adalah wajar untuk memperpanjang ini untuk satu set coroutines.
Dari deskripsi yang diberikan dari coroutines, jelas bahwa coroutines tidak boleh rekursif. Hal ini memungkinkan kita untuk menggunakan hanya satu record aktivasi untuk coroutine masing-masing dan alamat setiap record aktivasi dapat statis dipertahankan.
Setiap record aktivasi diperluas untuk mencakup lokasi untuk menyimpan CI untuk coroutine sesuai.
Hal ini diinisialisasi dengan lokasi instruksi pertama dari coroutine tersebut. Ketika bertemu coroutine operasi melanjutkan, menyimpan alamat instruksi berikutnya di dalamnya catatan aktivasi sendiri. Alamat CI untuk kembali coroutine diperoleh dari catatan aktivasi coroutine dilanjutkan.
Safety
Tujuan dari deklarasi adalah dua kali lipat. Persyaratan bahwa semua nama dinyatakan sangat penting untuk menyediakan memeriksa ejaan. Hal ini tidak biasa bagi seorang programmer untuk misspell nama. Ketika deklarasi yang tidak diperlukan, tidak ada cara untuk menentukan apakah nama baru atau jika itu adalah salah mengeja nama privious.
Tujuan kedua dari deklarasi adalah membantu algoritma memeriksa jenis. Jenis pemeriksa dapat
menentukan apakah jenis variabel dimaksudkan sesuai dengan penggunaan variabel. Semacam ini memeriksa jenis
dapat dilakukan pada waktu kompilasi memungkinkan generasi kode lebih efisien karena jenis run time cek tidak perlu dilakukan.
memeriksa jenis - statis, dinamis
impor / ekspor
Deklarasi dan memeriksa jenis keselamatan yang kuat memfasilitasi dengan menyediakan redundansi. Ketika programmar
harus menentukan jenis setiap entitas, dan dapat menyatakan hanya satu entitas dengan identifier yang diberikan dalam diberikan lingkup; compiler kemudian hanya memeriksa setiap penggunaan masing-masing entitas terhadap peraturan jenis kaku. Dengan overloading atau tipe inferensi, kompiler harus menyimpulkan informasi yang tidak diberikan oleh programmer.
Hal ini rawan kesalahan karena kesalahan sedikit radikal dapat mempengaruhi apa kompiler tersebut.
Overloading dan tipe inferensi kurangnya redundansi.
Perspektif sejarah dan Further Reading
Pragmatik adalah cabang ilmu bahasa yang mempelajari struktur bahasa
secara eksternal, yakni bagaimana satuan kebahasaan itu digunakan dalam
komunikasi. Menurut Leech (1993), pragmatik adalah studi mengenai makna ujaran
dalam situasi tertentu. Sementara Levinson (dalam Siregar 2002) men-
definisikan pragmatik sebagai telaah mengenai relasi antar bahasa dan konteks
yang merupakan dasar bagi suatu catatan atau laporan pemahaman bahasa.
Dengan demikian ia merupakan telaah mengenai kemampuan pemakai bahasa
dalam menghubungkan serta menyerasikan kalimat-kalimat dan konteks
secara tepat.

    Pragmatik dan tindak tutur memandang konteks sebagai pengetahuan
bersama antara pembicara dan pendengar dan pengetahuan tersebut
mengarah pada interpretasi suatu tuturan. Pengetahuan atau konteks tertentu dapat
mengakibatkan manusia mengidentifikasi jenis-jenis tindak tutur yang berbeda.
Berbicara tentang pragmatik di dalam mangupa berarti berbicara
tentang penggunaan perangkat tindak tutur dalam tuturan. Kehadiran perangkat
tindak tutur ini ada yang wajib dan ada pula yang bersifat opsional bergantung
kepada kepentingannya. Searle (dalam Wijana 1969) mengatakan bahwa secara
pragmatis setidak-tidaknya ada tiga jenis tindakan yang dapat diwujudkan oleh
seorang penutur, yaitu tindak lokusi, tindak ilokusi dan tindak perlokusi.Tindak
lokusi adalah tindak tutur yang digunakan untuk menyatakan sesuatu, tindak
ilokusi adalah tindak yang digunakan selain untuk menyatakan sesuatu juga
digunakan untuk melakukan sesuatu sedangkan tindak perlokusi adalah tindak
tutur yang pengutaraannya dimaksudkan untuk mempengaruhi lawan tutur.
Berkaitan dengan hal ini untuk memahami metafora dalam upacara
mangupa harus terikat dengan konteks. Misalnya dalam masyarakat
Mandailing ditemukan ungkapan metaforis ulos na so ra buruk yang bermakna
adat yang tidak akan pernah punah. Adat itu dilambangkan kepada ulos yang
tidak akan rusak sampai kapanpun.

Wednesday, November 2, 2011

KONSEP DASAR PEMMOGRAMAN

Program komputer adalah sekumpulan instruksi yang dikenal oleh komputer dan disusun menurut urutan yang logis untuk menyelesaikan suatu masalah. Bahasa pemrograman adalah bahasa yang dapat diterjemahkan menjadi kumpulan perintah-perintah dasar tersebut. Penerjemahan dilakukan oleh program komputer yang disebut kompilator. Bahasa pemgrogram tingkat dasar, sebagai hirarki pertama, disebut juga bahasa generasi pertama, bahasa ini sangat tergantung pada jenis CPU yang dipakai oleh komputer itu. Bahasa ini sangat sulit dipelajari, karena sifatnya yang sangat tergantung pada mesinnya itu 2 (machine dependent). Untuk menguasai bahasa ini, harus dipelajari dan dikuasai teknologi dan arsitektur komputer, matematika diskrit, elektronika, dan lain-lain. Bahasa ini masih menggunakan simbol-simbol yang bersifat mnemonic.
Bahasa pemrograman tingkat tengah, sifatnya sudah lebih mudah daripada bahasa pemrograman tingkat dasar, perintah-perintahnya sudah lebih mudah dibaca sebab sudah menggunakan huruf-huruf.
Bahasa pemrograman tingkat tinggi adalah bahasa komputer yang sudah mirip dengan bahasa manusia. Perintah-perintahnya sudah dibuat dalam bahasa yang mudah dimengerti manusia, seperti PRINT, WRITE, IF, THEN, ELSE, dan lain-lain.

PEMROGRAMAN DAN BAHASA PEMROGRAMAN
Pemrograman dapat diklasifikasikan sebagai berikut [Rechenberg]:
1. Berorientasi prosedur (procedural oriented)
2. Berorientasi fungsi (functional oriented)
3. Berorientasi logik (logic oriented)
4. Berorientasi obyek (object oriented)

Masing-masing memiliki kelebihan tersendiri. Kadangkala dalam membangun suatu aplikasi dibutuhkan gabungan metode pemrograman tersebut. Misalnya dalam C++ dan Java (bahasa pemrograman berorientasi obyek), kita masih dapat menemukan tehnik-tehnik pemrograman berorientasi prosedur dalam setiap method/function member dalam obyek-obyeknya.
Suatu bahasa pemrograman pada asalnya hanya dapat digunakan dalam satu metode. Pascal mulanya untuk procedural-oriented, Lisp untuk functional-oriented, Smaltalk untuk object-oriented dan lain-lain. Seiring dengan perkembangan tehnologi informasi dan komputer, puluhan bahkan ratusan bahasa pemrograman baru lahir. Masing-masing memiliki keunikan dan kelebihan spesifik. Ada yang khusus untuk jenis komputer tertentu, ada pula yang khusus untuk paradigma pemrograman tertentu.



PRINSIP BAHASA

            Suatu bahasa program harus dirancang untuk memudahkan agar dapat dibaca dan ditulis untuk para pemakai manusianya dan pelaksanaan efisien pada perangkat keras yang tersedia.
Keadaan dapat dibaca dan ditulis dimudahkan oleh prinsip yang berikut.

Prinsip Kesederhanaan
Bahasa harus didasarkan atas yang paling sedikit

Prinsip Orthogonal
Fungsi mandiri harus dikendalikan oleh mekanisme mandiri.

Prinsip Keteraturan
Satu set object disebut reguler berkenaan dengan kondisi beberapa jika, dan hanya jika, kondisi dapat digunakan untuk masing-masing unsur set.

Prinsip Sifat Ekstensibilitas(dapat diperpanjang)
Object baru dari tiap kelas sintaktis mungkin dibangun (digambarkan) dari dasar dan digambarkan membangun dengan suatu cara sistematis.
Prinsip keteraturan dan ekstensibilitas memerlukan konsep dasar bahasa harus diterapkan secara konsisten dan yang bersifat universal.
SINTAKS
            Sintaks CSS terdiri dari tiga bagian: pemilih atau selektor (selector), sifat atau properti (property), dan nilai (value). “Selektor” biasanya adalah elemen atau tag HTML yang akan didefinisikan, “properti” adalah atribut yang akan diganti dengan “nilai” tertentu. Properti dan nilai dipisahkan dengan tanda titik dua (:) dan keduanya diapit oleh tanda kurung kurawal ({).
Jika suatu nilai mengandung spasi, nilai tersebut harus diapit dengan tanda petik ("). Untuk memberikan lebih dari satu properti bagi suatu selektor, pisahkan setiap kombinasi “properti:nilai” dengan tanda titik koma (;). Untuk membuat definisi gaya lebih mudah dibaca, definisi tiap properti dapat dilakukan per baris.
 
Contoh:
p { color: black }
div { font-family: "sans serif" }
pre { text-align:center; color:red; }
blockquote {
  text-align: center;
  color: black;
  font-family: arial

DATA

       Data  merupakan bahan yang akan di olah menjadi informasi sehingga daat digunakan oleh user atau pengguna .

1.      Tipe data dasar
      Merupakan tipe data primitif yang tidak terstruktur yang didefinidikan oleh bahasa pemograman .
Tipe data dasar dibagi 5 :
1.      Tipe data numerik
      Yaitu tipe data yg disetiap bahasa pemograman dapat dipastikan terdapat tipe data numerik seperti untuk menyimpan data yg berupa angka.

2.      Enumerasi
      Suatu urutan list dari nilai yg berbeda

3.      Boolean
      Tipe data untuk mempresentasikan true atau false

2.      Tipe data terstruktur
      Merupakan tipe data campuran dari berbgai tipe dasar, contohnya : array, reccord, string, list dan file.

3.      Tipe data penunjuk
      Contoh tipe data ini adalah pointer

4.      Tipe data didefinisikan oleh pemakai
      Tipe data ini disebut Enumerasi

 
MODEL KOMPUTASI

  Ada tiga model dasar komputasional : Fungsional, Logika, dan Imperatif. Sebagai tambahan terhadap satuan nilai dan operasi yang berhubungan, masing-masing model komputasional mempunyai satu set operai yang digunakan untuk menggambarkan komputasi .

DEFINISI SINTAKS DAN SEMANTIK

    Sintaks : Aturan gramatikal atau komposisi suatu program yg mengatur tata cara penulisan huruf, angka, dan karakter .

     Semantik : mendefinisikan arti dari suatu program yang benar secara sintaks dari bahasa pemograman tsb.