Framework adalah seperangkat alat dalam pemrograman untuk membangun perangkat lunak dan sistem yang terstruktur dengan baik dan andal. Dalam panduan ini, kami akan menjelaskan apa itu kerangka kerja dalam pemrograman secara sederhana, menjelaskan mengapa kerangka kerja diperlukan, dan merinci berbagai contoh framework.
Apa itu Framework?
Definisi kamus framework sebagai “struktur dasar yang mendasari suatu sistem” tidak jauh dari pemahaman apa itu framework dalam pemrograman. Baik sistemnya berupa rumah, mobil, teori, atau aplikasi seluler, konsep kerangkanya sama: memberikan dukungan dan ‘panduan’ dasar dari struktur yang sedang dibangun.
Framework dalam pemrograman adalah alat yang menyediakan komponen atau solusi siap pakai yang disesuaikan untuk mempercepat pengembangan. Kerangka kerja mungkin termasuk perpustakaan, tetapi didefinisikan oleh prinsip inversi kontrol (IoC). Dengan pemrograman tradisional, kode kustom memanggil ke perpustakaan untuk mengakses kode yang dapat digunakan kembali. Dengan IoC, kerangka kerja memanggil potongan kode khusus bila diperlukan.
Framework dapat mencakup program pendukung, kompiler, pustaka kode, kumpulan alat, dan API untuk mengembangkan perangkat lunak dan membuat sistem. Kerangka kerja sumber terbuka selalu diperbarui dan ditingkatkan.
Mengapa Framework Digunakan dalam Software Development?
Tujuan framework adalah untuk membantu dalam pengembangan, menyediakan fungsionalitas standar tingkat rendah sehingga pengembang dapat memfokuskan upaya pada elemen yang membuat proyek unik.
Penggunaan fungsionalitas berkualitas tinggi yang telah diperiksa sebelumnya meningkatkan keandalan perangkat lunak, mempercepat waktu pemrograman, dan menyederhanakan pengujian. Dengan basis pengguna yang aktif dan peningkatan kode yang berkelanjutan, kerangka kerja membantu meningkatkan keamanan dan menawarkan basis dukungan.
Pada akhirnya, kerangka kerja digunakan untuk menghemat waktu dan uang.
Apa Fitur Framework yang Baik?
Ada banyak jenis kerangka kerja, dengan beberapa lebih populer daripada yang lain. Pengembang sering memilih kerangka kerja yang paling mereka kenal, tetapi kerangka kerja itu mungkin tidak tepat untuk pekerjaan itu. Sebagai gantinya, pertimbangkan fitur kerangka kerja yang baik berikut ini ketika memutuskan kerangka kerja yang tepat untuk proyek yang sedang dikerjakan:
- Fungsionalitas – pilih kerangka kerja yang menyediakan fungsionalitas yang dibutuhkan untuk proyek yang ada, dengan mempertimbangkan bahwa setiap kerangka kerja memiliki batasannya dan tidak berinvestasi dalam kerangka kerja yang jauh lebih banyak daripada yang dibutuhkan proyek Anda.
- Konsistensi – kerangka kerja dapat membantu konsistensi untuk tim besar atau terdistribusi
- Dokumentasi – pilih kerangka kerja yang memiliki kode yang terdokumentasi dengan baik dan yang menyediakan pelatihan implementasi
- Komunitas Aktif – kerangka kerja hanya sekuat basis pengguna dukungan. Pilih kerangka kerja yang mapan dengan basis pengguna aktif.
Tantangan Menggunakan Software Framework
Software framework dapat menjadi penopang yang mahal jika pengembang tidak kuat dalam bahasa yang menjadi dasar kerangka kerja atau jika pengembang terlalu bergantung pada kerangka kerja alih-alih kode khusus, masalah yang dapat menyebabkan pengasapan perangkat lunak dan masalah kinerja.
Ada risiko dalam memilih kerangka kerja yang terlalu baru atau tidak didukung dengan baik, yang dapat memerlukan perkakas ulang yang mahal jika kerangka itu menjadi usang. Demikian pula, jika kerangka kerja memiliki keterbatasan yang tidak dipahami dengan baik di awal, ini dapat berdampak pada proyek.
Jenis Kerangka Pemrograman
Ada berbagai kerangka kerja pemrograman yang berbeda, masing-masing dibangun di atas bahasa pemrograman dan berspesialisasi dalam fungsinya, baik itu bekerja pada aplikasi web, database, atau aplikasi seluler. Di bagian ini, kami akan memecah berbagai jenis kerangka kerja pemrograman, kerangka kerja populer untuk setiap jenis, dan contoh umum.
1. Web Framework
Framework aplikasi web (WAF), atau kerangka kerja web (WF), mendukung pengembangan aplikasi web dengan layanan web, sumber daya web, dan API web. Ada kerangka kerja web yang berbeda untuk front-end (bagaimana tampilan aplikasi web) dan back-end (cara kerjanya).
sisi klien dan sisi server
2. Framework sisi Front-End
Framework front-end (kerangka kerja sisi klien) menyediakan kerangka dasar dan komponen HTML, CSS, dan JavaScript untuk membangun front-end website atau aplikasi web.
Angular
Apa itu Sudut? Angular adalah kerangka kerja aplikasi web sumber terbuka berdasarkan TypeScript dan dikelola oleh Tim Angular di Google. Angular menampilkan ekosistem besar alat dan solusi yang disumbangkan oleh basis pengguna yang luas. Angular sangat cocok untuk aplikasi web yang sangat disesuaikan dan aplikasi web progresif (PWA).
AngularJS mengacu pada semua versi 1.X dari kerangka kerja yang sebelumnya berbasis JavaScript, dengan Angular menjadi penulisan ulang lengkap menggunakan TypeScript untuk semua versi 2 dan lebih tinggi. Ada lebih dari 1,4 juta situs web langsung menggunakan Angular.
Contoh Kerangka Sudut: PayPal, Upwork, Google, Nike
React JS
Apa itu React JS? React JS (React) adalah framework sumber terbuka untuk JavaScript untuk membangun antarmuka pengguna (UI) dan komponennya. Meskipun fokusnya yang sempit mungkin menjadi faktor pembatas, React mudah digunakan, memiliki ekosistem paket yang kaya, dan sangat cocok untuk aplikasi yang kaya fitur. React dikelola oleh Facebook dan komunitas yang lebih luas dan saat ini merupakan pengunduhan kerangka kerja front-end paling populer dalam satu tahun terakhir.
Contoh Framework React JS: Facebook, Instagram, Uber, Netflix, Airbnb
Vue JS
Apa itu VueJS? Vue JS (Vue.js) adalah framework berbasis JavaScript lainnya, tetapi dengan fleksibilitas yang lebih besar seputar penggunaan HTML dan CSS dan arsitektur model-view-viewmodel (MVVM). Vue mudah dipelajari dan memiliki komunitas dukungan yang sangat besar.
Vue saat ini adalah unduhan paling populer kedua di belakang React, tetapi di depan Angular.
Contoh Framework Vue JS: Trustpilot, Nintendo, Behance
3. Framework sisi Back-End
Framework back-end (kerangka kerja sisi server) menyediakan fungsionalitas umum yang dapat dirakit atau dibangun untuk membantu dalam pengembangan. Pilihan dalam kerangka akan ditentukan oleh bahasa pemrograman yang dipilih untuk pengembangan serta platform target.
Ruby on Rails
Apa itu Ruby on Rails? Ruby on Rails adalah framework sumber terbuka yang ditulis dengan bahasa Ruby. Ruby berjalan di Linux dan didasarkan pada arsitektur model-view-controller (MVC). Ruby on Rails aman dan dapat diskalakan serta memanfaatkan perpustakaan pihak ketiga yang besar untuk mempercepat pengembangan.
Hampir 17% dari 10k situs web teratas memanfaatkan Ruby on Rails.
Contoh Framework Ruby on Rails: Airbnb, Kickstarter, BaseCamp, CafePress
Framework PHP (Laravel, CodeIgniter, CakePHP)
Apa itu Framework PHP? PHP berjalan di berbagai platform dan kompatibel secara luas, membuatnya populer sebagai bahasa untuk pengembangan back-end. Kerangka kerja PHP yang paling populer adalah Laravel, CodeIgniter dan CakePHP.
Laravel menampilkan sintaks yang ekspresif dan elegan, membantu membuat pengkodean lebih cepat, dan memanfaatkan mesin template Blade yang kuat. CodeIgniter menawarkan kerangka kerja ringan yang memiliki salah satu footprint terkecil, menghemat waktu dengan lebih sedikit coding yang dibutuhkan. CakePHP dianggap sebagai “workhouse” dari ketiganya, memanfaatkan sistem scaffolding dan tunduk pada konvensi daripada konfigurasi, yang menghemat waktu dalam pengembangan.
Contoh Kerangka Kerja PHP: MyRank (Laravel), Casio (CodeIgniter), Nissan (CodeIgniter), 10FastFingers (CakePHP)
Django
Apa itu Django? Django adalah kerangka kerja sumber terbuka untuk Python yang mendorong pengembangan yang cepat, dapat diskalakan, dan desain yang bersih. Tujuan Django adalah untuk menyediakan hampir semua yang Anda butuhkan, membuatnya cepat untuk mengumpulkan apa yang Anda butuhkan dari ekstra yang ada. Django populer untuk efek visual, permainan, dan layanan interaktif.
Contoh Framework Django: Disqus, Instagram, Spotify, YouTube
BACA JUGA : Apa Itu Artificial Intelligence (AI)? Cara Kerja, Komponen, Jenis, Tujuan
ASP.NET dan ASP.NET Core
Apa itu ASP.NET? ASP.NET adalah framework sumber terbuka lintas platform yang dikembangkan oleh Microsoft, dengan ASP.NET Core diimplementasikan kembali sebagai kerangka kerja web modular. ASP.net mendukung aplikasi dan layanan web dengan bahasa pemrograman .NET, C#, F#, dan Visual Basic.
Contoh ASP.Net Framework: Microsoft, StackOverflow, GoDaddy
4. Mobile App Development Frameworks
Framework pengembangan seluler (kerangka pengembangan aplikasi seluler) mendukung pengembangan aplikasi seluler untuk lingkungan tertentu, diklasifikasikan sebagai asli (khusus platform), hibrida (cangkang ujung belakang asli dengan ujung depan aplikasi web), atau lintas platform (basis kode bersama untuk semua). Ada banyak kerangka kerja pengembangan aplikasi seluler yang tidak dibahas di sini termasuk, di antaranya, Swiftic, Native Scripts, dan Ionic.
Bereaksi Asli
Apa itu React Native? React Native adalah framework UI JavaScript open-source yang dibuat oleh Facebook dan digunakan untuk mengembangkan aplikasi untuk Android, iOS, macOS, tvOS, web, Windows, dan UWP. React Native menggunakan library React untuk UI, menargetkan platform seluler, bukan browser.
Contoh Framework React Native: Facebook, Skype, Facebook, Instagram, Tesla
Flutter
Apa itu Flutter? Flutter adalah framework UI mobile open-source Google untuk membuat aplikasi lintas platform dan, yang terbaru dengan Flutter 2, aplikasi web dan desktop (asli). Flutter didasarkan pada Dart dan dianggap sebagai framework modern, mudah digunakan dan memanfaatkan hot reload untuk melihat hasil secara real-time.
Contoh Framework Flutter: Amazon, Microsoft, Adobe, eBay, iklan Google
Xamarin
Apa itu Xamarin? Xamarin adalah kerangka kerja sumber terbuka yang menggunakan C# dan .NET untuk membuat aplikasi, yang dimiliki oleh Microsoft. Xamarin adalah kerangka kerja lintas platform yang memungkinkan Anda untuk menggunakan kembali basis kode bersama. Dengan Xamarin, komponen UI diubah menjadi elemen khusus platform saat runtime, memungkinkan pengalaman yang lebih asli untuk iOS, Android, dan Windows.
Contoh Framework Xamarin: Alaska Airlines, Microsoft Azure, Outback, BBC Goodfood
5. Content Management Frameworks
Content Management System (CMS) adalah perangkat lunak yang memungkinkan pengguna untuk membangun, mengatur, mengirimkan, dan memodifikasi konten yang berbeda termasuk posting blog, eBook, aplikasi seluler, atau solusi online lainnya. Kerangka kerja manajemen konten (CMF), kadang-kadang disebut sebagai platform CMS, adalah alat yang memasok komponen yang dapat digunakan kembali untuk mengelola konten web, berbagi aspek kerangka aplikasi web, dan CMS.
Keputusan seputar kerangka kerja CMS melampaui sekadar harga, bahasa, atau kemudahan penggunaan hingga pertimbangan penting seputar SEO, personalisasi, dan keamanan.
WordPress
Apa itu WordPress? WordPress adalah platform CMS open-source gratis terkemuka, digunakan oleh lebih dari 42% dari semua situs web.
WordPress sangat ramah pengguna, membuatnya ideal untuk pengguna non-teknis yang mengembangkan blog kecil atau untuk merek besar yang mendukung semuanya, mulai dari situs mikro hingga toko eCommerce besar. Banyak plug-in, tema, dan ekstensi membuat tulang punggung untuk situs yang dipersonalisasi dan fleksibel yang memiliki potensi untuk memastikan – selama Anda memilih plugin yang diperiksa dan diperbarui secara berkala.
Contoh Kerangka WordPress: Sony Music, Angry Birds, TechCrunch, The New Yorker, BBC America
Drupal
Apa itu Drupal? Drupal adalah CMS modular open-source gratis yang ditulis dalam PHP yang didukung oleh komunitas besar. Namun, Drupal membutuhkan lebih banyak pengetahuan teknis daripada beberapa kerangka kerja lainnya.
Drupal dikenal dengan taksonominya yang fleksibel, sehingga cocok untuk proyek yang memiliki banyak konten dan/atau banyak fitur komunitas dan tim webmaster besar.
Contoh Kerangka Drupal: Arsenal FC, InStyle, Mattel, Tesla, Warner Bros. Records
Joomla
Apa itu Joomla? Joomla adalah CMS open-source gratis yang, seperti Drupal dan WordPress, mudah disesuaikan dengan template dan ekstensi. Joomla lebih mudah digunakan daripada Drupal untuk non-teknis, tetapi sedikit lebih sulit daripada WordPress. Joomla adalah platform CMS terpopuler ketiga, yang dioptimalkan untuk SEO dan memiliki rekam jejak keamanan yang bagus.
Contoh Kerangka Kerja Joomla: IKEA, LINUX, Holiday Inn, Universitas Harvard
Kentico
Apa itu Kentico? Kentico adalah kerangka kerja / platform komersial yang dibangun di ASP.NET dan Microsoft SQL Server, menawarkan manfaat dari implementasi yang lebih cepat dengan lebih banyak opsi yang sudah jadi. Kentico memanfaatkan pembuatan halaman dan alat pengeditan sederhana.
Contoh Kerangka Kentico: Skype.com, NewsMax, Swagger.io, Gibson, First American Bank
BACA JUGA : Apa itu Database Server? Jenis, Cara Kerja, Contoh Server Database
6. Data Science Framework
Ilmu data adalah bidang luas yang terkait dengan penerapan statistik, metode ilmiah, algoritma, atau sistem untuk mengekstraksi pengetahuan dari data. Saat ini, ilmu data adalah bidang minat yang berkembang pesat, sebagian didorong oleh peluang kecerdasan buatan dan pembelajaran mesin.
Sementara sebagian besar ilmu data melibatkan penggunaan Python, ada peningkatan penggunaan kerangka kerja ilmu data termasuk TensorFlow, PyTorch, Apache Spark, dan NumPy. Panduan ini akan menguraikan salah satu kerangka kerja tersebut:
Tensorflow
Apa itu TensorFlow? TensorFlow adalah platform pembelajaran mesin (ML) sumber terbuka, yang dikembangkan oleh Google, yang didasarkan pada jaringan saraf pembelajaran mendalam. TensorFlow menyediakan library dan alat open source untuk membuat dan men-deploy aplikasi yang didukung ML. Pembelajaran mendalam pada perangkat berupa pengenalan ucapan, pengenalan gambar, pengenalan gerakan, lokalisasi objek, terjemahan, pengenalan karakter optik, sintesis suara, dan klasifikasi teks.
Contoh Kerangka Tensorflow: Google Terjemahan, FaceNet, Mozilla’s Deep Speech, Google RankBrain
Kesalahpahaman Umum Tentang Programming Frameworks
Mungkin ada beberapa kesalahpahaman atau kebingungan yang masih ada tentang kerangka kerja pemrograman, termasuk:
Framework vs Programming Languange
Ini adalah kesalahan umum untuk membingungkan framework dan bahasa pemrograman, mengingat keduanya digunakan untuk mengembangkan perangkat lunak. Cara terbaik untuk membedakan keduanya adalah dengan tujuan: sementara bahasa dapat membantu Anda membangun banyak hal, framework pemrograman dibuat untuk satu tujuan saja baik aplikasi web, aplikasi seluler, CMS, atau ilmu data (seperti di atas)
Bahasa pemrograman tertentu adalah dasar untuk setiap kerangka kerja pemrograman: instruksi yang memberi tahu kerangka kerja apa yang harus dilakukan. Kerangka kerja kemudian adalah platform untuk membantu Anda mengembangkan perangkat lunak. Anda tidak harus menggunakan kerangka kerja untuk mengembangkan perangkat lunak, tetapi semua perangkat lunak dikembangkan dengan bahasa pemrograman.
Framework vs Library
Sangat umum untuk membingungkan istilah kerangka kerja dan perpustakaan, karena keduanya adalah alat yang digunakan dalam pemrograman. Faktanya, seperti yang dijelaskan di atas di bagian “Apa itu Framework?”, pustaka hanyalah salah satu alat yang tersedia dalam kerangka kerja.
Framework adalah struktur atau lingkungan Anda untuk membangun perangkat lunak Anda: kerangka tersebut berisi akses ke berbagai alat, termasuk perpustakaan, untuk membantu dalam pembuatan Anda.
Library adalah seperangkat komponen tingkat rendah yang dapat dipanggil (dipanggil) untuk hasil tertentu. Anda dapat mengakses pustaka secara langsung, dipanggil dari kode, atau kerangka kerja dapat menyediakan akses ke pustaka dan memanggil kode (inversi kontrol).
Kesimpulan
Framework pemrograman adalah alat penting dalam mengembangkan perangkat lunak untuk pasar saat ini dengan cara yang cepat, terukur, andal, dan aman. Baik produk berupa situs web atau aplikasi seluler, kerangka kerja memberikan titik awal untuk memecahkan masalah umum, mengintegrasikan praktik terbaik pemrograman, dan tetap mengikuti opsi teknologi terbaru di luar sana.