Anda di halaman 1dari 9

UTS MOBILE PROGRAMMER

Nama : Mega Listia Kuswani

NIM : 1182002030

Section A

1. Explain the differences kind of mobile apps (native apps, web apps, and hybrid
apps).

Jawab :

 Navite apps : Aplikasi native adalah aplikasi yang dibangun dengan bahasa


pemrograman yang spesifik untuk platform tertentu. Contoh populernya yakni
penggunaan bahasa pemrograman Objective-C atau Swift untuk platform iOS
(Apple). Adapun platform Android yang menggunakan bahasa pemrograman Java.
Membangun aplikasi native harus menyediakan pengalaman produk yang optimal
pada perangkat mobile. Meskipun begitu, budget yang tinggi dibutuhkan untuk
membangun aplikasi cross platform yang mampu mempertahankan aplikasi native
tetap update.

 Web app : Aplikasi web bisa menjadi pilihan yang terbaik untuk membangun produk
yang diinginkan. Karena benar-benar minim persyaratan, dengan kata lain akses ke
fitur dari perangkat mobile seperti Push Notification tidak diperlukan. Aplikasi web
bisa menjadi pilihan yang murah dari sisi budget. Namun sayangnya, aplikasi web
tidak bisa didistribusikan melalui toko aplikasi native seperti App Store atau Google
Play.
 Hybird apps : Aplikasi hybrid adalah aplikasi web yang ditransformasikan menjadi
kode native pada platform seperti iOS atau Android. Aplikasi hybrid biasanya
menggunakan browser untuk mengijinkan aplikasi web mengakses berbagai fitur di
device mobile seperti Push Notification, Contacts, atau Offline Data Storage.
Beberapa tools untuk mengembangkan aplikasi hybrid antara lain Phonegap,
Rubymotion dan lain-lain.

Keuntungan : membangun aplikasi hybrid diantaranya pemeliharaan project menjadi


semakin mudah jika dibandingkan dengan aplikasi native. Aplikasi hybrid juga, bisa
dibangun secara cepat untuk keperluan cross platform dan dana yang bisa menjadi
lebih hemat jika dibandingkan dengan native.

2. Which mobile app development trend that is interesting for you?

Jawab :
Saya tertarik dengan mobile app Hybird karena untuk apps ini sendiri salah satu yang
mudah untuk digunakan oleh user pengguna,  selain itu proses kinerjanya lebih cepat.
Selain itu saat sedang loading, prosesnya tersebut tidak memakan waktu yang terlalu
lama. Sehingga tidak membuatnya bosan karena menunggu, lalu aplikasi ini mampu
untuk dijalankan dengan baik dalam kondisi apapun baik offline maupun online
sehingga ada beberapa game yang menggunakan hybird karena mudah diakses dan
dimainkan pada saat offline lalu gambar dan kualitas yang ditampilkan juga sama
seperti online. Selain itu juga aolikasi hybird bisa di install oleh IOS yang lain

3. Explain variables, data types, control flow in Dart programming language.

Jawab :

 Variables : Variabel adalah sebuah tempat menyimpan sebuah nilai yang


digunakan untuk merujuk lokasi memori di memori komputer yang
menyimpan nilai untuk variabel tersebut, nilai ini dapat diubah selama
eksekusi program.
 Data types :  tipe data adalah jenis nilai yang akan tersimpan dalam variabel,
Yang berarti jenis atau tipe suatu variabel itu dinamakan tipe data.
 Control flow : adalah urutan di mana instruksi, pernyataan dan pemanggilan
fungsi dijalankan atau dievaluasi ketika suatu program sedang berjalan.
Pernyataan aliran kontrol juga disebut sebagai Flow Control Staterments. Di
Dart, pernyataan di dalam kode Anda biasanya dieksekusi secara berurutan
dari atas ke bawah, dalam urutan kemunculannya.

4. Explain function, classes and objects in Dart programming language.


Jawab :
 Function : Pengertian fungsi adalah sekumpulan statement/perintah/kode
program yang independen,memiliki nama, dan memiliki tugas untuk
melakukan tugas spesifik tertentu. Fungsi mengatur program menjadi blok-
blok kode logis. Setelah ditentukan, fungsi dapat dipanggil ke kode akses. Ini
membuat kode dapat digunakan kembali. Selain itu, fungsi memudahkan untuk
membaca dan memelihara kode program.

Fungsi dan Deskripsi


1. Mendefinisikan fungsi :Definisi fungsi menentukan apa dan bagaimana
tugas tertentu akan dilakukan.
2. Memanggil suatu fungsi :Suatu fungsi harus dipanggil untuk
menjalankannya
3. Mengembalikan nilai fungsi : Fungsi juga dapat mengembalikan nilai,
kontol yang dikembalikan kepada pemanggilnya.
4. Fungsi Parameterisasi :Parameter adalah mekanisme untuk meneruskan
nilai ke fungsi  

 Classes : Dart adalah bahasa berorientasi objek. Ini mendukung fitur


pemrograman berorientasi objek seperti kelas, antarmuka, dll. Kelas dalam
istilah OOP adalah cetak biru untuk membuat objek. Kelas merangkum data
untuk objek tersebut. Dart memberikan dukungan bawaan untuk konsep yang
disebut kelas ini. Kata kunci class diikuti dengan nama kelas. Aturan untuk
pengidentifikasi harus dipertimbangkan saat memberi nama kelas.

Definisi Classes

1. Fields adalah variabel apa pun yang dideklarasikan di kelas. Bidang


mewakili data yang berkaitan dengan objek.
2. Setter and Getters, Memungkinkan program untuk menginisialisasi dan
mengambil nilai bidang kelas. Pengambil / penyetel default dikaitkan
dengan setiap kelas. Namun, yang default bisa diganti dengan
mendefinisikan setter / getter secara eksplisit.
3. Constructors bertanggung jawab untuk mengalokasikan memori untuk
objek kelas.
4. Functions, Fungsi mewakili tindakan yang dapat dilakukan suatu objek.
Mereka juga kadang-kadang disebut sebagai metode.

 Object : Kelas dasar untuk semua objek Dart. Karena Object adalah root dari hierarki
class Dart, setiap class Dart lainnya adalah subclass dari Object. Saat Anda
mendefinisikan sebuah kelas, Anda harus mengganti toString untuk mengembalikan
string yang mendeskripsikan sebuah instance dari kelas itu. Anda mungkin juga perlu
mendefinisikan hashCode dan operator ==, seperti yang dijelaskan di bagian
Menerapkan kunci peta dari tur perpustakaan.
Section B

1. In this case study, you are expected to develop a single android application.
a. Explain what kind of application that you want to develop. What is the purpose
of your application.
b. Who is the target user would need the application?

Jawab:
a. Saya ingin membuat sebuah aplikasi penyaluran penyewaan motor yaitu penyediaan
aplikasi yang dapat digunakan oleh user untuk mencari motor yang bisa disewa yang
sesuai dengan keinginannya dan lokasi tempat dimana dia berada. Dan tujuan dari
pembuatan aplikasi tersebut adalah Mempermudah orang yang ingin menyewa
kendaraan bermotor dengan cara membooking lewat, dan selain itu membantu tempat
penyewaan motor untuk mendapatkan customer.

b. untuk target pengguna adalah calon penyewa seperti :Wisatawan/turis, warga lokal
yang tidak memiliki kendaraan Agen tour atau travel , dan hotel. Yang ditujukan juga
untuk usia diatas 17 tahun yang memiliki KTP dan SIM.
2. Create the code of the user interface below, and explain each of its code.
import 'package:flutter/material.dart';

void main() =>runApp(MyApp());

class MyApp extends StatelessWidget {


// This widget is the root of your application. @override
Widget build(BuildContext context) {

return MaterialApp( title: 'Demo Flutter', theme: ThemeData(

//   This is the theme of your application. //

//   Try running your application with "flutter run". You'll see the

//   application has a blue toolbar. Then, without quitting the app, try

//   changing the primarySwatch below to Colors.green and then invoke

//   "hot reload" (press "r" in the console where you ran "flutter run",

//   or simply save your changes to "hot reload" in a Flutter IDE).

//   Notice that the counter didn't reset back to zero; the application

//   is not restarted. primarySwatch: Colors.blue,

),
home: MyHomePage(title: 'Flutter Demo Home Page'), debugShowCheckedModeBanner:
false,

); }

class MyHomePage extends StatefulWidget { MyHomePage({Key key, this.title}) : super(key: key);

// This widget is the home page of your application. It is stateful, meaning // that it has a State
object (defined below) that contains fields that affect // how it looks.

// This class is the configuration for the state. It holds the values (in this // case the title) provided by
the parent (in this case the App widget) and
// used by the build method of the State. Fields in a Widget subclass are
// always marked "final".

final String title;

@override
_MyHomePageState createState() =>_MyHomePageState(); }

class _MyHomePageState extends State<MyHomePage>{ int _counter = 0;

void _incrementCounter() { setState(() {

// This call to setState tells the Flutter framework that something has
// changed in this State, which causes it to rerun the build method below // so that the display can
reflect the updated values. If we changed
// _counter without calling setState(), then the build method would not be // called again, and so
nothing would appear to happen.
_counter++;

}); }

@override

Widget build(BuildContext context) {


// This method is rerun every time setState is called, for instance as done return Scaffold(

appBar: AppBar(
// Here we take the value from the MyHomePage object that was created by // the App.build
method, and use it to set our appbar title.
title: Text(widget.title),

),
body: Center(

// Center is a layout widget. It takes a single child and positions it // in the middle of the parent.
child: Column(

// Column is also a layout widget. It takes a list of children and

mainAxisAlignment: MainAxisAlignment.center, children: <Widget>[

Text(
'You have pushed the button this many times:',

), Text(

'$_counter',
style: Theme.of(context).textTheme.display1,

), ],

), ),
floatingActionButton: FloatingActionButton( onPressed: _incrementCounter,
tooltip: 'Increment',
child: Icon(Icons.add),

), // This trailing comma makes auto-formatting nicer for build methods. );

}}

Penjelasan dari kode program diatas adalah kita membuat statelesswidgets yang berisi
widgetMaterialApp(), dan didalamnya terdapat widget lagi : Scaffold, AppBar, Center, dan Text.

Anda mungkin juga menyukai