Lesson 4: User Interaction

4.1. Menggunakan Keyboard, Kontrol Masukan, Peringatan, dan Picker

Tugas 1: Bereksperimen dengan atribut keyboard entri teks

1.1 Membuat layout utama dan metode showText

1.2 Setel keyboard untuk menjadikan huruf besar di awal kalimat

1.3

2

2.1

2.2

3.

3.1

3.2

3.3

 

4

 

 

5

 

7

 

4.2: Menggunakan Menu Opsi

1

 

2

 

3

 

4.3: Menggunakan Bilah Aplikasi dan Tab untuk Navigasi

4.4 Membuat RecyclerView

 

Lesson 3 : Testing, Debugging and using Support Library

Lesson 3 : Testing, Debugging and using Support Library

3.1 : Menggunakan Debugger

Tugas 1. Membuat Proyek dan Aplikasi SimpleCalc

1.1   Unduh dan buka proyek SimpleCalc

 

1.2 Menjelajahi Layout

 

1.3 Jelajahi kode aplikasi

 

Tugas 2. Menjalankan SimpleCalc di Debugger

2.1 Memulai dan Menjalankan aplikasi dalam mode debug

2.2 Men-debug aplikasi yang berjalan

Tugas 3: Menjelajahi Fitur Debugger

3.1 Menyusuri eksekusi aplikasi

 

3.2 Bekerja dengan Breakpoint

3.3 Memeriksa dan memodifikasi variabel

 

3.2: Menguji Aplikasi dengan Pengujian Unit

Tugas 1. Menjelajahi dan menjalankan SimpleCalc di Android Studio

1.1 Menjelajahi rangkaian sumber dan SimpleCalc

1.2   Menjalankan pengujian dalam Android Studio

 

Tugas 2. Menambahkan lebih banyak pengujian unit ke CalculatorTest

2.1 Menambahkan lebih banyak pengujian untuk metode add()

 

2.2 Menambahkan pengujian unit untuk metode penghitungan lain

 

/*
  * Copyright 2016, Google Inc.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
  *
  *      http://www.apache.org/licenses/LICENSE-2.0
  *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
 
 package com.example.android.SimpleCalc;
 
         import org.junit.Before;
         import org.junit.Test;
         import org.junit.runner.RunWith;
         import org.junit.runners.JUnit4;
         import android.test.suitebuilder.annotation.SmallTest;
 
         import static org.hamcrest.CoreMatchers.equalTo;
         import static org.hamcrest.CoreMatchers.is;
         import static org.hamcrest.Matchers.closeTo;
 
         import static org.junit.Assert.assertThat;
 
 /**
  * JUnit4 unit tests for the calculator logic. These are local unit tests; no device needed
  */
 @RunWith(JUnit4.class)
 @SmallTest
 public class CalculatorTest {
 
     private Calculator mCalculator;
 
     /**
      * Set up the environment for testing
      */
     @Before
     public void setUp() {
         mCalculator = new Calculator();
     }
 
     /**
      * Test for simple addition
      */
     @Test
     public void addTwoNumbers() {
         double resultAdd = mCalculator.add(1d, 1d);
         assertThat(resultAdd, is(equalTo(2d)));
     }
 
     @Test
     public void addTwoNumbersNegative() {
         double resultAdd = mCalculator.add(-1d, 2d);
         assertThat(resultAdd, is(equalTo(1d)));
     }
 
     @Test
     public void addTwoNumbersFloats() {
         double resultAdd = mCalculator.add(1.111f, 1.111d);
         assertThat(resultAdd, is(closeTo(2.222, 0.01)));
     }
 
     @Test
     public void subTwoNumbers() {
         double resultSub = mCalculator.sub(1d, 1d);
         assertThat(resultSub, is(equalTo(0d)));
     }
     @Test
     public void subWorksWithNegativeResult() {
         double resultSub = mCalculator.sub(1d, 17d);
         assertThat(resultSub, is(equalTo(-16d)));
     }
     @Test
     public void mulTwoNumbers() {
         double resultMul = mCalculator.mul(32d, 2d);
         assertThat(resultMul, is(equalTo(64d)));
     }
     @Test
     public void divTwoNumbers() {
         double resultDiv = mCalculator.div(32d,2d);
         assertThat(resultDiv, is(equalTo(16d)));
     }
     @Test
     public void divTwoNumbersZero() {
         double resultDiv = mCalculator.div(32d,0);
         assertThat(resultDiv, is(equalTo(Double.POSITIVE_INFINITY)));
     }
 }
3.3: Menggunakan Pustaka Dukungan Android

Tugas 1. Menyiapkan proyek

1.1   Memverifikasi bahwa Pustaka Dukungan Android tersedia

 

1.2 Menyiapkan Proyek dan memeriksa build.gradle

1.3   Menambahkan layout dan warna

 

Tugas 2. Mengimplementasikan perilaku tombol

2.1 Tambahkan handler onClick changeButton()

Lesson 2 Activities

2.1: Membuat dan Memulai Aktivitas

Tugas 1. Membuat proyek TwoActivities

1.1   Membuat proyek TwoActivities

 

1.2 Definisikan layout untuk aktivitas utama

 

1.3 Mendefinisikan tindakan tombol

 

Tugas 2. Membuat dan meluncurkan aktivitas kedua

2.1 Membuat aktivitas kedua

 

2.2 Memodifikasi manifes Android

2.3 Mendefinisikan layout untuk aktivitas utama

2.4 Menambahkan intent ke aktivitas utama

Tugas 3. Mengirim data dari aktivitas utama ke aktivitas kedua

3.1 Menambahkan EditText ke layout aktivitas utama

3.2 Menambahkan string ke ekstra intent aktivitas utama

3.3 Menambahkan TextView ke aktivitas kedua untuk pesan

 

Tugas 4. Mengembalikan data ke aktivitas utama

4.1 Menambahkan EditText dan Tombol ke layout aktivitas kedua

 

4.2 Membuat intent respons dalam aktivitas kedua

 

4.3 Menambahkan TextViews ke layout aktivitas utama untuk menampilkan balasan

 

Hasil :

 

 

2.2: Siklus Hidup Aktivitas dan Status Instance

Tugas 1. Menambahkan Callback Siklus Hidup ke TwoActivities

1.2 Mengimplementasikan callback ke MainActivity

1.3 Mengimplementasikan callback siklus hidup dalam SecondActivity

 

Tugas 2. Menyimpan dan memulihkan status instance aktivitas.

2.1 Simpan status instance aktivitas dengan onSaveInstanceState()

 

2.3: Memulai Aktivitas dengan Intent Implisit

Tugas 1. Membuat proyek dan layout baru

1.1 Membuat proyek

Tugas 2. Mengimplementasikan “buka situs web”

2.1 Mendefinisikan metode openWebsite

 

Tugas 3. Mengimplementasikan “buka lokasi”

3.1 Definisikan metode openLocation

 

Tugas 4. Mengimplementasikan bagikan teks ini

4.1 Mengimplementasikan metode shareText

Tugas 5. Menerima Intent Implisit

5.1 Membuat Proyek & Layout

 

Lesson 1 Build Your First App

Nama  : Sardhika Janar Prasetyo

NIM    : 1202150067

Kelas   : SI-39-03

1.1 Memasang Android Studio dan Menjalankan Hello World

Tugas 1 : Memasang Android Studio

Pertama, melakukan pengecekkan java version. Jika versi javanya merupakan dibawah versi 7, dianjurkan untuk mendownload jdk terlebih dahulu. (Versi laptop saya : versi 8)

 

 

 

Tugas 2: Membuat aplikasi “Hello World”

 

 

Tugas 3: Menjelajahi struktur dari project.

Tugas 4 : Membuat Perangkat Virtual

Tugas 6 : Menambahkan pernyataan log ke aplikasi Anda

 

1.2 A: Membuat UI Interaktif Pertama Anda

Tugas 1 : Membuat Proyek Baru “Hello Toast”

Tugas 2 : Menambahkan tampilan untuk “Hello Toast” pada Layout Editor

Tugas 3 : Menambahkan Handler OnClick

 

1.2B Menggunakan Layout

Tugas 1: Mengubah layout ke RelativeLayout

<?xml version=”1.0″ encoding=”utf-8″?>
<RelativeLayout xmlns:android=”http://schemas.android.com/apk/res/android”
xmlns:app=”http://schemas.android.com/apk/res-auto”
xmlns:tools=”http://schemas.android.com/tools”
android:layout_width=”match_parent”
android:layout_height=”match_parent”
android:orientation=”vertical”
android:paddingBottom=”@dimen/activity_vertical_margin”
android:paddingLeft=”@dimen/activity_horizontal_margin”
android:paddingRight=”@dimen/activity_horizontal_margin”
android:paddingTop=”@dimen/activity_vertical_margin”
tools:context=”com.example.asus.hellorelative.MainActivity”
>

<Button
android:id=”@+id/button_toast”
android:layout_width=”wrap_content”
android:layout_height=”wrap_content”
android:background=”#20ff29″
android:onClick=”showToast”
android:text=”@string/button_label_toast”
android:textColor=”@android:color/white” />

<TextView
android:id=”@+id/show_count”
android:layout_width=”wrap_content”
android:layout_height=”wrap_content”

android:layout_alignParentTop=”true”
android:layout_toEndOf=”@+id/button_toast”
android:layout_toRightOf=”@+id/button_toast”
android:layout_weight=”2″
android:background=”#ff482a”
android:gravity=”center”
android:text=”@string/count_initial_value”
android:textColor=”#fff90c”
android:textSize=”@dimen/count_text_size”
android:textStyle=”bold”
tools:text=”0″ />

<Button
android:id=”@+id/button_count”
android:layout_width=”wrap_content”
android:layout_height=”wrap_content”
android:layout_alignParentLeft=”true”
android:layout_alignParentStart=”true”
android:layout_below=”@+id/button_toast”
android:background=”@color/colorPrimary”
android:onClick=”countUp”
android:text=”@string/button_label_count”
android:textColor=”@android:color/white” />
</RelativeLayout>

Tugas 2 : Mengonversi LinearLayout menjadi ConstraintLayout

<?xml version=”1.0″ encoding=”utf-8″?>
<android.support.constraint.ConstraintLayout xmlns:android=”http://schemas.android.com/apk/res/android”
xmlns:app=”http://schemas.android.com/apk/res-auto”
xmlns:tools=”http://schemas.android.com/tools”
android:id=”@+id/linearLayout”
android:layout_width=”match_parent”
android:layout_height=”match_parent”
tools:context=”com.example.asus.helloconstraint.MainActivity”>

<Button
android:id=”@+id/button_toast”
android:layout_width=”0dp”
android:layout_height=”wrap_content”
android:layout_marginTop=”32dp”
android:background=”#20ff29″
android:onClick=”showToast”
android:text=”@string/button_label_toast”
android:textColor=”@android:color/white”
app:layout_constraintBottom_toTopOf=”@+id/show_count”
app:layout_constraintEnd_toEndOf=”parent”
app:layout_constraintStart_toStartOf=”@+id/show_count”
app:layout_constraintTop_toTopOf=”parent” />

<TextView
android:id=”@+id/show_count”
android:layout_width=”352dp”
android:layout_height=”0dp”
android:background=”#ff482a”
android:gravity=”center”
android:text=”@string/count_initial_value”
android:textColor=”#fff90c”
android:textSize=”@dimen/count_text_size”
android:textStyle=”bold”
app:layout_constraintBottom_toTopOf=”@+id/button_count”

app:layout_constraintEnd_toEndOf=”parent”
app:layout_constraintTop_toBottomOf=”@+id/button_toast”
tools:text=”0″ />

<Button
android:id=”@+id/button_count”
android:layout_width=”0dp”
android:layout_height=”wrap_content”
android:background=”@color/colorPrimary”
android:onClick=”countUp”
android:text=”@string/button_label_count”
android:textColor=”@android:color/white”
app:layout_constraintBottom_toBottomOf=”parent”
app:layout_constraintEnd_toEndOf=”parent”
app:layout_constraintStart_toStartOf=”@+id/show_count”
app:layout_constraintTop_toBottomOf=”@+id/show_count” />
</android.support.constraint.ConstraintLayout>

1.3: Working with TextView Elements

Tugas 1: Menambahkan beberapa tampilan teks

<?xml version=”1.0″ encoding=”utf-8″?>
<android.support.constraint.ConstraintLayout xmlns:android=”http://schemas.android.com/apk/res/android”
xmlns:app=”http://schemas.android.com/apk/res-auto”
xmlns:tools=”http://schemas.android.com/tools”
android:layout_width=”match_parent”
android:layout_height=”match_parent”
tools:context=”com.example.asus.scrollingtext.MainActivity”>

<TextView
android:id=”@+id/article_heading”
android:layout_width=”match_parent”
android:layout_height=”wrap_content”
android:background=”@color/colorPrimary”
android:textColor=”@android:color/white”
android:padding=”@dimen/padding_regular”
android:textAppearance=”@android:style/TextAppearance.Large”
android:textStyle=”bold”
android:text=”@string/article_title”
tools:layout_editor_absoluteX=”5dp”
tools:layout_editor_absoluteY=”16dp” />

<TextView
android:id=”@+id/article_subheading”

android:layout_width=”match_parent”
android:layout_height=”wrap_content”

android:layout_below=”@id/article_heading”
android:padding=”@dimen/padding_regular”
android:textAppearance=”@android:style/TextAppearance”
android:text=”@string/article_subtitle”
tools:layout_editor_absoluteX=”0dp”
tools:layout_editor_absoluteY=”73dp” />

<TextView
android:id=”@+id/article”
android:lineSpacingExtra=”@dimen/line_spacing”
android:layout_below=”@id/article_subheading”
android:layout_width=”wrap_content”
android:layout_height=”wrap_content”
android:text=”@string/article_text”
tools:layout_editor_absoluteX=”0dp”
tools:layout_editor_absoluteY=”128dp” />

</android.support.constraint.ConstraintLayout>

Encapsulation Java

 

Encapsulation yang diterpakan pada Bahasa pemrograman java adalah bagaimana menyembunyikan attribute dan memerlukan semua interaksi pada attribute dan memerlukan semua interaksi pada attribute-attribute tersebut hanya melalui method methodnya.

Langsung saja ke contoh yang telah desediakan.

1

Disini telah dibuat 4 attribute, dengan tipe data yang berbeda, int untuk tipe data angka atau bilangan, String untuk pernyataan, Boolean untuk mengimplementasikan nilai yang bernilai true dan false.

2

Selanjutnya kita membuat sebuah method yang bernama bersuara() yang bertipe void, yang menampilkan output “meeooww” saat dipanggil .

3

Ke 4 attribute yang telah kita buat tadi , ditambahkan “private” Karena attribute tersebut hanya bisa diakses oleh class itu sendiri.

5

Selanjutnya untuk memanggil method yang telah kita buat, kita harus membuat method main, yang mana method yang akan dijalankan pertama kali oleh java.

6

Setelah kita coba running akan keluar pesan “nama has private access”  yang artinya kita sudah berhasil meng encapsulation attribute untuk tidak bias dikases oleh method main atau method yang lain.

 

Disini peran method setter adalah method yang digunakan untuk memberi nilai attribute yang di encapsulation.

7

 

Kita akan membuat method setter “setNama” kedalam class kucing

8

Mengubah baris code main class yang sebelumnya “.nama” menjadi  “.setNama”

9

Setelah mengubah source code di main dan di class kucing, kita akan mendapatkan running build success

 

Setelah berhasil memberikan nilai pada attribute, berarti kita sudah bias menerapkan method setter, yang memiliki ciri.

  1. Ditulis “ set+ nama attribute”
  2. Ada parameter yang sesuai dengan data yang di encapsulation
  3. Return type “void”

 

Setelah mengimplementasikan method setter, kita akan menggunakan method getter, apa sih method getter itu sendiri?

Method getter adalah method yang digunakan untuk mendapatkan nilai balikan (return value) dari attribute yang di encapsulation.

10

Menambah kan method “getNama” sebagai method getter

11

Menambahkan code System.out.println pada class main

12

Jika source code di running akan muncul “tukinem” yang artinya kita sudah berhasil mengambil / get nilai dari attribute diatas

Method getter yang sudah kita implementasikan diatas mempunyai ciri ciri

  1. Diberi nama “get+nama attribute yang di encapsulation”
  2. Return typenya bukan void
  3. Mengembalikan nilai / return attribute yang telah diencapsulation

13

Menambahkan method setter dan getter pada seluruh attribute yang telah kita buat sebelumnya.

14

Selanjutnya kita akan menambahkan code pada class main, untuk melakukan eksekusi pada method yang kita buat diatas.

15

Setelah kita running hasilnya akan seperti tampak diatas.

 

Source: http://kodesumsi.com/2016/02/05/enkapsulasi-java/

Tugas Konsep Pengetahuan Sains dan Teknologi

NETTOR

 

Dewasa ini, sering terjadi listrik padam sehingga mengganggu kegiatan manusia seperti tidak bisa belajar, baterai Hp habis dan sebagainya. Sehingga kami merancang sebuah alat untuk membantu memecahkan masalah dan juga dapat menghemat listrik dan kami berinama “Nettor” yaitu sebuah alat yang menghasilkan listrik yang bersumber dari energy magnet . Untuk membuat alat ini tidaklah terlalu sulit, disini kami menggukan sebuah kipas laptop, terminal, dan tentunya magnet. Magnet yang kita gunakan magnet berukuran kecil dan besar. Cara merangkainya adalah sebagai berikut:

  1. Potong ujung kabel yang ada pada kipas laptop dan kemudian sambungkan ke sebuah terminal
  2. Tempelkan magnet kecil di setiap baling-baling kipas.
  3. Dan yang terakhir letakan magnet besar di dekat baling-baling.

Cara kerjanya adalah ketika sebuah magnet yang besar kita dekatkan dengan magnet kecil yang ditempelkan ke setiap baling-baling, sehingga akan terjadi gaya tolak menolak dan gaya tarik menarik di setiap magnet sehingg baling-baling akan berputar, semakin besar energy magnetnya maka akan semakin kencang putarannya sehingga listrik yang dihasilkan besar pula. Untuk lebih jelasnya lagi lihat video di bawah ini.

 

https://youtu.be/csZcTXdKGI0

Resonansi Gelombang Bunyi (RGB)

Resonansi adalah peristiwa ikut bergetarnya suatu benda akibat benda lain yang bergetar karena keduanya memiliki frekuensi yang sama atau memiliki  frekuensi yang merupakan bilangan bulat dari frekuensi salah satu benda bergetar. Resonansi bunyi pada kolom udara dimanfaatkan untuk menghasilkan bunyi pada alat musik. Alat- alat musik memiliki lubang udara sehingga terjadi resonansi udara dan menghasilkan suara yang merdu.

Misalnya : bunyi merdu pada gitar dihasilkan oleh resonansi anatara dawai dan kotak resonansi. Ketika gitar di petik udara di dalam kotk resonansi bergetar dengan frekuensi yang sama dengan frekuensi dawai. Udara yang berada di dalam kendang juga ikut bergetar ketika kendang dipukul. Jika tidak ada kolom udara pada alat musik kita tidak dapat mendengar merdunya suara musik.

Resonansi bunyi pada garputala

Apabila salah satu garputala kita pukul, maka garputala akan bergetar. hal ini menyebabkan garpula lainnya juga ikut bergetar karena frekuensi keduanya sama. Frekuensi bunyi pada garputaladipengaruhi oleh bentuk garputala, bahan garputala dan besar kecilnya garputala.

 

Resonansi pada kolom udara

Contoh peristiwa resonansi lainnya ketika digetarkan sebuah garputala diatas kolom udara yang berada di atas permukaan air menyebabkanmolekul udara di dalam kolom ikut bergetar. Kolom udara berfungsi sebagai tabung resonator. Peristiwa resonansi dimanfaatkan untuk mengukur kecepatan perambatan bunyi di udara. Adapun syarat terjadinya resonansi. panjang kolom udara yang diperlukan agar terjadi resonansi sepanjang  l = (2n-1)¼λ, dengan n = 1, 2, 3, . . .

Kita dapat mendengar resonansi yang berurutan jika resonansi pertama dengan resonansi berikutnya berjarak Δl = ½ λ.

Apabila frekuensi (f) sebuah garputala dan panjang gelombang bunyi (λ) diketahui, kita dapat menentukan cepat rambat bunyi diudara dengan persamaan :

 

v= λ x f

 

 

 

Selain bermanfaat, resonansi juga dapat merugikan. Misalnya :

  1. Resonansi dapat merobohkan jembatan gantung apabila frekuensi alami jembatan sama dengan frekuensi langkahkaki sekelompok orang yang berjalan diatas jembatan. Hal ini menyebabkan jembatn akan berayun yang berakibat runtuhnya jembatan gantung tersebut.
  2. Resonansi dapat memecahakan kaca jendela jika ada suara petir yang sangat keras. Hal ini karena frekuensi alami kaca sama dengan frekuensi petir sehingga kaca akan ikut bergetar ketika ada petir.