1. Sebutkan keuntungan dan kerugian penggunaan framework dalam membangun aplikasi
- Kelebihan penggunaan framework dalam membangun perangkat lunak:
- Produktivitas yang Tinggi: Framework menyediakan kerangka kerja yang telah dibangun sebelumnya, dengan komponen dan fitur yang siap digunakan. Ini memungkinkan pengembang untuk fokus pada logika bisnis inti daripada menghabiskan waktu membangun komponen dasar. Dengan demikian, penggunaan framework dapat meningkatkan produktivitas pengembangan perangkat lunak.
- Standarisasi: Framework sering kali mengikuti praktik terbaik dan standar industri yang telah mapan. Pengembang dapat memanfaatkan konvensi dan pedoman yang ada, yang memudahkan kolaborasi dengan pengembang lain dan pemeliharaan perangkat lunak di masa depan.
- Modularitas dan Reusabilitas: Framework memungkinkan pengembang untuk membagi perangkat lunak menjadi modul yang terpisah. Ini memfasilitasi penggunaan kembali kode yang ada, sehingga menghemat waktu dan upaya dalam mengembangkan solusi yang serupa atau mengintegrasikan komponen yang sudah ada.
- Keamanan: Beberapa framework memiliki fitur keamanan bawaan yang membantu melindungi perangkat lunak dari serangan umum, seperti serangan injeksi SQL atau serangan lintas situs (XSS). Framework juga sering kali menerapkan praktik keamanan terbaik secara default, yang membantu mengurangi risiko kerentanan keamanan yang mungkin muncul.
- Dukungan Komunitas yang Aktif: Framework yang populer biasanya memiliki komunitas yang besar dan aktif. Ini berarti ada banyak sumber daya, dokumentasi, forum, dan tutorial yang tersedia. Dukungan komunitas ini dapat membantu pengembang dalam memecahkan masalah, mendapatkan bantuan, dan tetap terkini dengan perkembangan terbaru.
Meskipun ada banyak keuntungan menggunakan framework dalam pengembangan perangkat lunak, ada juga beberapa kelemahan yang perlu diperhatikan:
- Pembelajaran Awal yang Diperlukan: Menggunakan framework membutuhkan waktu untuk mempelajari dan memahami cara kerjanya, struktur, dan aturan yang terkait. Pembelajaran ini mungkin memerlukan waktu tambahan bagi pengembang yang tidak terbiasa dengan framework tertentu.
- Keterbatasan Kustomisasi: Beberapa framework mungkin memiliki batasan dalam hal kustomisasi. Jika proyek memerlukan perubahan yang signifikan atau struktur yang sangat berbeda, terkadang sulit untuk mencapai fleksibilitas yang diperlukan menggunakan framework yang telah ada.
- Ketergantungan terhadap Framework: Dalam beberapa kasus, penggunaan framework dapat membuat perangkat lunak menjadi terlalu tergantung pada framework yang digunakan. Jika ada masalah dengan framework atau framework tersebut tidak lagi didukung, dapat menjadi sulit untuk memigrasikan atau memelihara perangkat lunak tersebut di masa depan.
- Overhead Kinerja: Beberapa framework mungkin menambahkan overhead yang lebih besar pada kinerja perangkat lunak. Fitur-fitur dan lapisan abstraksi tambahan dalam framework dapat mengakibatkan waktu pemrosesan yang lebih lama atau penggunaan sumber daya yang lebih besar.
- Kesulitan Pemecahan Masalah yang Spesifik: Ketika menghadapi masalah yang kompleks atau spesifik, mengandalkan framework terkadang dapat membatasi solusi yang dapat diimplementasikan. Terkadang, membangun solusi kustom dari awal mungkin menjadi pendekatan yang lebih baik daripada mencoba memodifikasi framework yang ada.
MVC(Model-View-Controller) adalah sebuah desain arsitektur yang umum digunakan dalam pengembangan perangkat lunak. Ini memisahkan logika bisnis aplikasi menjadi tiga komponen utama: Model, View, dan Controller. Setiap komponen memiliki tanggung jawab yang berbeda dalam memproses dan menampilkan data.
- Model:
- Model mewakili data dan logika bisnis dari aplikasi. Tugas utama Model adalah mengelola data, menjalankan operasi database, memvalidasi input, dan menerapkan aturan bisnis. Ini adalah komponen yang bertanggung jawab untuk mengakses dan memanipulasi data yang diperlukan oleh aplikasi. Model dapat berinteraksi dengan sumber data seperti database, file, atau layanan eksternal.
- Contoh penggunaan Model: Jika kita memiliki aplikasi manajemen toko, Model dapat mewakili entitas seperti Produk, Pelanggan, atau Pesanan. Model akan bertanggung jawab untuk mengambil data produk dari database, menyimpan data pesanan baru, atau menghitung total harga pesanan berdasarkan aturan bisnis yang ditentukan
- View
- View adalah tampilan pengguna atau antarmuka pengguna yang digunakan untuk menampilkan informasi kepada pengguna. Tugas utama View adalah menampilkan data yang diberikan oleh Model dalam format yang sesuai. Ini berfungsi sebagai elemen visual yang dilihat dan digunakan oleh pengguna akhir. View biasanya tidak menangani logika bisnis secara langsung.
- Contoh penggunaan View: Dalam aplikasi manajemen toko, View dapat berupa halaman web atau bagian dari antarmuka pengguna yang menampilkan daftar produk, detail pesanan, atau formulir untuk menambahkan produk baru. View akan menerima data yang diberikan oleh Model dan mengatur cara tampilannya disajikan kepada pengguna.
- Controller
- Controller bertindak sebagai penghubung antara Model dan View. Tugas utama Controller adalah mengatur aliran data dan mengontrol interaksi pengguna. Ketika pengguna melakukan tindakan, seperti mengirimkan formulir atau mengklik tombol, Controller merespons dengan memperbarui Model atau View yang sesuai. Ini juga mengurus pemrosesan logika bisnis yang lebih tinggi.
- Contoh penggunaan Controller: Dalam aplikasi manajemen toko, Controller dapat mengatur tindakan pengguna seperti menambahkan produk ke keranjang belanja atau menghapus produk dari pesanan. Ketika pengguna menambahkan produk, Controller akan menerima input tersebut, memvalidasi dan memprosesnya menggunakan Model yang sesuai, dan memperbarui View untuk mencerminkan perubahan tersebut.
- Contoh penggunaan MVC yang populer adalah dalam pengembangan aplikasi web menggunakan kerangka kerja seperti Ruby on Rails, Laravel, atau Django. Kerangka kerja ini menyediakan struktur MVC yang siap digunakan, memisahkan logika aplikasi menjadi tiga komponen terpisah untuk meningkatkan keterbacaan, pemeliharaan, dan skalabilitas.
3. Dengan menggunakan framework laravel buatlah deskribsi dan fitur aplikasi sistem kehadiran utk instansi ITS
Sistem Absensi adalah sebuah aplikasi yang digunakan untuk mengelola dan mencatat kehadiran karyawan atau siswa dalam suatu organisasi, perusahaan, atau institusi pendidikan. Dengan menggunakan Laravel Framework, kita dapat membangun Sistem Absensi yang efisien dan handal dengan fitur-fitur yang relevan.
Berikut adalah beberapa fitur yang dapat dimiliki oleh Sistem Absensi yang dibangun dengan menggunakan Laravel Framework:
- Autentikasi Pengguna: Sistem Absensi perlu memiliki fitur autentikasi yang memungkinkan pengguna untuk login ke dalam sistem dengan menggunakan akun pengguna mereka, seperti username dan password. Dengan Laravel, kita dapat dengan mudah mengimplementasikan fitur autentikasi dengan menggunakan fitur bawaan seperti "Laravel Authentication".
- Manajemen Pengguna: Fitur ini memungkinkan admin untuk mengelola informasi pengguna, seperti menambahkan, mengedit, dan menghapus data pengguna. Admin juga dapat mengatur peran dan izin pengguna, seperti pengaturan sebagai admin, karyawan, atau manajer.
- Penjadwalan dan Pengelolaan Absensi: Sistem Absensi harus dapat memungkinkan pengguna (karyawan atau siswa) untuk melihat jadwal kerja atau jadwal pelajaran mereka. Mereka dapat mencatat absensi mereka dengan menandai kehadiran pada tanggal dan waktu yang ditentukan. Sistem juga harus memiliki kemampuan untuk mengelola dan melacak riwayat absensi pengguna.
- Laporan Absensi: Fitur ini memungkinkan admin atau manajer untuk menghasilkan laporan absensi, seperti laporan harian, mingguan, bulanan, atau kustom. Laporan ini dapat memberikan informasi tentang kehadiran individu atau statistik kehadiran keseluruhan dalam bentuk grafik atau tabel.
- Notifikasi dan Pengingat: Sistem Absensi dapat mengirimkan notifikasi atau pengingat kepada pengguna terkait dengan jadwal kerja, absensi yang tertinggal, atau perubahan dalam jadwal kerja. Ini dapat dilakukan melalui pesan teks, email, atau notifikasi dalam aplikasi.
- Integrasi dengan Perangkat Kehadiran: Jika ada perangkat kehadiran fisik seperti mesin sidik jari atau kartu akses, sistem dapat diintegrasikan dengan perangkat tersebut. Data kehadiran dapat langsung diambil dari perangkat kehadiran dan disinkronkan dengan sistem absensi menggunakan API atau protokol komunikasi yang sesuai.
- Aksesibilitas melalui Web dan Mobile: Sistem Absensi dapat diakses melalui antarmuka web yang responsif dan juga memiliki aplikasi seluler yang memungkinkan pengguna untuk melakukan pencatatan absensi melalui ponsel mereka. Ini memberikan fleksibilitas dalam mengakses sistem dari berbagai perangkat.
- 4. Tuliskan struktur tabelnya
- Berikut adalah struktur tabel yang dapat digunakan untuk membangun Sistem Absensi dengan fitur-fitur yang telah disebutkan sebelumnya:
- 1. Tabel "users":
- - id (Primary Key)
- - name (Nama pengguna)
- - email (Alamat email pengguna)
- - password (Password pengguna)
- - role_id (Foreign Key ke tabel "roles")
- 2. Tabel "roles":
- - id (Primary Key)
- - name (Nama peran/role)
- 3. Tabel "schedules":
- - id (Primary Key)
- - user_id (Foreign Key ke tabel "users")
- - day_of_week (Hari dalam seminggu, misalnya Senin, Selasa, dll.)
- - start_time (Waktu mulai kerja)
- - end_time (Waktu selesai kerja)
- 4. Tabel "attendances":
- - id (Primary Key)
- - user_id (Foreign Key ke tabel "users")
- - attendance_date (Tanggal kehadiran)
- - attendance_time (Waktu kehadiran)
- - status (Status kehadiran, misalnya "hadir", "terlambat", "tidak hadir")
- Dalam struktur tabel di atas, terdapat relasi antara tabel "users" dan "roles" melalui kolom "role_id". Hal ini memungkinkan pengguna memiliki peran atau role yang berbeda, seperti admin, karyawan, atau manajer.
- Tabel "schedules" digunakan untuk menyimpan jadwal kerja pengguna. Setiap pengguna dapat memiliki beberapa jadwal berdasarkan hari dalam seminggu, waktu mulai, dan waktu selesai kerja.
- Tabel "attendances" digunakan untuk mencatat kehadiran pengguna. Setiap catatan kehadiran memiliki informasi seperti tanggal kehadiran, waktu kehadiran, dan status kehadiran (hadir, terlambat, atau tidak hadir).
- 5. Desain awal sistem
- 6. Kode Program : https://gitlab.com/angelaoryza/student-attendance
- 7. Demo Program :
Comments
Post a Comment