Paradigma pemrograman
Paradigma pemrograman adalah cara mengelompokkan bahasa pemrograman berdasarkan apa yang mereka lakukan. Bahasa dapat berada di lebih dari satu paradigma.
Beberapa paradigma melihat cara kode dijalankan, seperti mengizinkan efek samping, atau harus melakukan sesuatu dalam urutan tertentu. Paradigma lain melihat cara kode dikelompokkan, seperti menempatkan kode menjadi satu atau dua bagian (atau sebaliknya, banyak potongan kecil). Beberapa paradigma lain melihat urutan dan potongan-potongan yang membuat program seperti apa adanya.
Ada dua kelompok utama paradigma, imperatif dan deklaratif. Sebuah bahasa bisa menjadi keduanya pada saat yang sama.
Isi
· 1 Pemrograman imperatif
· 2 Pemrograman deklaratif
· 3 Paradigma lain
· 4 Ikhtisar
· 5 Masalah dengan paradigma
· 6 Sejarah
o 6.1 Kode mesin
o 6.2 Bahasa prosedural
o 6.3 Pemrograman berorientasi objek
o 6.4 Paradigma deklaratif
· 7 Halaman terkait
· 8 Referensi
· 9 Situs web lain
Pemrograman imperatif
Dalam program imperatif, programmer memberikan komputer serangkaian langkah yang harus dilakukan untuk melakukan sesuatu. Jika seseorang ingin komputer menggambar wajah kucing, mereka mungkin memberikan arahan seperti "Gambarlah sebuah lingkaran di sini, gambarlah dua lingkaran yang lebih kecil di sana, gambarlah dua segitiga di atas" dan seterusnya. Program imperatif terkadang memiliki banyak efek samping.
Ada dua paradigma imperatif utama, dan seringkali sebuah bahasa akan memiliki keduanya:
- Terstruktur - Komputer diberikan arahan yang selalu dalam urutan tertentu. Langkah-langkah seperti "kembali ke langkah 3" (dikenal sebagai pernyataan goto) tidak diperbolehkan.
- Prosedural - Program ini memungkinkan programmer memberikan nama pada daftar perintah, yang mengubah perintah-perintah itu menjadi "prosedur" yang dapat mereka gunakan nanti. Sebagian besar bahasa terstruktur juga bersifat prosedural.
- Berorientasi Objek - Ide-ide dijelaskan ke komputer menggunakan objek, potongan kode yang memiliki seperangkat perintah yang dapat diberikan dan beberapa informasi tentang mereka.
Pemrograman deklaratif
Dalam paradigma deklaratif, programmer memberi tahu komputer apa yang harus dilakukan, bukan bagaimana melakukannya. Jika mereka ingin komputer menggambar wajah kucing, mereka mungkin memberikan arahan seperti "Gambarlah wajah, gambarlah dua mata, dua telinga, dan mulut".
Paradigma deklaratif yang paling terkenal adalah:
- Fungsional - Sebagian besar pekerjaan dilakukan oleh fungsi tanpa efek samping.
- Logika - Sekumpulan fakta dinyatakan, dan kemudian satu atau lebih "pertanyaan" diajukan.
- Event-driven - Potongan kode diatur untuk berjalan ketika hal-hal tertentu terjadi (seperti komputer dihidupkan).
Paradigma lain
Beberapa paradigma dapat ditemukan dalam bahasa imperatif dan deklaratif. Paradigma-paradigma ini biasanya ditemukan dengan salah satu paradigma di atas, bukannya berjalan sendiri-sendiri.
Ikhtisar
Bahasa pemrograman dikelompokkan berdasarkan paradigma dengan cara yang sama seperti mesin yang mungkin dikelompokkan berdasarkan kegunaannya.
Beberapa bahasa hanya cocok dengan satu paradigma utama, seperti:
- Smalltalk (berorientasi objek)
- Assembly (imperatif, tetapi tidak terstruktur atau berorientasi objek)
- Haskell (fungsional)
- Prolog (logika)
Namun, sebagian besar bahasa memiliki lebih dari satu paradigma. Beberapa yang menonjol karena memiliki lebih dari satu paradigma adalah:
- Scala (berorientasi objek, fungsional, paralel)
- Visual Basic (berbasis peristiwa, berorientasi objek)
- Common Lisp (prosedural, fungsional, berorientasi objek, meta)
- Skema (fungsional, prosedural, meta)
- Perl (fungsional, prosedural, meta, berorientasi objek, event-driven)
- Python (fungsional, berorientasi objek, prosedural)
- Ruby (fungsional, berorientasi objek, prosedural)
- Bahasa Wolfram (fungsional, prosedural, umumnya deklaratif)
- Oz (logika, fungsional, imperatif, berorientasi objek)
- F# (fungsional, imperatif, berorientasi objek, meta)
Memiliki lebih banyak paradigma tidak selalu baik. Satu kali memiliki lebih sedikit paradigma bisa menjadi hal yang baik adalah ketika ada bahasa yang hanya fungsional. Fungsi dalam salah satu bahasa ini terkadang melakukan lebih sedikit pekerjaan (seperti hanya membahas bagian-bagian dari sekelompok hal yang sebenarnya perlu dilakukan) daripada yang mungkin harus dilakukan jika bahasa tersebut juga prosedural.
Banyak paradigma pemrograman yang terkenal karena hal-hal yang mereka tidak biarkan orang lakukan seperti halnya yang mereka biarkan orang lakukan. Satu waktu di mana hal ini benar adalah bahasa fungsional. Ketika bahasa fungsional hanya atau sebagian besar fungsional, biasanya tidak akan mengizinkan efek samping. Di lain waktu di mana hal ini benar adalah pemrograman terstruktur: ini berbeda dari bahasa imperatif normal karena tidak membiarkan programmer menggunakan "pernyataan goto" (pernyataan yang memberi tahu program untuk pergi ke langkah sebelumnya). Karena alasan ini dan alasan lainnya, orang terkadang berpikir paradigma baru tidak mengizinkan cukup banyak hal. Namun, kadang-kadang tidak apa-apa bagi komputer untuk tidak membiarkan orang melakukan sesuatu: hal ini dapat membantu orang menghindari masalah dengan kode mereka, dan membiarkan komputer membuat tebakan sehingga dapat menjalankan kode lebih cepat, atau bahkan memeriksa kode untuk masalah sebelum kode berjalan!
Ikhtisar berbagai paradigma pemrograman menurut Peter Van Roy
Masalah dengan paradigma
Beberapa orang yang mempelajari bahasa pemrograman tidak menyukai paradigma yang digunakan untuk mengelompokkan bahasa pemrograman, seperti Harper dan Krishnamurthi. Orang-orang tersebut mengatakan bahwa banyak bahasa pemrograman tidak bisa hanya dikelompokkan ke dalam paradigma karena bahasa meminjam hal-hal dan ide-ide dari banyak paradigma.
Sejarah
Paradigma baru telah diciptakan dari waktu ke waktu, dan orang-orang menunjukkannya pada saat itu, atau ketika melihat ke belakang. Salah satu paradigma pertama yang diakui sebagai cara baru pemrograman adalah pemrograman terstruktur dari tahun 1960-an. Gagasan tentang "paradigma pemrograman" berasal dari tahun 1978 jika tidak lebih awal, ketika Robert W. Floyd menggunakannya saat mengajar. Kata "paradigma" seperti yang dimaksud Robert pertama kali digunakan oleh Thomas Kuhn dalam bukunya, The Structure of Scientific Revolutions (1962).
Kode mesin
Paradigma pemrograman yang paling rendah (paling dekat dengan bagaimana komputer suka memahami sesuatu) dan tertua adalah kode mesin, sebuah paradigma imperatif. Petunjuk dalam kode mesin hanyalah sekumpulan angka dalam urutan tertentu. Bahasa assembly sedikit kurang rendah (dan sedikit kurang tua). Dalam bahasa assembly, petunjuk untuk komputer diberi mnemonik (nama yang lebih mudah diingat), dan alamat memori (petunjuk untuk menemukan sepotong informasi di komputer) dapat diberi nama. Ini kadang-kadang disebut bahasa generasi pertama dan kedua.
Pada tahun 1960-an, bahasa assembly dibuat lebih baik dengan menambahkan hal-hal baru seperti library COPY, macro (potongan kode "khusus" yang diubah menjadi kode normal sebelum program mulai berjalan), prosedur yang berjalan (kumpulan petunjuk yang diberi nama dan disimpan untuk nanti), dan variabel (item yang diberi nama dan disimpan untuk nanti) dari luar program. Hal ini memungkinkan orang menggunakan beberapa kode di lebih dari satu proyek, dan tidak perlu khawatir dengan masalah hardware-spesifik (masalah yang hanya terjadi pada satu jenis komputer) berkat perintah (nama untuk arahan) seperti READ/WRITE/GET/PUT.
Assembly, dan kadang-kadang masih digunakan dalam sistem yang penting agar kodenya cepat, dan juga banyak digunakan dalam sistem tertanam karena memungkinkan pengguna memiliki kontrol yang tepat atas apa yang dilakukan mesin.
Bahasa prosedural
Pada akhir tahun 1960-an, orang-orang mulai menciptakan bahasa prosedural. Bahasa-bahasa generasi ketiga ini (beberapa yang pertama dari apa yang sekarang kita sebut sebagai bahasa tingkat tinggi) memiliki kata-kata yang terkait dengan apa yang mereka coba selesaikan. Sebagai contoh,
- COmmon Business Oriented Language (COBOL) - menggunakan kata-kata seperti file, move dan copy.
- FORMULA TRANSPORTASI (FORTRAN) - menggunakan kata-kata dan simbol matematika (bentuk yang digunakan dalam penulisan dan pengetikan). Ini dikembangkan sebagian besar untuk sains dan teknik.
- ALGOrithmic Language (ALGOL) - dibuat untuk menulis algoritma (serangkaian langkah yang memberitahu komputer apa yang harus dilakukan). Bahasa ini menggunakan kata-kata dan simbol-simbol matematika, seperti FORTRAN.
- Programming Language One (PL/I) - seharusnya berguna bagi semua orang.
- Beginners All purpose Symbolic Instruction Code (BASIC) - dibuat untuk membantu program pemula.
- C - bahasa pemrograman yang dimaksudkan untuk melakukan banyak hal. Dennis Ritchie mengerjakannya dari tahun 1969 hingga 1973 di AT&T Bell Labs.
Pemrograman berorientasi objek
Setelah banyak orang mulai menggunakan bahasa prosedural, mereka menemukan bahasa pemrograman berorientasi objek. Dalam bahasa-bahasa ini, data dan "metode-metodenya" (cara memanipulasi data) dimasukkan ke dalam satu "objek". Beberapa programmer, seperti Richard Stallman, tidak setuju bahwa bahasa berorientasi objek lebih baik untuk menjelaskan ide ke komputer daripada bahasa prosedural.
Karena pemrograman berorientasi objek adalah sebuah paradigma, bukan bahasa, orang telah membuat bahasa assembly berorientasi objek seperti HLA (High Level Assembly).
Paradigma deklaratif
Pada saat yang sama, beberapa orang membuat bahasa pemrograman deklaratif. Bahasa yang terkenal deklaratif adalah SQL (bahasa untuk menambah dan menghapus sesuatu dari tabel).
Halaman terkait
- Pola Pikir
- Jenis sistem
- Kelengkapan Turing
Pertanyaan dan Jawaban
T: Apa yang dimaksud dengan paradigma pemrograman?
A: Paradigma pemrograman adalah cara pengelompokan bahasa pemrograman berdasarkan cara mereka beroperasi.
T: Apa dua kelompok utama paradigma?
J: Dua kelompok utama paradigma adalah imperatif dan deklaratif.
T: Apa perbedaan paradigma imperatif dan deklaratif?
J: Paradigma imperatif melihat cara kode dijalankan, seperti mengizinkan efek samping atau harus melakukan sesuatu dalam urutan tertentu, sementara paradigma deklaratif melihat cara kode dikelompokkan, seperti memasukkan kode ke dalam satu atau dua bagian (atau sebaliknya, banyak potongan kecil).
T: Dapatkah sebuah bahasa menjadi paradigma imperatif dan deklaratif?
J: Ya, sebuah bahasa bisa menjadi paradigma imperatif dan deklaratif pada saat yang bersamaan.
T: Bagaimana paradigma pemrograman mengelompokkan bahasa?
J: Paradigma pemrograman mengelompokkan bahasa berdasarkan apa yang mereka lakukan. Mereka melihat bagaimana kode dijalankan, bagaimana kode itu dikelompokkan, dan urutan dan potongan apa yang membentuk program.
Q: Apakah ada jenis paradigma pemrograman lain selain imperatif dan deklaratif?
J: Ya, ada jenis paradigma pemrograman lain selain imperatif dan deklaratif. Misalnya, beberapa melihat cara kode dijalankan (seperti mengizinkan efek samping), sementara yang lain melihat cara kode dikelompokkan (seperti menempatkan kode menjadi satu atau dua bagian).
T: Apakah setiap bahasa hanya termasuk dalam satu jenis paradigma pemrograman?
J: Tidak, tidak setiap bahasa hanya termasuk dalam satu jenis paradigma pemrograman; beberapa bahasa dapat berada di lebih dari satu jenis paradigma.