Apa itu COBOL? Pemrograman COBOL menjelaskan

Beberapa teknologi tidak pernah mati — mereka menghilang begitu saja ke dalam kayu. 

Tanyakan kepada rata-rata pengembang perangkat lunak tentang COBOL (Common Business Oriented Language) dan mereka akan memandang Anda seolah-olah Anda menyebutkan kertas karbon, bensin bertimbal, atau catatan 78 RPM. Dibandingkan dengan bahasa modern seperti Go atau Python — atau bahkan Pascal atau C! —COBOL tampaknya bertele-tele, kikuk, ketinggalan jaman.

Tapi COBOL telah bertahan. Jauh dari teknologi usang yang dengan senang hati kami pisahkan, COBOL telah menjadi sebuah institusi. Basis kode COBOL besar-besaran masih digunakan di seluruh dunia, banyak di antaranya berjalan hampir persis seperti saat pertama kali dibuat. Dalam bahasa Hollywood, bahasa COBOL memiliki "kaki".

Jadi, ya, COBOL masih relevan dan tepat waktu — sangat menyakitkan, pada kenyataannya. Dalam beberapa bulan terakhir COBOL telah masuk kembali ke kesadaran publik, karena negara bagian seperti New Jersey telah meminta programmer untuk membantu memindahkan aplikasi COBOL mereka ke abad ke-21.

Dalam bagian ini kita akan melihat asal-usul COBOL, bagaimana desain bahasa pemrograman menonjol bahkan hingga hari ini, dan apa yang membuat COBOL begitu tahan lama dan begitu keras.

Sejarah COBOL

COBOL muncul pada akhir 1950-an dan awal 1960-an. Pengembangan bahasa adalah proyek yang disponsori oleh Departemen Pertahanan Amerika Serikat (DoD) yang mencakup konsorsium perusahaan komputer termasuk IBM, Honeywell, Sperry Rand, dan Burroughs. Tujuannya adalah untuk membuat bahasa pemrograman dengan atribut sebagai berikut:

  • Portabilitas antar sistem komputer, sehingga memudahkan migrasi perangkat lunak baik lintas generasi perangkat keras maupun antar pembuat perangkat keras.
  • Lebih banyak sintaks yang mirip bahasa Inggris daripada bahasa lain pada waktu itu (mis., FORTRAN) sebagai cara untuk mendorong pemrograman oleh audiens yang lebih luas, meskipun dengan mengorbankan kecepatan operasional.
  • Kemampuan untuk mengakomodasi perubahan bahasa di masa depan.

Spesifikasi COBOL resmi pertama keluar pada tahun 1960. Selama dekade berikutnya, dan kekhawatiran para pengkritiknya, COBOL menjadi pilihan default untuk menulis aplikasi bisnis. Salah satu alasan penyebarannya yang cepat adalah efek jaringan: IBM, salah satu kolaborator asli pada bahasa tersebut, menjadi pengguna awal yang agresif, dan kehadiran IBM yang mendominasi di dunia komputasi membantu berkontribusi pada adopsi COBOL.

Karena keunggulan desain dan dukungan industri kelas berat, COBOL telah bertahan, hidup lebih lama dari sistem asli yang dirancang untuk margin yang lebar. Menurut berbagai perkiraan, pada tahun 1970 COBOL adalah bahasa pemrograman yang paling banyak digunakan di dunia. Pada 1997, COBOL diyakini menjalankan sekitar 80 persen aplikasi bisnis.

Bahasa COBOL

Para desainer COBOL memutuskan sintaks singkat dari bahasa pemrograman lain pada saat itu (sekali lagi, seperti FORTRAN). Idenya adalah untuk membuat bahasa pemrograman yang dapat dibaca dan dipahami oleh non-programmer, terutama akuntansi, keuangan, asuransi, dan profesional bisnis lainnya.

Pertimbangkan program "halo dunia" yang ditulis dalam dialek awal COBOL:

DIVISI IDENTIFIKASI.

PROGRAM-ID. HALO DUNIA.

DIVISI PROSEDUR.

TAMPILAN 'Halo Dunia!'.

TAMPILAN AKHIR.

BERHENTI JALANKAN.

Untuk pengembang perangkat lunak modern dibesarkan dengan bahasa yang sempit seperti Python, kode ini verbose. Tetapi verbositas COBOL (jika bukan eksekusinya) muncul dari kesombongan yang sama yang menginformasikan bahasa modern seperti Python - kode itu dibaca lebih banyak daripada yang tertulis, jadi harus ditulis agar dapat dibaca.

Program serupa dalam versi COBOL yang lebih modern mungkin terlihat seperti ini:

program-id. Halo.

divisi prosedur.

tampilkan "Halo dunia!".

berhenti lari.

Meskipun contoh ini lebih ringkas, prinsip dasar yang sama berlaku: Kode berusaha menjelaskan secara eksplisit tentang apa yang terjadi di setiap langkah.

COBOL memiliki aturan ketat mengenai sintaksis dan organisasi internal program. Program COBOL secara eksplisit dibagi menjadi beberapa bagian, atau divisi , yang memudahkan untuk menemukan dan memahami komponennya secara sekilas:

  • Divisi Identifikasi: Pada dasarnya bagian metadata, berisi detail tentang program, pembuatnya, dan sebagainya.
  • Divisi lingkungan: Berisi detail tentang lingkungan runtime, misalnya alias untuk perangkat eksternal, yang mungkin perlu diedit saat menjalankan program pada perangkat keras yang berbeda. Portabilitas berbantuan ini dari program antar sistem, di mana misalnya I / O mungkin ditangani sepenuhnya berbeda.
  • Divisi Data: Berisi  file dan bagian penyimpanan kerja , Divisi Data menjelaskan file dan variabel (masing-masing) yang digunakan dalam program.
  • Divisi prosedur: Kode program sebenarnya ada di sini, dipecah menjadi unit logis yang disebut bagian, paragraf, kalimat , dan pernyataan . Sangat menggoda untuk menganalogikan struktur ini dengan modul atau fungsi, karena mereka melayani fungsi yang kira-kira sama (membagi kode menjadi blok, dengan input dan output yang dibatasi) tetapi mereka jauh kurang fleksibel.

COBOL juga memiliki aturan pemformatan yang sangat ketat untuk kode tersebut, hingga jumlah spasi sebelum perintah. (Pengguna Python akan menemukan ini familiar!) Beberapa dari pembatasan ini adalah produk sampingan dari masa datang COBOL selama era mainframe tahun 1960-an, ketika program dikodekan pada kartu berlubang dan pemformatan yang tepat dari baris 80-kolom penting . Tetapi batasan pemformatan lain memaksakan keterbacaan.

Gagasan di balik pengaturan ketat program COBOL adalah menjadikannya sebagai pendokumentasian mandiri sebanyak mungkin. Bagaimanapun, program COBOL cenderung bertahan selama bertahun-tahun atau puluhan tahun. Maksudnya (jika tidak selalu merupakan hasil akhir) adalah membuat setiap program COBOL menjadi artefak yang dapat dipahami oleh setiap programmer COBOL, bahkan bertahun-tahun kemudian, tanpa bantuan programmer yang membuatnya. 

Tantangan COBOL

Sebagian besar kelanjutan COBOL — dan kelembaman — berasal dari kenyataan bahwa aplikasi COBOL, setelah ditulis, cenderung dibiarkan di tempatnya tanpa batas, dengan hanya sedikit modifikasi. Semakin besar dan lebih misi-kritis aplikasi, semakin kecil kemungkinannya untuk diganggu. Mainframe, seperti yang ditawarkan IBM, memainkan peran kunci: Mereka dibuat agar sangat kompatibel ke belakang dan untuk menjalankan perangkat lunak lawas — seperti aplikasi COBOL — lintas generasi perangkat keras dengan modifikasi minimal. Hasilnya: Miliaran baris kode COBOL yang pada dasarnya tidak berubah selama beberapa dekade.

Selama bertahun-tahun, COBOL telah berkembang, meskipun lambat. Bahkan sekarang memiliki varian berorientasi objek, OO-COBOL, yang mencakup dukungan untuk fitur modern seperti Unicode, lokal, dan tipe data yang lebih canggih di luar string dan integer. Tetapi COBOL secara agresif mempertahankan kompatibilitas ke belakang, sehingga peningkatan dan ekstensi ini pun mematuhi mandat bahwa aplikasi COBOL yang ada harus terus berjalan.

Tidak semua pilihan desain bahasa COBOL populer di kalangan programmer COBOL. Beberapa telah menyebabkan program yang terlalu kompleks yang terbukti sulit untuk dipahami atau di-debug, sehingga menghambat penulisan ulang atau perbaikan. GO TOPerintah COBOL , seperti mitranya di C, memungkinkan pemrogram untuk melompat bebas di sekitar program, dan dengan demikian menulis aplikasi yang lebih kuat. Tetapi penggunaan yang tidak disiplin dari GO TOdapat mengubah program COBOL menjadi sarang tikus referensi silang yang sulit dilacak.

Pemrograman COBOL hari ini

COBOL bertahan hari ini dalam beberapa inkarnasi. IBM secara aktif mempertahankan implementasi COBOL-nya sendiri dan mempertahankan banyak aplikasi COBOL yang ada di tempat penerapannya. Micro Focus COBOL adalah edisi COBOL komersial yang berjalan di Microsoft Windows, mengompilasi aplikasi COBOL ke Java dan .NET, dan bahkan diterapkan ke lingkungan cloud seperti Azure. Anda juga akan menemukan implementasi COBOL open source, seperti GnuCOBOL, yang tersedia secara gratis dan dikompilasi ke kode mesin asli. Namun, mereka mungkin kekurangan beberapa fitur penerapan atau debugging yang lebih canggih dari COBOL komersial.

Sementara COBOL tetap digunakan secara luas, keahlian COBOL yang mendalam menjadi lebih sulit didapat setiap tahun. Akibatnya, banyak mantan pemrogram COBOL harus dibujuk untuk menghentikan aplikasi lama hingga abad ke-21. Seringkali, bukan pengetahuan pemrograman COBOL yang paling mahal, tetapi pemahaman mendalam tentang lingkungan mainframe tempat COBOL berjalan. Banyak aplikasi COBOL bekerja bergandengan tangan dengan teknologi lama seperti sistem database dan manajemen transaksi IMS dan CICS IBM, yang semuanya membutuhkan keahlian yang semakin langka.

Dengan demikian, setua COBOL mungkin tampak, kebutuhan akan bahasa COBOL dan keahlian lingkungan pengembangan telah tumbuh setiap tahun. Daftar pekerjaan untuk COBOL dan keahlian terkait berlimpah. Pada Maret 2020, New Jersey mengeluarkan panggilan darurat bagi programmer COBOL untuk membantu meningkatkan sistem tunjangan pengangguran negara bagian setelah krisis COVID-19.

Pelajari COBOL

Sumber belajar untuk COBOL berkembang biak lagi, mengingat permintaan bahasa yang terus meningkat. Pengembang modern yang ingin mempelajari bahasa paling tahan lama ini memiliki beberapa opsi:

  • University of Limerick, di Irlandia, menawarkan kursus pemrograman COBOL lengkap secara online, milik Departemen Ilmu Komputer dan Sistem Informasi. Ini tidak mutakhir seperti beberapa sumber daya lainnya, tetapi mengingat betapa COBOL sedikit berubah seiring waktu, itu belum tentu merupakan cacat.
  • Proyek Open Mainframe (bagian dari Linux Foundation) juga menawarkan sumber daya COBOL. Salah satunya adalah kursus lengkap dalam pemrograman COBOL, disponsori bersama oleh IBM. Ini lebih modern daripada kursus University of Limerick, dan disesuaikan dengan implementasi zOS COBOL IBM, yang merupakan versi bahasa yang digunakan secara luas.

COBOL telah menjadi pokok komputasi bisnis selama beberapa dekade, dan permintaan akan bakat pemrograman COBOL terus meningkat. Jika mempertahankan atau memodernisasi program COBOL menarik minat Anda, waktu tampaknya lebih tepat dari sebelumnya.