Selasa, 02 Maret 2010

MATERI 6

| | 0 komentar

FLOW CONTROL
Struktur kontrol adalah statement control (while, for, dan sebagainya) beserta dengan statement-statement (compound statement ) yang dikontrolnya. Lebih sederhananya perintah yang memungkinkan pemilihan atas perintah yang akan dijalankan sesuai dengan kondisi tertentu.
  • Kondisi (if, case)
  • Looping (for,while,do while)
1. Kondisi
Single-way Selector
Penyelesian satu kondisi.
Di pascal kita mengenal If dalam bentuk :
IF (kondisi) then Begin statement End
Two-way Selector
dalam bahasa C kita punya bentuk umum :
if kondisi
{
perintah
}
else
{
perintah
}
Jika kondisi bernilai benar maka perintah 1 akan di kerjakan, tapi jika tidak maka perintah 2 dalam else akan dijalankan. Dalam Pascal kita punya bentuk umum:
if kondisi then
BEGIN
perintah 1
END
else
BEGIN
perintah
END;
Nested Selector
Penyelesian yang dilanjutkan dengan penyeleksian. Dalam bahasa C, bentuk umum nya :
if kondisi
{
if kondisi
{
}
}
Atau sering disebut Nested If (If Bersarang)

Multiple Selector
Penyeleksian nilai tunggal. Dalam C :
switch kondisi
{
case nilai1 : perintah 1; break;
case nilai2 : perintah 2; break;
case nilai3 : perintah 3; break;
default : perintah;break;
}
Artinya kondisi akan diperiksa dengan mencocokkan dengan nilai yang disebutkan pada case. Jika sama maka akan melakukan perintah sesuai blok, dan keluar dari penyeleksian dengan perintah break;

2. Looping
Perulangan digunakan untuk mengerjakan suatu atau beberapa perintah secara berulang-ulang sesuai dengan yang diinginkan. Ada 2 macam jenis perulangan : statis dan dinamis. Statis artinya jumlah perulangan sudah ditentukan terlebih dahulu. Perintah untuk perulangan static adalah for.
for
Jenis perulangan yang sudah ditentukan banyaknya putaran yang akan dilakukan. Perulangan dilakukan mulai nilai awal (inisialisasi) bertambah satu-satu(sesuai iterasi), sampai batas yang ditentukan.

Untuk perulangan Dinamis kita bisa mengontrol kapan perulangan tersebut ingin kita hentikan. Kita punya perintah while.., dan do..while ... pada Bahasa C. Sedangkan di Pascal kita punya perintah while .. dan repeat..until...Perbedaan dari while dan do..while adalah letak pengecekan kondisi dan jumlah minimal perulangan yang akan dijalakan. Pada while .. kondisi dicek sebelum perulangan dijalankan, sehingga ada kemungkinan perulangan tidak dijalankan jika kondisi bernilai salah. Namun pada do while pengecekan kondisi dilakukan pada akhir perulangan, sehingga perulangan minimal dijalankan 1 kali. Untuk repeat until pada pascal sama dengan do while.



Read more...

Selasa, 23 Februari 2010

Materi 5 - Tipe Data

| | 0 komentar


Tipe Data adalah Kumpulan dari obyek data dan himpunan operasi yang
dapat dilakukan pada obyek tersebut.

Elemen dasar dari suatu tipe data
Atribut
Membedakan objek-objek data dari tipe tersebut
Nilai
Dimiliki oleh objek data dari tipe tersebut
Operasi
Mendefinisikan manipulasi-manipulasi yang
dimungkinkan oleh objek data dari tipe tersebut

1. Contoh Tipe data
Tipe data array
Atribut
Jumlah dimensi array, dan tipe data komponen
array
Nilai
Kumpulan angka-angka yang membentuk nilai yang
valid untuk komponen array
Operasi
Operasi untuk memilih komponen array yang sudah
terbentuk

2.Jenis Tipe Data
Tipe data primitif
Numerik
• Integer
• Floating Point
– Boolean
– Character
Tipe data String
Array
Records

Integer
Adalah sebuah refleksi yang tepat dari hardware sehingga pemetaan ke hardware mudah
Dalam sebuah bahasa bisa terdapat 8 buah tipe integer
yang berbeda
– byte 1
shortint 1
– integer 2
– word 2
longint 4

Contoh Operasi yang digunakan pada integer
Aritmatika
• +, -, *, /, DIV, MOD
– Relational
• =, <>, >, <, >=, <=
Assigment
• =, :=
– Bit
• SHIFT (<<, >>), AND (&), OR (|)

Floating Point
Adalah Memodelkan bilangan yang sebenarnya, tetapi hanya
sebagai pendekatan dari bilangan tersebut.
Bahasa untuk scientific, sedikitnya mendukung 2 tipe floating point
– Single 4
– Double 8
– Extended 10
– Comp 8

Boolean
TRUE atau FALSE, 0 atau 1 dan Dapat diimplementasikan sebagai bit, tetapi biasanya dilakukan dengan byte,
Keuntungan : Readability


Character
Adalah kode numerik (ASCII, Unicode)
Operasi yang berlaku adalah
– Relational
– Assigment

String
Adalah Nilainya merupakan urutan dari karakter.
Operasi :
– Assignment
– Perbandingan ( =, >, dan lainnya)
– Catenation (Penggabungan)
– Substring reference
– Pattern matching
Java – String merupakan class (bukan array of char)
– StringBuffer merupakan class untuk obyek string yang dapat
diubah.

Array
Adalah kumpulan elemen data yang homogen, di mana setiap elemen datanya diidentifkasikan dengan posisinya (index) dalam kumpulan tersebut, relatif terhadap elemen yang pertama.

Inisialisasi array :
– Berupa daftar nilai yang diberikan pada array saat array
ditempatkan dalam memori
– Contoh Inisialisasi array :
• C dan C++ meletakkan nilai pada braces (tanda { dan } ),
dan mengijinkan compiler untuk menghitung nilai tersebut
• Contoh : int stuff [] = {2, 4, 6, 8}
• Pascal – Tidak mengijinkan inisialisasi array.

Record
Adalah kumpulan dengan elemen-elemen yang dapat
mempunyai tipe yang berbeda (tidak homogen), setiap elemennya
diidentifikasikan dengan namanya (nama field).






Read more...

Minggu, 14 Februari 2010

MATERI 4 - KONSEP BAHASA PEMROGRAMAN

| | 0 komentar

Objek Data, Variabel, dan Konstanta
Ok, materi kita selanjutnya adalah Objek data, variable dan konstanta. Langsung aja kita mulai reviewnya :
1. Pengantar
Seperti yang kita tahu semua data yang akan diolah oleh komputer harus disimpan terlebih dahulu di memory komputer (memori, register, dan lainnya). Memory komputer itu sendiri terdiri dari sel-del dasar yang disebut alamat. Isi sel merupakan suatu nilai hasil olahan komputer. Bahasa pemrograman berhubungan dengan sistem operasi untuk bisa mengolah penggunaan memory.

2. Objek Data
Pengelompokkan satu atau lebih potongan data di dalam virtual komputer pada saat run-time. Lebih sederhananya objek data merupakan suatu tempat dimana nilai-nilai data disimpan dan dipanggil kembali. Sebagai contoh objek data yang dibuat oleh programer adalah Variabel, konstanta, array dan yang di buat oleh sistem adalah Buffer, list ruang kosong, stack.

3.Variable
Objek data yang didefinisikan dan diberi nama secara eksplisit oleh programmer. Variable berfungsi sebagai label atau nama wadah penyimpanan nilai. Sehingga ketika programer ingin mengolah nilai tersebut, ia hanya cukup menyebutkan nama variable tersebut. Dilihat dari hardware variable adalah :
  • Variabel merupakan suatu abstraksi dari sel-sel memori
  • Nama variabel merupakan abstraksi dari alamat memori
  • Statement assigment merupakan abstraksi dari modifikasi suatu sel
Variable mempunyai 4 bagian :
  • Nama dan Scope
  • Tipe
  • L-value
  • R-value
Nama variabel merupakan string dari karakter. Scope variabel atau jangkauan merupakan range dari instruksi program dimana nama tersebut dikenali. Instruksi program dapat memanipulasi suatu variabel di dalam jangkauannya.
Variable berdasarkan scopenya ada 2 macam:
  • Variable Global : variable yang mempunyai jangkauan pada seluruh bagian program. Oleh karena itu variable ini dapat diakses oleh procedure maupun function yang ada pada program.
  • Variable Local : variable yang mempunyai jangkauan akses yang terbatas. Variable ini hanya bisa diakses pada function atau procedure tertentu saja, tidak semua bisa mengakses nya.
Contoh pendeklarasian variable pada C :
1 2 3
int angka = 100;
  1. int merupakan tipe data dari nilai yang akan ditampung oleh varible angka.
  2. Angka adalah nama dari variable.
  3. 100 adalah nilai yang diisikan pada variable angka.
A. Tipe
Jenis atau penggolongan data - data yang akan dimanipulasi. Beberapa bahasa mengijinkan programmer mendefinisikan tipe baru sendiri. Biasanya untuk tipe-tipe data terstruktur dan komplek. Contoh : type vertorInt = array[1..20] of integer (Pascal)
B. L-value
Merupakan daerah penyimpanan yang dibinding ke variabel selama eksekusi. Digunakan untuk menangani r-value dari variabel dan lokasi memori yang diasosiasikan dengan variabel.
C. R-value
Suatu nilai yang terkodekan yang disimpan di suatu lokasi yang diasosiasikan dengan variabel (l-value). Bagian ini merupakan nilai yang akan dimasukkan ke bagian L-value.
X = Y;
X : L-value
Y : R-value

4. Referensi dan Variabel Tanpa Nama
Variable tanpa nama atau referensi sering disebut juga pointer. Beberapa bahasa mempunyai fasilitas untuk mengizinkan variabelnya dapat diakses melalui r-value dari variabel yang lain. Variable ini bisa mengakses variable lain karena menunjuk ke alamat variable lain.

5. Assignment
Salah satu jenis operasi yang berfungsi untuk memberi suatu nilai ke dalam varible.
  • Pascal , i := 3;
  • C family, i = 3;
  • Cobol, MOVE 3 TO i;
Secara garis besar, operasi assignment dapat didefinisikan sebagai :
  1. Menghitung l-value dari ekspresi pertama operan
  2. Menghitung r-value dari ekspresi kedua operan
  3. Memindahkan r-value yang sudah dihitung ke objek data l-value yang sudah dihitung
  4. Mengembalikan r-value yang sudah dihitung sebagai hasil dari operasi
6. Konstanta
Merupakan variable yang nilainya sudah ditetapakan dan tidak akan berubah-ubah nilainya. Contoh : #define MAX 50; (Nilai MAX tidak dapat diubah lagi). Biasanya digunakan untuk nilai-nilai ketetapan, misalkan pi(22/7).

7. Operator
Fungsi yang beroperasi di konstanta, variabel, dan nilai yang akan menghasilkan sesuatu yang baru (hasil). Sama seperti matematika setiap operator mempunyai derajat / precedence yang berfungsi untuk menentukan operator mana yang akan dikerjakan terlebih dahulu.
Read more...

Selasa, 09 Februari 2010

Materi 3

| | 0 komentar

Bahasa pemrograman merupakan notasi formal yang mempunyai 2 komponen utama yaitu syntax dan semantic. Bahasa pemrograman yang baik juga memiliki beberapa kriteria. Kriteria desain bahasa pemrograman adalah:
-Abstraction: kemampuan untuk mengkonstruksi suatu pola yang berulang-ulang
-Simplycity: kesederhanaan, semakin sedikit konsep untuk dapat dimengerti, semakin baik
-Regularity: keteraturan, semakin sedikit melanggar aturan semakin baik
-Konsistensi: ketetapan suatu alur atau bentuk bahasa
-Translation: penerjemah yang cepat dan menghasilkan kode tujuan yang efisien

Syntax
Merupakan kumpulan aturan yang mendefinisikan suatu bentuk bahasa. Syntax mendefinisikan bagaimana suatu kalimat dibentuk sebagai barisan/urutan dari pemilihan suatu kata dasar. Kata-kata itu dikonstruksikan dengan karakter-karakter alfabet. Syntax mengatur cara mengkombinasikan kata-kata tersebut ke dalam suatu statement dengan bentuk yang benar sehingga dapat disusun suatu program yang dapat berjalan dengan benar. Syntax tidak mengerti arti atau isi dari suatu kalimat, semantic lah yang nanti mengartikannya. Syntax menyediakan bentuk-bentuk notasi untuk komunikasi antara programmer dan pemroses bahasa pemrograman, sehingga mempermudah pembuatan suatu program. Syntax didefinisikan dengan dua kumpulan aturan yaitu lexical dan syntactic. Lexical menspesifikasikan kumpulan karakter yang terdapat dalam alphabet dari bahasa dan cara supaya karakter-karakter tersebut dikombinasikan ke dalam kata-kata yang valid dan diterima. Sedangkan syntactic adalah elemen-elemen yang mengatur bentuk suatu statement-statement dalam bahasa pemrograman.

Syntactic memiliki beberapa elemen yaitu:
  • Himpunan karakter: ASCII (karakter angka dan huruf)
  • Identifier: umumnya string dari huruf dan angka
  • Simbol untuk operator: simbol matematika
  • Keyword dan Reserved Word: kata-kata milik bahasa, biasanya tidak boleh digunakan sebagai identifier
  • Komentar: dokumentasi program
  • Blank: spasi diabaikan
  • Delimiter dan Tanda Kurung: elemen awalan dan akhiran statement
  • Ekspresi: suatu fungsi yang mengakses data dalam suatu program dan mengembalikan suatu nilai

Syntax memiliki beberapa kriteria:
  • Readability(mudah dibaca)
  • Writeability(mudah ditulis)
  • Verifiability(konsep kebenaran)
  • Kemudahan translasi(makin mudah bagi manusia, makin sulit di translasi
  • Pengurangan ambiguitas(dua arti atau lebih)

Semantic
Semantic mendefinisikan arti dari program yang benar secara syntax dari bahasa tersebut.
Sebagai contoh kita mendeklarasikan suatu variabel seperti ini:

int nilai[10]

Oleh semantic, deklarasi di atas akan memberikan ruang sebanyak 10 elemen integer kepada variabel nilai. Translasi dari syntax ke executable program merupakan pusat implementasi bahasa pemrograman. Dalam hal translasi yang baik adalah kecepatan dan efisiensi eksekusi yang cepat. Proses translasi terbagi dua, yaitu analisa input program sumber dan synthesis program objek yang executable

Dalam analisa input program sumber, program sumber dilihat oleh translator sebagai kumpulan urut-urutan simbol. Suatu program yang diatur rapi oleh programmer tidak akan terlihat oleh translator. Untuk menganalisanya dibutuhkan analisa-analisa berikut:
  • Analisa Lexical: tahap dasar dari translasi, mengerjakan pengelompokkan urut-urutan karakter ke dalam komponen pokok seperti identifier, keyword, komentar, dll.
  • Analisa Syntactic: biasa disebut parsing, dan yang diidentifikasi merupakan struktur program yang lebih besar seperti statement, ekspresi, deklarasi, dll.
  • Analisa Semantic: pusat dari tahapan translasi yang menghasilkan suatu kode objek yang executable sederhana. Pada tahap ini akan dimanipulasi oleh tahap optimasi sampai jadi kode executable.

  • Sedangkan synthesis program objek yang executable merupakan tahapan akhir suatu translasi yang berfokus pada pembangunan program yang executable dan terdiri dari beberapa tahapan, yaitu:
  • Optimasi: menghilangkan inefisiensi kode dan mengubah kode yang tidak efisien menjadi kode yang efisien
  • Penghasil kode: dibentuk sebagai bahasa assembly, kode mesin atau program obyek lainnya
  • Linking dan loading: menggabungkan potongan-potongan kode yang dihasilkan dari translasi terpisah ke dalam program final executable yang utuh

Grammar
Grammar adalah suatu kumpulan aturan yang menentukan urut-urutan karakter. Suatu formal grammar adalah grammar biasa yang ditentukan dengan menggunakan notasi yang ketat. Ada dua kelas grammar yang berguna untuk teknologi compiler yaitu EBNF Grammar dan Regular Grammar.

EBNF Grammar atau Extended Backus-Naus Form Grammar merupakan metalanguage yang berarti bahasa yang digunakan untuk mendeskripsikan bahasa lain. Grammar ini menggunakan notasi matematis atau biasa disebut metasymbol. Suatu bahasa yang dideskripsikan dalam EBNF merupakan suatu kumpulan aturan.
Contoh nya:
::= {*}
::= | |
::= = ;
::= if{+} else {+}
::= while {+}
::= | | () |
::= +|-|*|/|=|<>|<|>|<=|>=
::= *
::= a|b|c|...|z|A|B|...|Z
::= 0|1|2|3|...|9

Maksud dari simbol-simbol di atas adalah:
::= --> didefinisikan sebagai
* --> nol atau lebih pemunculan elemen yang terdahulu
+ --> satu atau lebih pemunculan elemen yang terdahulu
| --> atau
<...> --> elemen yang ada di dalamnya merupakan non-terminal
{...} --> elemen yang ada di dalamnya merupakan terminal
Read more...

Selasa, 02 Februari 2010

MATERI 2 - KONSEP BAHASA PEMPROGRAMAN

| | 0 komentar

Plankalkul –1945:
  • Tidak pernah diimplementasikan.
  • Struktur data : Array, records.
Pseudocode –1949:
  • Digunakan karena terlalu sulit jika harus menggunakan machine code.
  • Shortcode – 1949 – BINAC- oleh Mauchly, Ekspresi dikodekan dari kiri ke kanan.
  • Speedcoding – 1954 – IBM 701 – oleh Backus.
  • Pseudo operation untuk fungsi aritmatik danmatematika.
  • Percabangan kondisional dan tanpa kondisi.
  • Autoincrement register untuk pengaksesan array.
Laning dan Zierler System –1953:
  • Diimplementasikan pada computer Whilwind – MIT.
  • Merupakan system compiler pertama.
  • Fasilitas translasi ekspresi dan pemanggilan fungsi.
  • Tidak pernah diporting ke mesin lain.

FORTRAN I – 1957:
  • FORTRAN 0 -1954 – tidak diimplementasi
  • FORmula TRANslation dibuat oleh John Backus
  • Didesain untuk IBM 704, yang memiliki Index Register dan hardware floating-point.
  • Komputer (saat itu) belum reliable.
  • Aplikasi terbatas pada scientific.
  • Tidak ada metodologi pemrograman dan alat bantunya.
  • Efisiensi mesin harus benar-benar diperhatikan.
  • Merupakan bahasa tingkat-tinggi pertama yang diterima secara luas.
FORTRAN II – 1958:
  • Independent compilation.
  • Perbaikan bug dari FORTRAN I
FORTRAN IV – 1962:
  • Deklarasi tipe eksplisit.
  • Logical selection statement (Logical IF).
  • Subprogram dapat menjadi parameter.
  • Menjadi ANSI standard pada tahun 1968.
FORTRAN 77 – 1978:
  • Dilengkapi dengan character-string handling.
  • Logical loop control statement.
  • IF-THEN-ELSE statement.

FORTRAN 90 – 1990:
  • Menggunakan modul-modul dengan akses private maupun public.
  • Terdapat array dinamik.
  • Record dan Pointer.
  • Rekursif.
  • Statement CASE, EXIT, dan CYCLE.
  • Pengecekan tipe parameter.
LISP – 1959:
  • Kepanjangannya adalah LISt Processing.
  • Dibuat oleh John McCarthy, MIT, 1959.
  • Riset Artificial Intellegence membutuhkan bahasa yang memproses data menggunakan list (bukan array).
  • Mendukung komputasi simbolik (bukan numeric).
  • LISP hanya terdapat 2 tipe data : Atom dan List.
  • Sintaksnya didasarkan pada Kalkulus Lambda (Lambda calculus).
  • Merupakan pionir dari functional programming.
  • Tidak membutuhkan variable atau assignment.
  • Control dilakukan lewat rekursi dan ekspresi kondisional.
  • Masih merupakan bahasa yang dominan dalam AI.
  • COMMON LISP dan Scheme merupakan dialek dari LISP.
  • Terdapat bahasa-bahasa lain yang berhubungan : ML, Miranda, Haskell.
ALGOL 58 – 1958:
  • Kepanjangannya adalah ALGOrithmic Language.
  • Perkembangan bahasa saat itu (saat ALGOL dibuat) :
  • FORTRAN terbatas untuk mesin IBM 70x.
  • Bahasa-bahasa yang lain juga dikembangkan tetapi hanya untuk mesin tertentu.
  • Tidak terdapat bahasa yang portable, semuanya bergantung pada mesin
  • Tidak terdapat bahasa yang universal.
  • ACM (Association for Computing Machinery) dan GAMM bertemu bertemu selama 4 hari untuk merencanakan desain bahasa.
Tujuan dari bahasa ALGOL :
Mendekati notasi matematika.
Baik untuk mendeskripsikan algoritma.
Harus dapat ditranslasikan ke kode mesin.

COBOL – 1960:
  • COBOL kepanjangan dari COmmon Business Oriented Language
  • Tujuan desain :
  1. Harus seperti bahasa Inggris yang sederhana.
  2. Mudah untuk digunakan.
  3. Harus dapat dipergunakan secara luas.
  4. Harus terbebas dari masalah implementasi compiler.
BASIC – 1964:
  • BASIC kepanjangan dari Beginners All-purpose Symbolic Instruction Code.
  • Dibuat oleh John Kemeny dan Thomas Kurtz.
  • Mudah untuk dipelajari.
  • Struktur program jelek.
  • Dialek dari BASIC yang sekarang populer : QuickBASIC dan Visual BASIC.

PL/I – 1965:
  • PL merupakan kepanjangan dari Programming Language I.
  • Dibuat oleh IBM dan SHARE.
  • Menggabungkan fitur dari ALGOL 60, COBOL, dan FORTRAN.
  • Dikembangkan untuk aplikasi Bisnis dan Science.
  • Pertama kali adanya exception handling.

Early Dynamic Language:
  • Karakteristik : Memiliki tipe dinamik, dan dynamic storage allocation.
  • APL (A Programming Language) – 1962.
  • Didesain sebagai HDL (Hardware Description Language) oleh Ken Iverson dari IBM.
  • Sangat ekspresif (terdapat banyak operator).
  • Program sangat sulit untuk dibaca.
  • SNOBOL – 1964.
  • Didesain sebagai string manipulation language di Bell Labs oleh Farber, Griswold, dan Polensky.
  • Sangat baik untuk string pattern-matching.

SIMULA 67 – 1967:
  • SIMULA merupakan kepanjangan dari SIMULAtion.
  • Didesain untuk simulasi system oleh Nygaard dan Dahl (Norwegia).
  • Didasarkan pada ALGOL 60 dan SIMULA I
  • Kontribusi : Coroutine (semacam subprogram) yang diimplementasi dalam struktur yang disebut class. Class adalah struktur yang memuat data dan fungsi.
Pascal –1971:
  • Didesain oleh Niklaus Wirth, yang keluar dari tim ALGOL 68.
  • Dikembangkan dari ALGOL 68.
  • Didesain untuk pengajaran pemrograman terstruktur.
  • Kecil dan mudah, tidak terdapat hal yang benar-benar baru.
  • Tetap menjadi bahasa pemrograman yang digunakan secara luas untuk mengajarkan pemrograman di universitas-universitas.

C – 1972:
  • Didesain untuk pemrograman system oleh Dennis Ritchie dari Bell Labs.
  • Dikembangkan dari bahasa B dan ALGOL 68.
  • Memiliki operator yang banyak, tetapi dari segi pengecekan tipe data (type checking) kurang baik.
  • Didistribusikan bersama system operasi UNIX.

PROLOG – 1972:
  • PROgramming in LOGic.
  • Dikembangkan oleh Comeraurer dan Roussel University of Aix-Marseille).
  • Didasarkan pada formal logic.
  • Sifatnya non-procedural.
  • Dapat disebut sebagai Intelligent Database System yang menggunakan proses pengambilan keputusan untuk memutuskan kebenaran dari query yang diberikan.

Ada – 1983:
  • Dikembangkan untuk DoD.
  • Pengembangan melibatkan ratusan orang, biaya besar, dan waktu pengembangan sekitar 8 tahun.
  • Memuat semua yang akhirnya dikenal sebagai bagian dalam software engineering dan language design.
  • Kompiler yang pertama sangat rumit, dan compiler yang pertama dapat digunakan dirilis 5 tahun setelah desain bahasanya selesai.
  • Ada 95 – Mendukung OOP melalui penurunan tipe, terdapat mekanisme kontrol yang lebih baik dalam penggunaan data secara bersama-sama, library lebih flexible.

Smalltalk –1972-1980:
  • Dikembangkan di Xerox Palo Alto Research Center (Xerox PARC), oleh Alan Kay, kemudian dilanjutkan oleh Adele Goldberg.
  • Merupakan bahasa yang pertama kali mengimplementasikan konsep object-oriented (data abstraction, inheritance, dan dynamic type binding).
  • Merupakan pionir dari GUI (Graphical User Interface).

C++ - 1985
  • Dikembangkan oleh Bjarne Stroustrup di Bell Labs.
  • Dikembangkan dari C dan SIMULA 67.
  • Terdapat fasilitas OOP yang berasal dari SIMULA 67 dan ditambahkan ke C.
  • Mempunyai exception handling.
  • Merupakan bahasa yang besar dan kompleks karena mendukung procedural programming dan object-oriented programming.
  • Popularitasnya cepat berkembang bersama dengan OOP.
  • ANSI standard pada tahun 1997.
  • Eiffel – merupakan bahasa yang juga mendukung OOP, lebih kecil dan lebih mudah dari C++, didesain oleh Bertrand Meyer tahun 1992.

Java – 1995
  • Dikembangkan oleh James Gosling, Sun Microsystems
  • Didasarkan pada C++
  • Secara signifikan menyederhanakan C++.
  • Hanya mendukung OOP.
  • Mempunyai reference, tetapi tidak pointer.
  • Terdapat juga dukungan untuk applets (world wide web) dan concurrency (Java Threads).

Scripting Language untuk Web:

JavaScript
  • Digunakan pada Pemrograman Web (client-side) untuk mengahasilkan dynamic HTML document.
  • Memepunyai syntax yang mirip dengan Java.
  • PHP (PHP Hypertext Preprocessor)
  • Digunakan pada Pemrograman Web (server-side) menghasilkan code HTML sebagai outputnya.
  • Mempunyai syntax yang mirip dengan C++ (support OOP).

VBScript
  • Digunakan pada Pemrograman Web (client-side) untuk mengahasilkan dynamic HTML document.
  • Didasarkan atas Visual Basic.
  • Dikembangkan oleh Microsoft.

Jscript
  • Digunakan pada Pemrograman Web (client-side) untuk mengahasilkan dynamic HTML document.
  • Memiliki syntac yang mirip dangan C++.
  • Dikembangkan oleh Microsoft.

ASP (Active Server Page)
Digunakan pada Pemrograman Web (server-side) menghasilkan code HTML sebagai outputnya.
Dikembangkan oleh Microsoft.
        Read more...

        Minggu, 24 Januari 2010

        MATERI I KONSEP BAHASA PEMPROGRAMAN

        | | 0 komentar


        • Komputer, alat yang digunakan untuk melakukan komputasi secara cepat dan tepat, komputer juga dapat menyimpan data, dan data tersebut dibaca kembali.
        • Di dalam bahasa pemrograman maka kita akan mengenal yg disebut Algoritma == merupakan urutan operasi yang akan dikerjakan secara berurutan hingga menghasilkan suatu (output) yang diinginkan user.
        • Bahasa Pemrograman, merupakan himpunan aturan-aturan (konvensi) untuk menyatukan algoritma-algoritma tersebut.
        Dalam memilih bahasa pemrograman kita diberikan 2 metode :
        1. Horizontal, Bahasa-bahasa pemrograman dipilih dan dipelajari secara berurutan.
        2. Vertical, Membandingkan konsep dan konstruksi dari bahasa-bahasa pemrograman.

        Bahasa Program dibagi dalam :

        1. Bahasa Mesin (Machine)
        2. Bahasa Rakitan (Assembly)
        3. Bahasa Tingkat Tinggi (High-Level Language).
        4. Sekarang sedang dikembangkan bahasa tingkat 4 yang lebih mudah untuk digunakan USER.

        **Bahasa Mesin**

        Merupakan bahasa yang paling rendah levelnya (very low-level). Bahasa ini dieksekusi secara langsung oleh komputer. Proses eksekusinya sangat cepat. Bahasa ini sangat fleksible untuk membuat layer software yang baru dan juga (low cost of realization).

        **Bahasa Assembly**

        Merupakan bahasa yang menghubungkan antara bahasa tingkat tinggi dengan sistem operasi, bahasa ini menggunakan mnemonic misal : ADD,ADC

        Kelebihan Bahasa Assembly:
        1. Ketika di-compile lebih kecil ukuran
        2. Lebih efisien/hemat memori
        3. Lebih cepat dieksekusi

        **Bahasa Tingkat Tinggi**

        Bahasa pemrograman tingkat tinggi adalah sebuah bahasa pemrograman yang jika dibandingkan dengan bahasa pemrograman tingkat rendah memiliki sifat lebih mudah digunakan, lebih portabel (mudah diadaptasikan) antar-platform, dan lebih abstrak. Bahasa-bahasa semacam ini sering melakukan abstraksi terhadap beberapa operasi CPU, seperti halnya pengaksesan memori.

        PERTANYAAN : Kenapa kita perlu mempelajari konsep bahasa pemrograman?

        Meningkatkan kapasitas untuk mengekspresikan ide pemrograman. Dapat memilih bahasa pemrograman tertentu yang tepat untuk menyelesaikan suatu masalah. Dan Meningkatkan kemampuan untuk belajar bahasa pemrograman yang baru. Memahami implementasi dari bahasa pemrograman. Meningkatkan kemampuan untuk membuat bahasa pemrograman yang baru adalah hasil akhir dari kita mempelajari bahasa pemrograman.

        ~Kriteria bahasa pemrograman :

        • Readability

        Faktor-faktor : Simplicity. Orthogonality, Statement Kontrol, Tipe data dan Struktur data, Syntax dan Lexical convention

        • Writability

        Faktor-faktor : Simplicity, Orthogonality, Mendukung kemampuan untuk mendefinisikan dan kemudian menggunakan struktur yang kompleks atau operasi yang mengijinkan detail dari operasi diabaikan.

        • Reliability

        Faktor-faktor : Type checking, Exception handling, Readability dan writability.

        • Cost

        Faktor-faktor : Training programmer, Penulisan program / Pembuatan software, Kompilasi dan eksekusi, Maintenance.

        Faktor yang mempengaruhi desain suatu bahasa :

        1. Arsitektur Komputer : Data dan program diletakkan pada memory yang sama. Memory terpisah dari CPU. Instruksi dan data difetch dari memori ke CPU.
        2. Programming Methodologies : 1950-an dan awal 1960-an : Aplikasi-aplikasi sederhana masih menitikberatkan pada efisiensi mesin. Akhir 1960-an : Efisiensi dari sisi manusia lebih diutamakan (readibility), struktur kontrol yang lebih baik. Pemrograman terstruktur Top-down design. Akhir 1970-an : Process-oriented ke Data-oriented. Abstraksi data. Pertengahan 1980-an : Object-oriented programming.

        Berikut adalah Kategori Bahasa Pemrograman:

        1. Imperative (Prosedural) : Fitur utamanya adalah variable, assignment, statement, dan iterasi, contoh : C, Pascal.

        2. Functional : Menggunakan fungsi-fungsi untuk melakukan komputasi, contoh : LISP, Scheme.

        3. Logic : Berdasaarkan aturan (rule-based), Aturan tidak memiliki urutan khusus, contoh : Prolog.

        4. Object-oriented : Pengkapsulan data dengan proses, Pewarisan (inheritance) dan dynamic type binding, Perkembangannya cepat, contoh : C++, Java.

        Metode Implementasi dalam bahasa pemrograman :

        ----Kompilasi (Compilation), dilakukan oleh compiler. Menerjemahkan high-level program ke kode mesin. Translasi membutuhkan waktu tertentu (compiletime) Eksekusi cepat

        Contoh bahasa yang menggunakan compiler :

        Pascal, C/C++

        ----Interpretasi (Interpretation), dilakukan oleh interpreter. Tanpa proses translasi. Eksekusi lambat. Saat ini jarang digunakan.

        Contoh bahasa yang menggunakan

        interpreter : BASIC

        ----Hybrid Gabungan antara kompilasi dan interpretasi Translation cost kecil. Kecepatan eksekusi tidak terlalu lambat.

        tools yang sering digunakan dalam pengembangan software:

        UNIX, C++, MICROSOFT VISUAL C++, DELPHI, NET BEANS, DLL



        Read more...

        Mengenai Saya

        NOVIANTO 672008013 ALBERT T S 672008027 DEDDY U W 672008085 ANDI H P 672008131 BENALDO Q 672008240