Minggu, 09 Juni 2024

Tugas 8: Membuat Game Unscramble

 Nama    : Dilla Wahdana

NRP       : 5025211060

Kelas     : PPB B


Game Unscramble

    Aplikasi Unscramble adalah game pengacak ejaan kata untuk satu pemain. Aplikasi menampilkan kata acak, dan pemain harus menebak kata tersebut menggunakan semua huruf yang ditampilkan. Pemain akan mendapatkan poin jika kata tersebut benar. Jika tidak, pemain dapat mencoba menebak kata sebanyak-banyaknya. Aplikasi ini juga memiliki opsi untuk melewati kata saat ini. Di pojok kanan atas, aplikasi menampilkan jumlah kata, yaitu jumlah kata acak yang dimainkan dalam game saat ini. Ada 10 kata acak per game.


Untuk memahami kode awal, selesaikan langkah-langkah berikut:
  1. Buka project dengan kode awal di Android Studio.
  2. Jalankan aplikasi di perangkat Android atau di emulator.
  3. Ketuk tombol Submit dan Skip untuk menguji aplikasi.
Penjelasan Code:
  1. WordsData.kt
    File ini berisi daftar kata yang digunakan dalam game, konstanta untuk jumlah maksimum kata per game, dan jumlah poin skor pemain untuk setiap kata yang benar.
    package com.example.android.unscramble.data

    const val MAX_NO_OF_WORDS = 10
    const val SCORE_INCREASE = 20

    // Set with all the words for the Game
    val allWords
    : Set<String> =
       setOf
    (
           
    "animal",
           
    "auto",
           
    "anecdote",
           
    "alphabet",
           
    "all",
           
    "awesome",
           
    "arise",
           
    "balloon",
           
    "basket",
           
    "bench",
         
    // ...
           
    "zoology",
           
    "zone",
           
    "zeal"
    )
  2. MainActivity.kt
    File ini sebagian besar berisi kode yang dihasilkan oleh template. Anda menampilkan composable GameScreen di blok setContent{}.
  3. GameScreen.kt
    Semua composable UI ditentukan dalam file GameScreen.kt. Bagian berikut memberikan panduan tentang beberapa fungsi composable.
  4. GameStatus
    GameStatus adalah fungsi composable yang menampilkan skor game di bagian bawah layar. Fungsi composable berisi composable teks di Card. Untuk saat ini, skor di-hardcode menjadi 0.
    // No need to copy, this is included in the starter code.

    @Composable
    fun
    GameStatus(score: Int, modifier: Modifier = Modifier) {
       
    Card(
            modifier
    = modifier
       
    ) {
           
    Text(
                text
    = stringResource(R.string.score, score),
                style
    = typography.headlineMedium,
                modifier
    = Modifier.padding(8.dp)
           
    )
       
    }
    }
  5. GameLayout
    GameLayout adalah fungsi composable yang menampilkan fungsi game utama, yang mencakup kata acak, petunjuk game, dan kolom teks yang menerima tebakan pengguna.
    // No need to copy, this is included in the starter code.

    @Composable
    fun
    GameLayout(modifier: Modifier = Modifier) {
       val mediumPadding
    = dimensionResource(R.dimen.padding_medium)
       
    Card(
           modifier
    = modifier,
           elevation
    = CardDefaults.cardElevation(defaultElevation = 5.dp)
       
    ) {
           
    Column(
               verticalArrangement
    = Arrangement.spacedBy(mediumPadding),
               horizontalAlignment
    = Alignment.CenterHorizontally,
               modifier
    = Modifier.padding(mediumPadding)
           
    ) {
               
    Text(
                   modifier
    = Modifier
                       
    .clip(shapes.medium)
                       
    .background(colorScheme.surfaceTint)
                       
    .padding(horizontal = 10.dp, vertical = 4.dp)
                       
    .align(alignment = Alignment.End),
                   text
    = stringResource(R.string.word_count, 0),
                   style
    = typography.titleMedium,
                   color
    = colorScheme.onPrimary
               
    )
               
    Text(
                   text
    = "scrambleun",
                   style
    = typography.displayMedium
               
    )
               
    Text(
                   text
    = stringResource(R.string.instructions),
                   textAlign
    = TextAlign.Center,
                   style
    = typography.titleMedium
               
    )
               
    OutlinedTextField(
                   value
    = "",
                   singleLine
    = true,
                   shape
    = shapes.large,
                   modifier
    = Modifier.fillMaxWidth(),
                   colors
    = TextFieldDefaults.textFieldColors(containerColor = colorScheme.surface),
                   onValueChange
    = { },
                   label
    = { Text(stringResource(R.string.enter_your_word)) },
                   isError
    = false,
                   keyboardOptions
    = KeyboardOptions.Default.copy(
                       imeAction
    = ImeAction.Done
                   
    ),
                   keyboardActions
    = KeyboardActions(
                       onDone
    = { }
                   
    )
               
    )
           
    }
       
    }
    }
  6. GameScreen
  7. Composable GameScreen berisi fungsi composable GameStatus dan GameLayout, judul game, jumlah kata, dan composable untuk tombol Submit dan Skip.
    @Composable
    fun
    GameScreen() {
        val mediumPadding
    = dimensionResource(R.dimen.padding_medium)

       
    Column(
            modifier
    = Modifier
               
    .verticalScroll(rememberScrollState())
               
    .padding(mediumPadding),
            verticalArrangement
    = Arrangement.Center,
            horizontalAlignment
    = Alignment.CenterHorizontally
       
    ) {

           
    Text(
                text
    = stringResource(R.string.app_name),
                style
    = typography.titleLarge,
           
    )

           
    GameLayout(
                modifier
    = Modifier
                   
    .fillMaxWidth()
                   
    .wrapContentHeight()
                   
    .padding(mediumPadding)
           
    )
           
    Column(
                modifier
    = Modifier
                   
    .fillMaxWidth()
                   
    .padding(mediumPadding),
                verticalArrangement
    = Arrangement.spacedBy(mediumPadding),
                horizontalAlignment
    = Alignment.CenterHorizontally
           
    ) {

               
    Button(
                    modifier
    = Modifier.fillMaxWidth(),
                    onClick
    = { }
               
    ) {
                   
    Text(
                        text
    = stringResource(R.string.submit),
                        fontSize
    = 16.sp
                   
    )
               
    }

               
    OutlinedButton(
                    onClick
    = { },
                    modifier
    = Modifier.fillMaxWidth()
               
    ) {
                   
    Text(
                        text
    = stringResource(R.string.skip),
                        fontSize
    = 16.sp
                   
    )
               
    }
           
    }

           
    GameStatus(score = 0, modifier = Modifier.padding(20.dp))
       
    }
    }




Minggu, 12 Mei 2024

ETS PPB

 Nama    : Dilla Wahdana

NRP       : 5025211060

Kelas      : PPB B

ETS

Nama : Dilla Wahdana

NRP : 5025211060

Kelas : PPB B

ETS


1. Apa keuntungan menggunakan platform mobile dibandingkan dengan web atau desktop untuk membangun aplikasi?


Ada banyak keunggulan yang bisa didapatkan saat menggunakan aplikasi mobile dibandingkan dengan aplikasi web dan desktop, di antaranya yaitu :

  1. kenyamanan
    yang mana platform mobile menawarkan waktu loading yang cepat, kinerja mumpuni, namun dengan tetap memperhatikan kemudahan penggunaan.

  2. Personalia
    Pengguna dapat membuat perubahan mengenai cara mereka menggunakan aplikasi. Mulai dari mengatur notifikasi yang masuk, bagaimana cara mereka login, hingga menyesuaikan mode tema yang disukai pengguna. Aplikasi mobile juga memungkinkan pengguna untuk menyimpan informasi-informasi berguna, bahkan berbagi media di media sosial. Semua fitur ini secara keseluruhan dapat meningkatkan pengalaman pengguna.

  3. Aksesibilitas
    Berbeda dengan website, aplikasi mobile bisa digunakan baik secara online maupun offline tanpa masalah berarti. Sehingga memungkinkan pengguna untuk menyelesaikan tugas bahkan saat mereka tidak memiliki koneksi internet.

  4. Keamanan 

Aplikasi mobile dapat lebih aman daripada aplikasi web, karena mereka dapat mengakses fitur keamanan perangkat seperti sidik jari dan pengenalan wajah.


2. Sebutkan perkembangan teknologi mobile!

Berikut merupakan sejarah teknologi mobile:

  1. Teknologi Generasi Awal / Zero Generation (0G)
    Generasi awal (0G) atau Mobile radio telephone ini merupakan teknologi telepon selular modern permulaan, dimana menggunakan jaringan gelombang radio (radiotelephone) khusus (terpisah dan tertutup dengan jaringan lain yang sejenis) dengan jangkauan jaringan yang terbatas dan dapat terhubung dengan jaringan telepon umum biasa.

  2. Teknologi Generasi Pertama (1G)
    Generasi pertama atau 1G merupakan teknologi handphone pertama yang diperkenalkan pada era 80-an dan masih menggunakan sistem analog. Generasi pertama ini menggunakan teknik komunikasi yang disebut Frequency Division Multiple Access (FDMA). Teknik ini memungkinkan untuk membagi-bagi alokasi frekuensi pada suatu sel untuk digunakan masing-masing pelanggan di sel tersebut, sehingga setiap pelanggan saat melakukan pembicaraan memiliki frekuensi sendiri (prinsipnya seperti pada stasiun radio dimana satu stasiun radio hanya menggunakan satu frekuensi untuk siarannya).

  3. Teknologi Generasi Kedua (2G)
    Teknologi generasi kedua muncul pada awal tahun 90-an. Generasi ini menggunakan mekanisme Time Division Multiple Access (TDMA) dan Code Division Multiple Access (CDMA) dalam teknik komunikasinya. Generasi kedua selain digunakan untuk komunikasi suara, juga bisa untuk SMS (Short Message Service adalah layanan dua arah untuk mengirim pesan pendek sebanyak 160 karakter), voice mail, call waiting, dan transfer data dengan kecepatan maksimal 9.600 bps (bit per second). Kecepatan sebesar itu cukup untuk mengirim SMS, download gambar, atau ringtone MIDI.

  4. Teknologi Generasi Dua Setengah (2.5G)

Teknologi 2.5G merupakan peningkatan dari teknologi 2G terutama dalam platform dasar GSM telah mengalami penyempurnaan, khususnya untuk aplikasi data.

  1. Teknologi Generasi Ketiga (3G)
    Teknologi telepon seluler generasi ketiga mengandalkan fitur high-speed data access sehingga memungkinkan tersedianya layanan-layanan data yang lebih menarik. Teknologi ini memungkinkan proses komunikasi yang sebelumnya hanya dengan suara, kini dapat melalui video sehingga proses komunikasi dapat menjadi lebih baik.

  2. Teknologi Generasi 4G
    Sistem 4G akan dapat menyediakan solusi IP yang komprehensif dimana suara, data, dan arus multimedia dapat sampai kepada pengguna kapan saja dan dimana saja, pada rata-rata data lebih tinggi dari generasi sebelumnya.

  3. Generasi 5G (2020-an)

Jaringan yang menawarkan kecepatan data gigabit, latensi yang sangat rendah, dan kapasitas jaringan yang lebih besar, memungkinkan aplikasi baru seperti Internet of Things (IoT), kendaraan self-driving, dan realitas virtual/augmented.


3. Bukalah aplikasi Mobile Banking yang anda punya. Tuliskan dan jelaskan kegunaan fitur yang sering anda pakai


Aplikasi mobile banking Mandiri “Livin” menawarkan berbagai fitur yang memudahkan nasabah untuk melakukan transaksi keuangan dan mengelola akun mereka. Berikut adalah beberapa fitur yang sering saya gunakan:

  1. Informasi Saldo
    di sini kita bisa lihat berapa saldo yang dimiliki.

  2. Fitur Transfer Dana
    yang mana kita bisa Transfer dana ke sesama rekening Mandiri dan ke rekening bank lain.

  3. Fitur Top-up
    pada fitur ini kita bisa transfer ke berbagai aplikasi e-wallet yang ada seperti LinkAja, GoPay, ShopeePay, Dana, dll. disini kita juga bisa melakukan pembelian pulsa dan paket data.

  4. Fitur Bayar
    fitur ini memudahkan kita dalam membayar tagihan seperti PLN, e-commerce, tiket transportasi dll. Jadi biasanya setiap kita akan membayar pesanan di aplikasi e-commerce ataupun tiket transportasi akan ke direct dengan M-Banking kita.

  5. Fitur QR Bayar
    Fitur ini memberikan kemudahan kita dalam pembayaran via QR Code, jadi tidak perlu menarik uang cash ketika kita belanja di suatu tempat.

  6. Fitur Pesan
    Memberikan notifikasi dan pesan ke kita tentang transaksi yang kita lakukan dan beberapa informasi mengenai aplikasinya sendiri.

4. Redesign dari aplikasi sesuai dengan fitur yang sering dipakai

5. Implementasikan dalam bentuk aplikasi Android halaman masuk dan akses Pin transaksi

6. Dokumentasikan dan demikan dalam video youtube dari aplikasi yang telah dibangun.


Jumat, 10 Mei 2024

Tugas 7: Membuat Dessert Clicker App

 Nama    : Dilla Wahdana

NRP    : 5025211060

Kelas    : PPB B

Dessert Clicker App

Pada tugas kali ini diminta untuk membuat aplikasi Dissert Clicker. Di Dessert Clicker, setiap kali pengguna mengetuk makanan penutup di layar, aplikasi akan "membeli" makanan penutup untuk pengguna. Aplikasi mengupdate nilai dalam tata letak untuk:Jumlah makanan penutup yang "dibeli"
Total pendapatan untuk makanan penutup "yang dibeli"

Langkah-langkah pembuatan aplikasi:
Langkah 1: Periksa metode onCreate() dan tambahkan logging
  1.     Jalankan aplikasi Dessert Clicker, lalu ketuk gambar makanan penutup beberapa kali.Perhatikan perubahan nilai dari Makanan penutup yang terjual dan jumlah total uang dalam dolar.
  2. Buka MainActivity.kt dan periksa metode onCreate() untuk aktivitas ini:
    override fun onCreate(savedInstanceState: Bundle?) {
       
    // ...
    }
  3. Tambahkan konstanta berikut di tingkat teratas MainActivity.kt, di atas deklarasi class class MainActivity.
  4. Dalam metode onCreate(), tepat setelah panggilan ke super.onCreate(), tambahkan baris berikut:
  5. Log.d(TAG, "onCreate Called")
  6. Impor class Log jika perlu (tekan Alt+Enter, atau Option+Enter pada Mac, lalu pilih Import.)
  7. Kompilasi dan jalankan aplikasi Dessert Clicker. Anda tidak akan melihat perbedaan perilaku di aplikasi saat mengetuk makanan penutup. Di bagian bawah layar Android Studio, klik tab Logcat.
  8. Di jendela Logcat, ketik tag:MainActivity pada kolom penelusuran.
Langkah 2: Terapkan metode onStart()
  1. Di Android Studio, dengan MainActivity.kt terbuka dan kursor ada di dalam class MainActivity, pilih Code > Override Methods... atau tekan Control+O.
  2. Mulai masukkan onStart untuk menelusuri metode yang benar. Untuk men-scroll ke item yang cocok berikutnya, gunakan panah bawah. Pilih onStart() dari daftar, lalu klik OK untuk menyisipkan kode pengganti boilerplate.
  3. Di dalam metode onStart(), tambahkan pesan log:
    override fun onStart() {
       
    super.onStart()
       
    Log.d(TAG, "onStart Called")
    }
  4. Kompilasi dan jalankan aplikasi Dessert Clicker, dan buka panel Logcat.
  5. Ketikkan tag:MainActivity di kolom penelusuran untuk memfilter log. Perhatikan bahwa metode onCreate() dan onStart() dipanggil satu demi satu, dan aktivitas Anda akan terlihat di layar.
  6. Tekan tombol Layar Utama di perangkat, lalu gunakan layar Terbaru untuk kembali ke aktivitas. Perhatikan bahwa aktivitas dilanjutkan dari tempat terakhirnya, dengan semua nilai yang sama, dan onStart() dicatat dalam log untuk kedua kalinya di Logcat.
Langkah 3: Menambahkan laporan log lainnya
  1. Ganti sisa metode siklus proses di MainActivity Anda dan tambahkan laporan log untuk setiap metode, seperti yang ditunjukkan dalam kode berikut:
    override fun onResume() {
       
    super.onResume()
       
    Log.d(TAG, "onResume Called")
    }

    override fun onRestart() {
       
    super.onRestart()
       
    Log.d(TAG, "onRestart Called")
    }

    override fun onPause() {
       
    super.onPause()
       
    Log.d(TAG, "onPause Called")
    }

    override fun onStop() {
       
    super.onStop()
       
    Log.d(TAG, "onStop Called")
    }

    override fun onDestroy() {
       
    super.onDestroy()
       
    Log.d(TAG, "onDestroy Called")
    }
  2. Kompilasi dan jalankan lagi aplikasi Dessert Clicker dan periksa Logcat.

Berikut tampilan akhir aplikasi:




Sabtu, 04 Mei 2024

Tugas 6: Membuat Aplikasi Woof

Nama    : Dilla Wahdana
NRP     : 5025211060
Kelas   : PPB B

Membuat Aplikasi Woof


Pada postingan kali ini kita akan belajar untuk membuat aplikasi Woof, yaitu aplikasi yang menampilkan daftar anjing dan menggunakan Desain Material untuk membuat pengalaman aplikasi yang menarik. Berikut ringkasan codenya
  1. Buka kode awal di Android Studio.
  2. Buka com.example.woof > data > Dog.kt. File ini berisi Dog data class yang akan digunakan untuk mewakili foto, nama, usia, dan hobi anjing. File ini juga berisi daftar anjing dan informasi yang akan digunakan sebagai data di aplikasi.
  3. Buka res > drawable. File ini berisi semua aset gambar yang dibutuhkan untuk project ini, termasuk ikon aplikasi, gambar anjing, dan ikon.
  4. Buka res > values > strings.xml. File ini berisi string yang digunakan dalam aplikasi ini, termasuk nama aplikasi, nama anjing, deskripsinya, dan lainnya.
  5. Buka MainActivity.kt. File ini berisi kode untuk membuat daftar sederhana yang menampilkan foto anjing, nama anjing, dan usia anjing tersebut.
  6. WoofApp() berisi LazyColumn yang menampilkan DogItem.
  7. DogItem() berisi Row yang menampilkan foto anjing dan informasi tentangnya.
  8. DogIcon() menampilkan foto anjing.
  9. DogInformation() menampilkan nama dan usia anjing.
  10. WoofPreview() menampilkan pratinjau aplikasi di panel Design.
Berikut tampilan akhir aplikasi:






Sabtu, 27 April 2024

Tugas 5: MATERIAL DESIGN

 Nama: Dilla Wahdana

NRP    : 5025211060

Kelas    : PPB B

ASSIGNMENT 5: MATERIAL DESIGN


Water Bottle App
Dalam proyek terbaru saya, saya berfokus pada pembuatan aplikasi Android sederhana menggunakan Android Studio. Aplikasi ini dinamakan Water Bottle App yang bertujuan untuk menghitung volume air dalam sebuah botol dan menyediakan tombol "drink" untuk menambah volume air tersebut.

Membuat Project
1. Di Android Studio, klik File > New > New Project.
2. Dalam dialog New Project, pilih Empty Activity, lalu klik Next.
3. Di kolom Name, masukkan water-bottle-app.
4. Di kolom Minimum SDK, pilih API level minimum 26 (Oreo) dari menu, lalu klik Finish.


Berikut tampilan akhir beserta demo dari aplikasi yang telah dibuat:







Jumat, 19 April 2024

Tugas 4: Membuat Halaman Login

 Nama    : Dilla Wahdana

NRP    : 5025211060

Kelas    : PPB B

Membuat Halaman Login

    Dalam proyek ini, kita akan mengembangkan sebuah layar login untuk aplikasi Android. Login Page merupakan tahapan awal bagi user untuk masuk ke akun aplikasi atau sosial media yang mereka miliki. User dapat masuk ke akun mereka dengan memasukkan alamat email dan kata sandi, atau menggunakan media sosial. Login Page yang dibuat dalam tugas ini mempunyai desain UI yang sederhana namun fungsional. Login Page terdiri dari dua field teks untuk email dan password, serta sebuah tombol untuk melakukan login. 

    Selain itu, layar ini akan menampilkan sebuah tombol untuk melakukan login, serta sebuah opsi "Forgot Password?" yang dapat digunakan jika pengguna lupa kata sandi mereka. Kami juga akan menyediakan pilihan untuk login menggunakan akun dari platform pihak ketiga seperti Gmail, Facebook, X.com, dan GitHub.

Berikut Tampilannya:


EAS PPB B

 Nama     : Dilla Wahdana NRP         : 5025211060 Kelas       : PPB B EAS PPB B Buat use case dan user flow dari aplikasi ?  i.saku adalah ...