WPF (Windows Presentation Foundation) adalah teknologi baru yang dirilis oleh Microsoft bersamaan dengan .NET Framework 3.0 (versi sekarang adalah 3.5). Selain WPF .NET 3.0 juga menyertakan beberapa teknologi baru yaitu WF (Workflow Foundation) untuk pemodelan dan WCF (Windows Communication Foundation) yang merupakan pengembangan dari Web Services.
WPF merupakan next generation graphic platform yang memungkinkan anda membuat advance UI (User Interface) yang memadukan document, media, 2D dan 3D, dan animation yang memiliki kemiripan dengan pemrograman web. WPF dapat digunakan pada platform windows seperti Win XP, Vista, dan Windows Server 2003 / 2008.
Sebelum ada teknologi WPF untuk mengembangkan aplikasi windows anda harus menggunakan beberapa teknologi yang berbeda, misalnya untuk menambahkan form user control seperti button kedalam aplikasi anda harus menggunakan komponen Windows Form, untuk menambahkan 2D Graphic anda harus menggunakan library GDI+, untuk 3D Graphic anda harus menggunakan library DirectX atau OpenGL.
WPF didesain untuk menyediakan solusi yang utuh untuk pengembangan aplikasi, WPF menyediakan integrasi dari teknologi yang berbeda, dengan WPF anda dapat menggabungkan komponen vector graphic, complex animation, dan media kedalam aplikasi. Fitur yang baru dalam WPF (.NET 3.5) adalah fitur 3D Graphic yang sudah built-in berbasis pada teknologi DirectX.
ADT atau Abstract Data Type adalah cara menyusun, mengorganisasi, dan memanipulasi koleksi data.
ADT merupakan model matematika yang merujuk pada sejumlah bentuk struktur data yang memiliki kegunaan atau perilaku yang serupa; atau suatu tipe data dari suatu bahasa pemrograman yang memiliki sematik yang serupa. Tipe data abstrak umumnya didefinisikan tidak secara langsung, melainkan hanya melalui operasi matematis tertentu sehingga membutuhkan penggunaan tipe data tersebut meski dengan risiko kompleksitas yang lebih tinggi atas operasi tersebut.
Array adalah sebuah variabel yang bisa menyimpan banyak data dalam satu variabel. Array menggunakan indeks untuk memudahkan akses terhadap data yang disimpannya.
Indeks array selalu dimulai dari 0. Indeks Array tidak selalu dalam bentuk angka. Bisa juga karakter atau teks.
Proyek pengembangan Java dimulai pada tahun 1991 oleh James Gosling, Mike Sherida, dan Patrick Naughton. Awalnya Java bernama Oak, nama ini diambil dari nama pohon yang berada di dekat kantor James Gosling.
Sintaks Java mirip seperti C/C++, karena Java banyak terinspirasi dari keuda bahasa ini.
Java dirancang untuk tujuan umum (general-purpose) dan sepenuhnya menganut paradigma OOP (Object Oriented Programming).
OOP adalah paradigma pemrograman yang berbasis pada objek. Setiap kita membuat program, maka wajib hukumnya membuat objek terlebih dahulu.
Ya.. namanya juga OOP, program yang berorientasikan objek.
Microsoft .NET Framework (dibaca Microsoft Dot Net Framework) atau lebih diketahui dengan singkatan dot net (tidak berkomunikasi dengan domain .net) merupakan sebuah perangkat lunak kerangka kerja yang berjalan utamanya pada sistem operasi Microsoft Windows, saat ini .NET Framework umumnya telah terintegrasi dalam distribusi standar Windows (mulai dari Windows Server 2003 dan versi-versi Windows yang lebih baru).
Kerangka kerja ini menyediakan sejumlah luhur pustaka pemrograman komputer dan mendukung beberapa bahasa pemrograman serta interoperabilitas yang adun sehingga memungkinkan bahasa-bahasa tersebut berfungsi satu dengan lain dalam pengembangan sistem. Berbeda halnya dengan tipikal aplikasi konvensional umumnya, program yang ditulis dengan memanfaatkan .NET Framework berjalan pada lingkungan perangkat lunak melalui Common Language Runtime, dan bukan perangkat keras secara langsung. Hal ini memungkinkan aplikasi yang diwujudkan di atas .NET secara teoritis mampu berjalan pada perangkat keras apapun yang didukung oleh .NET Framework. Perangkat lunak ini merupakan kunci penawaran utama dari Microsoft, dan dimaksudkan untuk digunakan oleh sebagian luhur aplikasi-aplikasi baru yang diwujudkan untuk platform Windows.
Pada landasannya, .NET Framework memiliki 2 komponen utama: CLR dan .NET Framework Class Library.
Program - program yang ditulis untuk .NET Framework dijalankan pada suatu lingkungan software yang mengatur persyaratan-persyaratan runtime program. Runtime environment ini, yang juga merupakan suatu anggota dari .NET Framework, diketahui sebagai Common Language Runtime (CLR). CLR menyediakan penampilan dari application virtual machine, sehingga para programmer tidak perlu mengetahui kemampuan CPU tertentu yang akan menjalankan program. CLR juga menyediakan layanan-layanan penting lainnya seperti jaminan keamanan, pengaturan memori, garbage collection dan exception handling / penanganan kesalahan pada saat runtime. Class library dan CLR ini merupakan komponen inti dari .NET Framework. Kerangka kerja itu pun diwujudkan sedemikian rupa supaya para programmer mampu mengembangkan program komputer dengan jauh lebih mudah, dan juga untuk mengurangi kerawanan aplikasi dan juga komputer dari beberapa ancaman keamanan.
CLR merupakan turunan dari CLI (Common Language Infrastructure) yang saat ini merupakan standar ECMA. Untuk keterangan lebih lanjut, silakan mengunjungi situs ECMA atau kunjungi sumber pranala di bawah artikel ini.
Solusi-solusi program pembentuk class library dari .NET Framework mengcover ajang yang lapang dari kebutuhan program pada aspek user interface, pengaksesan data, koneksi basis data, kriptografi, pembuatan aplikasi berbasis web, algoritma numerik, dan komunikasi jaringan. Fungsi-fungsi yang aci dalam class library mampu digabungkan oleh programmer dengan kodenya sendiri untuk membuat suatu program aplikasi baru.
Pada berbagai literatur dan pustaka di Internet, .NET Framework seringkali disingkat diwujudkan menjadi .NET saja.
.NET Framework sebagai platform
.NET seringkali juga mampu diterjemahkan sebagai platform, yang merupakan suatu lingkungan terpadu untuk pengembangan dan eksekusi untuk berbagai macam bahasa pemrograman dan himpunan library untuk bekerja sama membuat dan menjalankan aplikasi berbasis Windows yang lebih mudah untuk diwujudkan, diatur, didistribusikan, dan diintegrasikan dengan sistem jaringan lain.
Dalam perkembangannya, .NET seringkali dikaitkan pula dengan versi Visual Studio yang sesuai dengan dukungan versi yang bersangkutan untuk pengembangan aplikasi. Berikut ini versi .NET dan versi Visual Studio yang terkait:
Versi
Microsoft memulai pengembangan .NET Framework di belakang 1990 dengan nama permulaan Next Generation Windows Services (NGWS). Pada belakang 2000 versi beta .NET 1.0 dirilis
Versi 3.0 dari .NET Framework disertakan di Windows Server 2008 dan Windows Vista. Version 3.5 disertakan di Windows 7, dan bisa juga diinstall di Windows XP maupun Windows Server 2003. Pada 12 April 2010 .NET Framework 4 dirilis bersamaan dengan applikasi Visual Studio 2010.
.NET Framework terdiri dari dua versi adalah mobile dan embedded. Versi mini dari framework .NET Compact Framework, tersedia untuk platform smartphone khususnya Windows CE dan Windows Mobile. .NET Micro Framework lebih ditargetkan untuk device yang membutuhkan kinerja tinggi.
.NET 2.0, 3.0 dan 3.5 memiliki CLR yang sama. Dengan demikian, struktur IL juga sama. Adapun fasilitas penambahan kata kunci pemrograman seperti pada LINQ yang sebenarnya lebih mengarah sebagai fitur bahasa pemrograman (programming language feature) sehingga bukan merupakan fitur CLR.
.NET pada sistem operasi selain Windows
Implementasi .NET 2.0 saat ini juga memiliki Mono, perangkat lunak varian yang mampu berjalan di Linux dan UNIX. Mono dikembangkan oleh Ximian, yang selanjutnya diakuisisi oleh Novell. Mono merupakan platform sumber membuka, gunanya semua orang mampu berpartisipasi di dalam pengembangan Mono.
Pada mata kuliah ini diajarkan berbagai macam struktur data yang dapat diimplementasikan dalam program komputer, serta bagaimana memilih struktur data yang tepat untuk suatu kasus tertentu. Materi yang diajarkan meliputi:
Abstract Data Type (ADT);
Representasi struktur data linier dan primitif-primitifnya (array, linked list, variasi linked list, stack, queue);
Representasi struktur data non-linier dan primitif-primitifnya (tree, graph, multilist); dan
Algoritma penelusuran (preorder, inorder, postorder) dan pencarian (BFS, DFS).
Dalam istilah ilmu komputer, sebuah struktur data adalah cara penyimpanan, penyusunan dan pengaturan data di dalam media penyimpanan komputer sehingga data tersebut dapat digunakan secara efisien.
Dalam teknik pemrograman, struktur data berarti tata letak data yang berisi kolom-kolom data, baik itu kolom yang tampak oleh pengguna (user) atau pun kolom yang hanya digunakan untuk keperluan pemrograman yang tidak tampak oleh pengguna. Setiap baris dari kumpulan kolom-kolom tersebut dinamakan catatan (record). Lebar kolom untuk data dapat berubah dan bervariasi. Ada kolom yang lebarnya berubah secara dinamis sesuai masukan dari pengguna, dan juga ada kolom yang lebarnya tetap. Dengan sifatnya ini, sebuah struktur data dapat diterapkan untuk pengolahan database (misalnya untuk keperluan data keuangan) atau untuk pengolah kata (word processor) yang kolomnya berubah secara dinamis. Contoh struktur data dapat dilihat pada berkas-berkas lembar-sebar (spreadsheet), pangkal-data (database), pengolahan kata, citra yang dipampat (dikompres), juga pemampatan berkas dengan teknik tertentu yang memanfaatkan struktur data.
Struktur Data menyangkut susunan fisik data dalam komputer dan berfungsi agar:
penyimpanan lebih efesien
Agar tersusun lebih terurut
Agar data retrieval lebih efektif
Tujuan Pembelajaran
Mahasiswa mampu membangun algoritma untuk primitif struktur data Linked List dan mengimplementasikannya dalam Bahasa Pemrograman.
Mahasiswa mampu membangun algoritma untuk primitif struktur data Stack dan Queue, serta mengimplementasikannya dalam Bahasa Pemrograman.
Mahasiswa mampu membangun algoritma untuk primitif struktur data non-linear Linked List, Graph dan Tree, serta mengimplementasikannya dalam Bahasa Pemrograman
Framework (kerangka kerja) adalah istilah yang sering muncul dalam dunia developer. Istilah tersebut memiliki fungsi yang sangat besar bagi pengembangan kode program secara sistematis. Saat ini, seorang pengembang khususnya dalam bidang web development diharuskan untuk mempelajari dan menggunakan sebuah kerangka kerja dalam pembuatan perangkat lunak.
Keuntungan lain adalah untuk mengembangkan perangkat lunak dengan penyusunan kode secara terstruktur dan konsisten. Kode yang baik tentu saja merupakan kode yang dapat dimengerti oleh mesin serta pengembang (developer).
Pada artikel kali ini, akan membahas seputar apa itu framework beserta jenis – jenisnya. Untuk jenis dari kerangka kerja -nya sendiri lebih menekankan pada web development. Kita akan membahas terlebih dahulu mengenai apa itu framework.
Pengenalan Apa Itu Framework
Pertama, kita harus mengenal terlebih dahulu apa itu framework dan fungsi – fungsi apa saja yang dimilikinya. Nah, dari situ anda dapat mulai memahami tujuan dari penggunaannya dalam pengembangan website ataupun perangkat lunak.
1. Pengertian Framework
Sesuai dengan namanya sendiri, framework adalah kerangka kerja untuk mengembangkan aplikasi berbasis website maupun desktop. Kerangka kerja disini sangat membantu developer dalam menuliskan sebuah dengan lebih terstruktur dan tersusun rapi.
Kerangka kerja diciptakan untuk mempermudah kinerja dari programmer. Sehingga, seorang programmer tidak perlu untuk menuliskan kode secara berulang – ulang. Karena di dalamnya sendiri anda hanya perlu menyusun komponen – komponen pemrograman saja.
2. Fungsi Framework
Sebagai developer, tentu harus mengetahui tujuan dari penggunaannya untuk kepentingan pembuatan aplikasi. Sehingga, untuk proses pengerjaan aplikasi dapat dilakukan dengan menggunakan framework yang tepat dan sesuai dengan kebutuhan project. Berikut merupakan beberapa fungsi kerangka kerja dalam web development.
a. Kode program lebih terstruktur
Fungsi framework yang utama adalah membuat source code menjadi lebih terstruktur. Terstruktur disini, berarti program yang dibuat akan dimasukkan ke dalam setiap komponen sesuai dengan fungsi nya masing – masing.
Salah satu contoh dari kode program terstruktur dapat dilihat dari framework PHP, yaitu Laravel. Yang menggunakan konsep paradigma MVC (Model, View, Controller). Terdapat tiga komponen utama untuk mengembangkan website menggunakan model framework tersebut.
Model berfungsi untuk tempat atau wadah menampung kode program berupa algoritma pemrograman dan penghubung database aplikasi. View berfungsi sebagai wadah menampung kode program untuk membuat tampilan yang nantinya ditampilkan kepada customer / client. Dan controller berfungsi untuk menghubungkan model dan view agar menjadi sebuah website secara keseluruhan.
Dapat dikatakan juga, model disini untuk menangani tugas back end. Kemudian, view untuk menangani tugas front end. Dengan adanya konsep MVC tersebut, kode program akan tersusun rapi serta mempersingkat kerja dari developer.
b. Membantu kinerja dari developer
Fungsi yang kedua adalah membantu kinerja dari developer sendiri. Dari sini, anda pasti sudah berpikir bahwa sebenarnya dalam membuat sebuah aplikasi dapat dilakukan tanpa menggunakan bantuan framework. Tentu saja, bisa dilakukan jika proyek yang ditangani dalam lingkup kecil.
Apabila anda membuat aplikasi atau tampilan website untuk sebuah perusahaan atau organisasi besar tentu saja hal tersebut tidak disarankan bahkan mindset tersebut harus segera diubah. Framework diciptakan untuk memudahkan kinerja dari developer dalam segi efisiensi waktu serta resource yang dibutuhkan.
Selain itu, apabila dikerjakan oleh beberapa tim maka framework akan sangat membantu efektivitas kerja dan sinkronisasi. Setiap dapat langsung memahami dan mengerjakan tugas masing – masing tanpa perlu mengecek satu persatu komponen baik dari segi back end maupun front end.
c. Meningkatkan keamanan perangkat lunak / website
Selain membantu kinerja dari developer, dari segi keamanan website maupun software juga akan meningkat. Karena dalam framework telah diidentifikasi oleh beberapa developer ahli dari berbagai negara.
Kemudian, sebuah kerangka kerja juga memiliki beberapa versi yang setiap saat akan selalu ada pembaruan dari segi fitur serta untuk mengurangi adanya bugs. Keamanan akan selalu diperbarui dan dimonitoring agar tidak terjadi permasalahan yang lebih serius pada website misalnya terjadinya hacking maupun peretasan data.
Apabila anda tertarik dengan sistem keamanan aplikasi, maka anda juga dapat untuk belajar cyber security. Beberapa perusahaan maupun startup memiliki beberapa posisi untuk mengerjakan dan menangani permasalahan dalam urusan sistem keamanan perangkat lunak.
d. Pemeliharaan dan dokumentasi dari website lebih mudah
Apabila anda ingin menambahkan atau mengurangi beberapa fitur dari website yang anda buat, maka dengan menggunakan framework dapat memudahkan anda untuk melakukan hal tersebut. Mengapa? Kami beri contoh framework Laravel sendiri memiliki fitur untuk melakukan maintenance pada program.
Dengan melakukan maintenance, anda dapat mengubah versi website tersebut dan menambahkan beberapa fitur dengan lebih mudah dan aman. Sehingga, ketika ada perbaikan pada website maka terdapat notifikasi atau pesan bagi pengguna bahwa website masih dalam perbaikan.
Selanjutnya, dari segi dokumentasi juga lebih terstruktur. Anda akan sangat kerepotan apabila dalam proses dokumentasi tidak menggunakan bantuan framework. Dalam kerangka kerja, setiap dokumen aplikasi yang dibangun dapat diidentifikasi dengan mudah dan cepat.
e. Mempercepat dalam proses pembuatan website
Fungsi terakhir adalah untuk mempercepat dalam proses pembuatan website. Dalam hal ini, bukan berarti pembuatan website yang baik dikerjakan dengan cepat saja. Tetapi, proses pembuatan dapat dilakukan dengan lebih cepat dan menghasilkan produk yang berkualitas dan sesuai dengan kebutuhan customer.
Developer dapat mengembangkan aplikasi dengan menggunakan komponen – komponen yang telah tersedia dalam framework. Sehingga, tidak perlu untuk menyusun ulang dari awal kode program.
Baca Juga: Framework JavaScript: Pengertian, Kelebihan, dan Framework Terbaik
Jenis Framework untuk Web Development
Setelah mengenal apa itu framework beserta fungsinya, selanjutnya kita akan mengenal beberapa contoh yang digunakan dalam pengembangan website. Berikut ini merupakan beberapa jenis framework meliputi CSS, JavaScript, dan PHP. Dan biasanya sering digunakan dalam pengembangan sebuah website.
1. Framework CSS
CSS (Cascading Style Sheet) merupakan bahasa pemrograman yang digunakan untuk membuat tampilan, layout pada HTML agar lebih bagus dan menarik. CSS selalu digunakan untuk tim front end dalam membuat tampilan website. Berikut merupakan beberapa kerangka kerja dari CSS.
● Bootstrap
Bootstrap merupakan framework CSS yang sering digunakan para developer. Tampilan bootstrap memberikan kesan modern, dinamis, dan lebih user friendly. Selain itu, menyediakan tampilan yang responsive saat diakses melalui ponsel.
● Foundation
Framework ini banyak digunakan karena memiliki kelebihan dalam hal fungsionalitasnya. Foundation dapat bekerja dalam segala browser serta kaya akan fitur sama seperti Bootstrap.
● Semantic UI
Semantic UI memiliki kelebihan dalam hal penulisan class yang lebih mudah. Selain itu, framework yang satu ini juga menyediakan fitur yang user friendly dan komponen yang lengkap.
● Bulma
Banyak pengembang yang belum mengenal Bulma. Namun, framework ini memiliki keistimewaan dalam hal tata letaknya yang berbasis flexbox, sehingga memudahkan developer dalam mengatur tampilan dalam bentuk responsive.
● Materialize
Salah satu hal yang menarik pada framework yang satu ini adalah dapat digunakan pada website secara umum serta platform Android. Tentu saja dalam hal ini juga mencakup tampilan yang responsive serta memiliki fitur yang banyak.
2. Framework JavaScript
JavaScript (JS) merupakan bahasa pemrograman yang digunakan oleh front end dalam membuat tampilan website menjadi lebih interaktif. Website yang kompleks tentu saja harus memberikan performa dan pengalaman yang baik bagi pengguna. Dengan menggunakan JavaScript, maka website akan terlihat lebih dinamis.
JavaScript sendiri merupakan bahasa yang berjalan pada sisi front end dan tergolong dalam bahasa pemrograman tingkat tinggi. Kemudian, dapat berjalan di sisi front end maupun back end. Berikut ini merupakan beberapa framework dari JS.
● AngularJS
AngularJS merupakan framework JavaScript yang berjalan di sisi client dengan menggunakan pola MVC untuk membuat tampilan website lebih dinamis. Untuk sekarang, AngularJS bersifat open source dan sepenuhnya didasarkan pada HTML dan JavaScript. Yang mana, dapat mengubah HTML statis menjadi HTML yang dinamis.
● ReactJS
Merupakan kerangka kerja yang dikembangkan oleh Facebook. ReactJS termasuk dalam library front end yang memungkinkan untuk membuat komponen UI dapat digunakan kembali. Salah satu kelebihan dari React adalah dapat digunakan secara multi platform (website maupun mobile).
● Vue.js
Vue.js merupakan framework yang bersifat open source dan progresif untuk membangun antarmuka (interface) pengguna. Kelebihannya terletak pada proses integrasi dalam proyek menggunakan library JavaScript yang dibuat lebih mudah.
● Node.js
Node.js berjalan di sisi backend (server) yang bersifat open source, cross-platform dalam mengeksekusi kode. Node.js juga memungkinkan developer dalam menggunakan JavaScript untuk membuat konten halaman pada web secara dinamis sebelum dikirim ke web browser pengguna (user).
● EmberJS
Mengadopsi pola MVVM (Model – View – View – Model). Artinya, developer dapat mengembangkan website dan ditingkatkan sesuai dengan kebutuhan. Selain itu, EmberJS juga termasuk dalam framework JavaScript yang bersifat open source.
3. Framework PHP
PHP (Hypertext Preprocessor) merupakan bahasa pemrograman tingkat tinggi yang berjalan pada sisi server dan selalu digunakan oleh tim backend. Berikut ini merupakan beberapa framework PHP yang sering digunakan dalam pengembangan website.
● CodeIgniter (CI)
CodeIgniter merupakan framework PHP yang menggunakan arsitektur berbasis MVC. Lebih spesifiknya, pada CI menggunakan komponen yang berbeda untuk mengelola tugas pengembangan website. Keunggulan dari CI terletak pada performanya yang ringan dan dapat diandalkan.
● Laravel
Laravel merupakan salah satu framework PHP yang memiliki sintaks yang mudah dipahami dan digunakan. Kemudian, Laravel juga terintegrasi dengan library dan platform pihak ketiga, yaitu AWS (Amazon Web Services). Dan yang paling penting disini, dari segi performa memiliki core yang dapat diandalkan dengan menggunakan add – ons.
Baca Juga: Laravel vs Codeigniter? Framework Mana yang Terbaik?
● Symfony
Framework ketiga yang sering digunakan adalah Symfony. Dari nama saja cukup unik, pun memiliki fleksibilitas yang baik. Keunggulan utama apabila anda menggunakan framework ini adalah telah tersedia fungsionalitas testing bawaan untuk mengecek apakah program berjalan dengan normal atau tidak.
● Phalcon
Phalcon memiliki perbedaan dari segi penulisan kode program. Dalam hal ini, menggunakan bahasa C ekstensi dari PHP. Phalcon juga merupakan framework PHP tercepat dan memiliki performa yang baik.
● Zend
Zend merupakan framework yang berparadigma OOP (Object Oriented
Programming) yang berarsitektur MVC. Fungsionalitas pada Zend memudahkan anda untuk fokus pada komponen dan fungsi yang dibutuhkan. Karena sifatnya yang berbasis komponen, Zend banyak disebut sebagai kerangka kerja “Glue”.
Kesimpulan
● Framework adalah kerangka kerja untuk mengembangkan aplikasi berbasis website maupun desktop. Fungsinya untuk membantu kinerja dari developer, serta membuat kode program menjadi lebih terstruktur.
● Jenis – jenis terkait dengan pengembangan website terbagi menjadi tiga, yaitu framework CSS, JavaScript, dan PHP. Kemudian, dapat dikerjakan baik dari sisi client maupun server. Penggunaannya juga disesuaikan dengan kebutuhan perusahaan maupun organisasi.
● Penggunaannya saat ini penting untuk pengembangan perangkat lunak maupun website dengan kode program yang tersusun rapi dan untuk meningkatkan keamanan serta pemeliharaan yang lebih mudah.