3 Des 2013

SEJARAH COBOL

COBOL adalah kepanjangan dari Common Bussiness Oriented Language. Bahasa COBOL  digolongkan sebagai High Level Language (bahasa pemrograman tingkat tinggi) yang berorientasi pada masalah bisnis. Diciptakan pada tahun 1959.
COBOL atau Common Bussiness Oriented Language adalah bahasa pemrograman komputer, yang dirancang untuk menyelesaikan persoalan bisnis.
COBOL pertama kali diperkenalkan secara formal bulan Januari 1960 dan disebut dengan COBOL-60. Dan diperbaharui tahun 1965. Pada tahun 1968 dan 1974, bahasa COBOL dikembangkan dan distandarisasikan dengan nama ANSI COBOL (American National Standarts Institute).
Bahasa pemrograman COBOL sangat terstruktur, karena mudah dibaca dan memiliki struktur yang jelas. COBOL dibuat untuk operasi pengolahan data,  yaitu membaca data, memproses data dan menghasilkan output berupa informasi


Perkembangan COBOL :
·           Tahun 1958 : Pertama kali diciptakan oleh CODASYL
·           Tahun 1960 : VERSY COBOL – 60, versi pertama
·           Tahun 1968 : ANS COBOL gunakan standart ANSI
·           Tahun 1974 : ANSI COBOL 1974
·           Tahun 1985 : ANSI COBOL 1985




Struktur Program COBOL

Program COBOL dibagi kedalam 4 bagian yang disebut dengan Division. Masingmasing divisi dimulai dengan judul divisi deengan urutan sbb:

·         IDENTIFICATION DIVISION
·         ENVIRONMENT DIVISION
·         DATA DIVISION
·         PROCEDURE DIVISION

Masing-masing divisi dapat terdiri dari urutan-urutan susunan bagian. Tersusun secara hirarki,yang secara umum sbb :

1.      Division
2.      Region
3.      Section
4.      Paragraph
5.      Sentence/Entry
6.      Statement/Clause
7.      Phrase/Option


Istilah Region, sentence, statement dan phrase/option digunakan pada PROCEDURE DIVISION, sedangkan istilah Entry dan clause digunakan pada ke-3 divisi lainnya.

1.      Division, merupakan bagian utama dari suatu program COBOL dan selalu di awali dengan judul divisi.
2.      Region, merupakan suatu kumpulan bagian tertentu dalam PROCEDURE DIVISION.
3.      Section, merupakan suatu kumpulan dari paragraph atau entry dan selalu diawali denga judul seksi.
4.      Paragraph, merupakan suatu grup dari kalimat (sentences) didalam PROCEDURE DIVISION dan selalu diawali dengan nama/ judul  Paragraph.
5.      Entry, merupakan sesuatu yang harus harus dituliskan pada tempat-tempat tertentu didalam program COBOL. Suatu entry dapat juga dikatakan sebagai suatu set (kumpulan) dari clause (anak kalimat) yang diakhiri dengan titik.
6.      Sentence, merupakan kumpulan dari satu atau lebih statement, dan harus diakhiri dengan tanda titik.
7.      Clause, merupakan kumpulan dari kata yang membentuk suatu arti. Clause adalah bagian dari entry.
8.      Statement, merupakan perintah pengerjaan untuk komputer. Statement dalam bentuk kata kerja yang merupakan COBOL Reserved Words.
9.      Phrase, suatu group kata yang merupakan bagian dari statement atau clause.
10.  Option, kebanyakan Phrase adalah optional (boleh disertakan/tidak) maka, sering disebut dengan Option.






User Defined Word

Programmer dapat membentuk kata-kata untuk membuat dan mendefinisikan tersendiri untuk pemberian nama pada :

1.      Nama-program (program-name) adalah suatu nama yang diberikan untuk menunjukkan identitas dari program yang dibuat, dituliskan pada paragraph PROGRAM-ID dalam IDENTIFICATION DIVISION.
2.      Nama-alat (mnemonic-name) adalah nama yang dibuat oleh programmer untuk menunjukkan suatu alat tertentu. Dibentuk pada paragraph SPECIAL-NAMES dalam ENVIRONMENTDIVISION.
3.      Nama-file (file-name) adalah nama yang dibuat untuk menunjukkan suatu file tertentu yang dipergunakan dalam program. Dibentuk pada paragraph FD (File Description) dalam DATA DIVISION atau pada statement CLOSE< OPEN< READ dalam PROCEDURE DIVISION.
4.      Nama-record, pada COBOL, record harus diberi nama-record (Record-name) pada DATA RECORD clausedan pada record description entry dalam DATA DIVISION.
5.      Nama-data (data-name) adalah nama yang dibuat untuk menunjukkan suatu data item yang dipergunakan dalam program. Dibentuk pada FILE SECTION di record description entry dalam DATA DIVISION dan pada WORKING-STORAGE SECTION.
6.      Nama-indek dan nama-data-indek, digunakan untuk data pada tabel yang di-indek. Dibentuk secara implisit dengan OCCURS dan INDEXED BY clause. Nama-data-indek didefinisikan dengan mengunakan USAGE IS INDEX dalam DATA DIVISION.
7.      Nama-kondisi (condition-name) adalah nama data yang dihubungkan dengan suatu nilai tertentu. Didefinisikan dalam DATA DIVISION dengan level number 88 dan dioperasikan dalam PROCEDURE DIVISION pada statement IF.
8.      Nama-prosedur (procedure-name) atau nama-paragraph (paragraph-name) adalah nama yang menunjukkan suatu paragraph dalam PROCEDURE DIVISION. Nama-paragraph diperlukan bila proses akan melompat ke paragraph tertentu dengan menggunakan statement GO TO dan PERFORM dalam PROCEDURE DIVISION.
9.      Nama-seksi , pada PROCEDURE DIVISION, dapat dibuat menjadi beberapa seksi dan tiap seksi dapat dibentuk dengan dimulai judul seksinya yang disebut dengan Section-name.
10.  Nama-kualifikasi bila nama-data atau nama-kondisi tidak unik (ada yang sama satu dengan yang lain), untuk menentukan yang mana yang akan digunakan, dapat digunakan qualifier.


Syarat Pemberian nama :

v  Gabungan dari huruf A-Z atau a-z, angka 0-9, Hypen (-).
v  Panjang maksimum 30 karakter.
v  Paling sedikit harus mengandung 1 huruf.
v  Tidak boleh mengandung karakter khusus kecuali hypen yang diletakkan ditengahtengah, tidak boleh diawal atau diakhir.
v  Tidak boleh mengandung COBOL reserved word.
v  Tidak boleh ada blank atau spasi.
Bentuk data

Dibagi menjadi 2 :
1.      Data Variabel
2.      Konstanta


Data variabel
Data variabel adalah data yang nilainya dapat berubah didalam program. Nilai data ini akan selalu berubah bila dibaca nilai data yang lain dengan nama data yang sama.
Konstanta. Konstanta atau data konstanta adalah bentuk dari data yang dibutuhkan untuk pengolahan dimana nilai datanya tidak tergantung dari input yang dibaca. Ada 3 bentuk dari konstanta yang dapat dipakai dalam PROCEDURE DIVISION pada program COBOL, yaitu Numeric Literal, Non Numeric Literal, dan Figurative Constant.

Numeric Literal

Aturan penggunaan literal numerik :
v  Panjang maksimum 18 digit.
v  Boleh ada tanda plus atau minus yang letaknya pada posisi terkiri tanpa ada spasi dengan angka pertama.Bila tidak bertanda berarti bernilai positif.
v  Boleh ada titik desimal dimana saja kecuali pada posisi terkanan.




Non Numeric Literal

Adalah konstanta yang digunakan bukan untuk operasi arithmatika. Aturan penggunaan literal bukan numerik :
1. Panjang maksimum 120 karakter
2. Boleh terdiri dari kumpulan karakter (Character set) kecuali karakter petik.
3. Dibatasi tanda petik pada awal dan akhir.

Figurative Constant

Figurative constant termasuk dalam COBOL reserved word yang mempunyai maksud tertentu yang namanya sudah dikenal oleh compiler.

Contoh :
ZERO, ZEROS, ZEROES berarti nilai nol.
SPACE,SPACES berarti nilai 1 blank atau spasi.
QUOTE, QUOTES berarti tanda petik.


2 Des 2013

SEJARAH C# (C SHARP)

Pada akhir dekade 1990-an, Microsoft membuat program Microsoft Visual J++ sebagai sebuah langkah percobaan untuk menggunakan Java di dalam sistem operasi Windows untuk meningkatkan antarmuka dari Microsoft Component Object Model (COM). Akan tetapi, akibat masalah dengan pemegang hak cipta bahasa pemrograman Java, Sun Microsystems, Microsoft pun menghentikan pengembanganJ++, dan beralih untuk membuat pengganti J++, kompilernya dan mesin virtualnya sendiri dengan menggunakan sebuah bahasa pemrograman yang bersifat general-purpose. Untuk menangani proyek ini, Microsoft merekrut Anders Helsberg, yang merupakan mantan karyawan Borland yang membuat bahasa Turbo Pascal, dan Borland Delphi, yang juga mendesain Windows Foundation Classes (WFC) yang digunakan di dalam J++. Sebagai hasil dari usaha tersebut, C# pun pertama kali diperkenalkan pada bulan Juli 2000 sebagai sebuah bahasa pemrograman modern berorientasi objek yang menjadi sebuah bahasa pemrograman utama di dalam pengembangan di dalam platform Microsoft .NET Framework.
Pengalaman Helsberg sebelumnya dalam pendesain bahasa pemrograman seperti Visual J++, Delphi, Turbo Pascal) dengan mudah dilihat dalam sintaksis bahasa C#, begitu pula halnya pada inti Common Language Runtime (CLR). Dari kutipan atas interview dan makalah-makalah teknisnya ia menyebutkan kelemahan-kelemahan yang terdapat pada bahasa pemrograman yang umum digunakan saat ini, misalnya C++, Java, Delphi, ataupun Smalltalk. Kelemahan-kelemahan yang dikemukakannya itu yang menjadi basis CLR sebagai bentukan baru yang menutupi kelemahan-kelemahan tersebut, dan pada akhirnya memengaruhi desain pada bahasa C# itu sendiri. Ada kritik yang menyatakan C# sebagai bahasa yang berbagi akar dari bahasa-bahasa pemrograman lain. Fitur-fitur yang diambilnya dari bahasa C++ dan Java adalah desain berorientasi objek, seperti garbage collection, reflection, akar kelas (root class), dan juga penyederhanaan terhadap pewarisan jamak (multiple inheritance). Fitur-fitur tersebut di dalam C# kini telah diaplikasikan terhadap iterasi, properti, kejadian (event), metadata, dan konversi antara tipe-tipe sederhana dan juga objek.
C# didisain untuk memenuhi kebutuhan akan sintaksis C++ yang lebih ringkas dan Rapid Application Development yang 'tanpa batas' (dibandingkan dengan RAD yang 'terbatas' seperti yang terdapat pada Delphi dan Visual Basic).
Agar mampu mempromosikan penggunaan besar-besaran dari bahasa C#, Microsoft, dengan dukungan dari Intel Corporation dan Hewlett-Packard, mencoba mengajukan standardisasi terhadap bahasa C#. Akhirnya, pada bulan Desember 2001, standar pertama pun diterima oleh European Computer Manufacturers Association atau Ecma International (ECMA), dengan nomor standar ECMA-334. Pada Desember 2002, standar kedua pun diadopsi oleh ECMA, dan tiga bulan kemudian diterima oleh International Organization for Standardization (ISO), dengan nomor standar ISO/IEC 23270:2006.
C# merupakan sebuah bahasa pemrograman yang berorientasi objek yang dikembangkan oleh Microsoft sebagai bagian dari inisiatif kerangka .NET Framework. Bahasa pemrograman ini dibuat berbasiskan bahasa C++ yang telah dipengaruhi oleh aspek-aspek ataupun fitur bahasa yang terdapat pada bahasa-bahasa pemrograman lainnya seperti Java, Delphi, Visual Basic, dan lain-lain) dengan beberapa penyederhanaan. Menurut standar ECMA-334 C# Language Specification, nama C# terdiri atas sebuah huruf Latin C (U+0043) yang diikuti oleh tanda pagar yang menandakan angka # (U+0023). Tanda pagar # yang digunakan memang bukan tanda kres dalam seni musik (U+266F), dan tanda pagar # (U+0023) tersebut digunakan karena karakter kres dalam seni musik tidak terdapat di dalam keyboard standar.

Tujuan pembuatan program  CSharp 

·         Bahasa pemrograman C# dibuat sebagai bahasa pemrograman yang bersifat bahasa pemrograman general-purpose (untuk tujuan jamak), berorientasi objek, modern, dan sederhana.
·          Bahasa pemrograman C# ditujukan untuk digunakan dalam mengembangkan komponen perangkat lunak yang mampu mengambil keuntungan dari lingkungan terdistribusi.
·         Portabilitas programmer sangatlah penting, khususnya bagi programmer yang telah lama menggunakan bahasa pemrograman C dan C++.
·         Dukungan untuk internasionalisasi (multi-language) juga sangat penting.
·         C# ditujukan agar cocok digunakan untuk menulis program aplikasi baik dalam sistem klien-server (hosted system) maupun sistem embedded (embedded system), mulai dari perangkat lunak yang sangat besar yang menggunakan sistem operasi yang canggih hingga kepada perangkat lunak yang sangat kecil yang memiliki fungsi-fungsi terdedikasi.
·         Meskipun aplikasi C# ditujukan agar bersifat ‘ekonomis’ dalam hal kebutuhan pemrosesan dan memori komputer, bahasa C# tidak ditujukan untuk bersaing secara langsung dengan kinerja dan ukuran perangkat lunak yang dibuat dengan menggunakan bahasa pemrograman C dan bahasa rakitan.
·         Bahasa C# harus mencakup pengecekan jenis (type checking) yang kuat, pengecekan larik (array), pendeteksian terhadap percobaan terhadap penggunaan Variabel-variabel yang belum diinisialisasikan, portabilitas kode sumber, dan pengumpulan sampah (garbage collection) secara otomatis



 C # 2.0 fitur bahasa baru
Fitur Baru di C # 2.0 - dua belas "laboratorium" yang hanya mencakup C # 2.0 fitur baru.
Sebuah bentuk baru dari iterator mempekerjakan co-rutin melalui kata kunci hasil fungsional-gaya yang serupa dengan yang ditemukan dalam bahasa Python.
Metode anonim menyediakan fungsionalitas penutupan.
Generik atau jenis parameter dukungan beberapa fitur tidak didukung oleh C + + template seperti tipe kendala pada parameter generik. Namun, ekspresi tidak dapat digunakan sebagai parameter generik seperti di C + + template. Berbeda dengan pelaksanaan Jawa, jenis parameter adalah objek kelas pertama dalam mesin virtual, memungkinkan untuk optimasi dan pelestarian jenis informasi.
Jenis nilai nullable memfasilitasi interaksi dengan database SQL. Contoh deklarasi tipe nullable:
int? variableName = null;
Jenis parsial memungkinkan pemisahan implementasi kelas menjadi lebih dari satu file source. Fitur ini dilaksanakan terutama kode Visual Studio sehingga dihasilkan dapat disimpan terpisah dari kode pengembang.

C # 3.0 fitur bahasa baru
C # versi 3.0 memperkenalkan beberapa ekstensi untuk mendukung bahasa tingkat tinggi, perpustakaan kelas gaya fungsional. Ekstensi memungkinkan pembangunan API komposisi dengan kekuatan ekspresif bahasa query di daerah seperti database relasional dan XML. C # 3.0 akan mencakup fitur-fitur baru sebagai berikut:
Jenis anonim: tipe tuple otomatis disimpulkan dan dibuat dari initializers objek.
Obyek initializers kemudahan konstruksi dan inisialisasi objek.
Diketik implisit variabel lokal memungkinkan jenis variabel lokal untuk disimpulkan dari ekspresi yang digunakan untuk menginisialisasi mereka.
Secara implisit mengetik array: suatu bentuk penciptaan array dan inisialisasi yang menyimpulkan jenis elemen dari array dari penginisialisasi array.
Metode ekstensi memungkinkan untuk memperluas jenis jenis yang ada dan dibangun dengan metode tambahan.
Ekspresi lambda: evolusi dari metode anonim memberikan inferensi tipe ditingkatkan dan konversi untuk kedua jenis mendelegasikan dan pohon ekspresi.
Pohon ekspresi memungkinkan ekspresi lambda untuk diwakili sebagai data (pohon ekspresi) bukan sebagai kode (delegasi).
Ekspresi query sintaks bahasa menyediakan terintegrasi untuk query yang mirip dengan bahasa query relasional dan hirarkis seperti SQL dan XQuery.

C # 4.0 fitur bahasa baru
Dynamic member lookup
Sebuah dinamis pseudo-jenis baru diperkenalkan ke dalam sistem C # tipe. Hal ini diperlakukan sebagai System.Object, tetapi di samping itu, setiap akses anggota (metode panggilan, lapangan, properti, atau akses indexer, atau doa mendelegasikan) atau aplikasi dari operator pada nilai tipe yang diijinkan tanpa memeriksa jenis, dan resolusi yang ditunda sampai run-time. Kovarian dan jenis parameter generik contravariant
Antarmuka generik dan delegasi dapat memiliki parameter jenis mereka ditandai sebagai kovarian atau contravariant,
menggunakan kata kunci luar dan dalam, masing-masing. Deklarasi ini kemudiandihormati untuk konversi tipe, baik implisit dan eksplisit, dan kedua waktu-kompilasi dan run-time