Aplikasi berbasis Android yang dibangun menggunakan bahasa pemrograman Kotlin

Overview

Sistem Penilaian Mahasiswa

Aplikasi berbasis Android yang dibangun menggunakan bahasa pemrograman Kotlin. Dibuat untuk memenuhi salah satu tugas Ujian Tengah Semester dari mata kuliah Konstruksi Perangkat Lunak (RL212). Aplikasi dapat diunduh pada link berikut melalui Google Drive

Deskripsi Aplikasi

Aplikasi Sistem Penilaian Mahasiswa ini bertujuan untuk menyimpan informasi nilai mahasiswa berdasarkan mata kuliah, pengguna utamanya ditunjukan kepada dosen. Sistem penilaian dibagi kedalam empat kategori nilai, yaitu nilai Tugas, Quiz, Ujian Tengah Semester, dan Ujian Akhir Semester dengan komposisi sebagai berikut.

  • Nilai tugas sebanyak 10%
  • Nilai Quiz sebanyak 20%
  • Nilai Ujian Tengah Semester sebanyak 30%
  • Nilai Ujian Akhir Semester sebanyak 40%

Setiap mahasiswa memiliki 2 macam penilaian

  1. Nilai Keseluruhan : diambil dari nilai rata-rata keseluruhan mata kuliah dari keempat kategori yang ada, kemudian dijumlahkan sesuai dengan komposisinya.

  2. Nilai per Mata Kuliah : diambil dari setiap mata kuliah, kemudian dijumlahkan sesuai dengan komposisi yang ada

Format penilaian terdiri dari dua jenis yaitu angka yang terdiri dari 1-100, dan predikat nilai dengan jangkauan A hingga E. Ketentuan penilaian lebih lengkap ada pada tabel di bawah ini.

Predikat Nilai Keterangan
A > 91 Sangat baik dan sempurna. Mengikuti seluruh perkuliahan dan menerapkan materi dengan sangat baik
A- 86-91 Baik dan sempurna. Dapat mengikuti seluruh perkuliahan dan menerapkan materi dengan cukup baik
B+ 81-85 Sangat baik. Mengikuti seluruh perkuliahan dengan baik, tetapi dalam penerapan materi belum dapat dikatakan sempurna
B 76-80 Baik. Mengikuti seluruh perkuliahan dengan baik, tetapi dalam penerapan materi belum mampu menerapkan seluruh materi perkuliahan
B- 71-75 Cukup baik. Mengikuti perkuliahan dengan baik, tetapi belum dapat menerapkan materi perkuliahan
C+ 66-70 Cukup. Selalu hadir dalam perkuliahan tetapi masih terlihat kesulitan memahami isi dari materi perkuliahan
C 60-65 Cukup. Selalu hadir dalam perkuliahan tetapi masih sangatt kesulitan memahami isi dari materi perkuliahan
D 55-59 Kurang baik. Tidak terlihat aktif dan tidak memahami sama sekali materi di dalam perkuliahan
E < 55 Buruk. Kehadiran kurang dari syarat minimum dan masih sangat kesulitan dalam mengikuti perkuliahan

Design Architecture

Aplikasi ini dibangun dengan menerapkan Clean Architecture dengan gambaran sebagai berikut.

Struktur modul yang digunakan mengikuti panduan dari clean architecture dengan membagi ke dalam beberapa layer dengan rincian sebagai berikut

  1. Presentasion Layer Berisi kelas UI Controller dan juga View Model, UI Controller digunakan untuk mengontrol aktivitas pada UI termasuk manajemen View dan View Group yang terdapat pada file layout. Kemudian View Model yang bertugas untuk menyediakan data bagi UI Controller
  2. Domain Layer Penyambung antara data dan UI, terdiri dari komponen Use Case, Model, dan Repositories Interface
  3. Data Layer Mengimplementasi interface pada domain, bertugas untuk berkomunikasi dengan pihak luar. Dalam case ini berarti Firebase Firestore

Tech Stack

  1. 100% Kotlin + Coroutines - Menggunakan background proccess
  2. Networking dengan Retrofit
  3. Jetpack
    • Navigation Components - Navigasi utama di dalam aplikasi
    • Livedata - Memberitahu ketika data mengalami update
    • Viewmodel - Memisahkan data dari UI Controller dan bertahan dari configuration changes
    • Lifecycle - Membuat event jika lifecycle mengalami perubahan
    • Preferences Datastore - Menyimpan data dengan bentuk key-value menggunakan protocol buffer dan dapat diakses secara asynchronous
  4. Firebase - Menyediakan berbagai macam tools powerfull secara gratis
    • Firestore - Database online dengan sinkronisasi data secara realtime
    • Firebase Auth - Menyediakan berbagai macam metode autentikasi tanpa melakukan konfigurasi yang rumit
  5. Material Design
  6. Timber
  7. Gradle Kotlin DSL
You might also like...
Small kotlin library for persisting _single instances_ of kotlin data classes
Small kotlin library for persisting _single instances_ of kotlin data classes

PerSista Small library for persisting single instances of kotlin data classes. NB: PerSista uses typeOf() internally which is marked as @ExperimentalS

Kotlin Leaning Notes from Udacity Course | Kotlin Bootcamp for Programmers by Google
Kotlin Leaning Notes from Udacity Course | Kotlin Bootcamp for Programmers by Google

Kotlin Beginners Notes These are all personal notes taken from the Udacity Course (ud9011) of Kotlin Bootcamp for Programmers by Google as well as oth

Saga pattern implementation in Kotlin build in top of Kotlin's Coroutines.

Module Saga Website can be found here Add in build.gradle.kts repositories { mavenCentral() } dependencies { implementation("io.github.nomisr

Kotlin microservices with REST, and gRPC using BFF pattern. This repository contains backend services. Everything is dockerized and ready to
Kotlin microservices with REST, and gRPC using BFF pattern. This repository contains backend services. Everything is dockerized and ready to "Go" actually "Kotlin" :-)

Microservices Kotlin gRPC Deployed in EC2, Check it out! This repo contains microservices written in Kotlin with BFF pattern for performing CRUD opera

A sample skeleton backend app built using Spring Boot kotlin, Expedia Kotlin Graphql, Reactive Web that can be deployed to Google App Engine Flexible environmennt

spring-kotlin-gql-gae This is a sample skeleton of a backend app that was built using: Spring Boot(Kotlin) Reactive Web Sprinng Data R2DBC with MYSQL

Learn-kotlin - Learning more about Kotlin in various content

Kotlin study roadmap https://kotlinlang.org/docs/reference/ Getting Started Basi

Mis experimentos con Kotlin para JetBrains Academy, certificación de Kotlin donde voy resolviendo proyectos de evaluación y haciendo actividades de cada tema.
Mis experimentos con Kotlin para JetBrains Academy, certificación de Kotlin donde voy resolviendo proyectos de evaluación y haciendo actividades de cada tema.

Kotlin Academy Mis experimentos con Kotlin para JetBrains donde voy resolviendo proyectos de evaluación y haciendo actividades de cada tema. Acerca de

Repositório criado para ser utilizado pelo projeto de Kotlin Collections desenvolvido em Kotlin nas aulas feitas através da plataforma Alura.

Projeto Kotlin Collections Repositório criado para ser utilizado pelo projeto de Kotlin Collections desenvolvido em Kotlin nas aulas feitas através da

Kotlin-GraphQL-Apollo - Sencillo cliente para consumir una API GraphQL con Apollo usando Kotlin
Kotlin-GraphQL-Apollo - Sencillo cliente para consumir una API GraphQL con Apollo usando Kotlin

Kotlin GraphQL Apollo Sencillo cliente para consumir una API GraphQL con Apollo

Comments
  • [ImgBot] Optimize images

    [ImgBot] Optimize images

    Beep boop. Your images are optimized!

    Your image file size has been reduced by 16% 🎉

    Details

    | File | Before | After | Percent reduction | |:--|:--|:--|:--| | /app/src/main/res/drawable/img_profile.png | 31.42kb | 25.76kb | 18.00% | | /app/src/main/res/drawable/img_login.png | 31.22kb | 26.30kb | 15.75% | | /app/src/main/res/drawable/img_logo.png | 6.37kb | 5.52kb | 13.30% | | /app/src/main/res/mipmap-mdpi/ic_logo_foreground.png | 3.22kb | 3.18kb | 1.12% | | | | | | | Total : | 72.23kb | 60.78kb | 15.86% |


    📝 docs | :octocat: repo | 🙋🏾 issues | 🏪 marketplace

    ~Imgbot - Part of Optimole family

    opened by imgbot[bot] 0
Owner
Naufal Fawwaz
I am is my mind
Naufal Fawwaz
Belajar-Kotlin-RetrofitApp - Belajar Menggunakan Library Retrofit dalam Mengolah API

Belajar-Kotlin-RetrofitApp Belajar Menggunakan Library Retrofit dalam Mengolah A

Fernata Firdaus Purba 0 Feb 12, 2022
Repo: Programming problems with solutions in Kotlin to help avid Kotlin learners to get a strong hold on Kotlin programming.

Kotlin_practice_problems Repo: Programming problems with solutions in Kotlin to help avid Kotlin learners to get a strong hold on Kotlin programming.

Aman 0 Oct 14, 2021
Mocking for Kotlin/Native and Kotlin Multiplatform using the Kotlin Symbol Processing API (KSP)

Mockative Mocking for Kotlin/Native and Kotlin Multiplatform using the Kotlin Symbol Processing API (KSP). Installation Mockative uses KSP to generate

Mockative 121 Dec 26, 2022
Kotlin-oop - Repositório criado para ser utilizado pelo projeto de Kotlin OOP desenvolvido em Kotlin nas aulas feitas através da plataforma Alura.

Projeto React OOP Repositório criado para ser utilizado pelo projeto de Kotlin OOP desenvolvido em Kotlin nas aulas feitas através da plataforma Alura

Marcos Felipe 1 Jan 5, 2022
Kotlin-koans - Kotlin Koans are a series of exercises to get you familiar with the Kotlin Syntax

kotlin-koans-edu Kotlin Koans are a series of exercises to get you familiar with

null 1 Jan 11, 2022
Modular Android architecture which showcase Kotlin, MVVM, Navigation, Hilt, Coroutines, Jetpack compose, Retrofit, Unit test and Kotlin Gradle DSL.

SampleCompose Modular Android architecture which showcase Kotlin, MVVM, Navigation, Hilt, Coroutines, Jetpack compose, Retrofit, Unit test and Kotlin

Mohammadali Rezaei 7 Nov 28, 2022
🎲 Kotlin Symbol Processor to auto-generate extensive sealed classes and interfaces for Android and Kotlin.

SealedX ?? Kotlin Symbol Processor to auto-generate extensive sealed classes and interfaces for Android and Kotlin. Why SealedX? SealedX generates ext

Jaewoong Eum 236 Nov 30, 2022
Clean Android multi-module offline-first scalable app in 2022. Including Jetpack Compose, MVI, Kotlin coroutines/Flow, Kotlin serialization, Hilt and Room.

Android Kotlin starter project - 2022 edition Android starter project, described precisely in this article. Purpose To show good practices using Kotli

Krzysztof Dąbrowski 176 Jan 3, 2023
Kotlin TodoMVC – full-stack Kotlin application demo

Kotlin full stack TodoMVC This project is an example implementation of the TodoMVC app written in Kotlin. More specifically, it's the Kotlin port of t

Gyula Voros 22 Oct 3, 2022
Integration Testing Kotlin Multiplatform Kata for Kotlin Developers. The main goal is to practice integration testing using Ktor and Ktor Client Mock

This kata is a Kotlin multiplatform version of the kata KataTODOApiClientKotlin of Karumi. We are here to practice integration testing using HTTP stub

Jorge Sánchez Fernández 29 Oct 3, 2022