1page.title=Navigasi dengan Back dan Up
2page.tags="navigation","activity","task","up navigation","back navigation"
3page.image=/design/media/navigation_between_siblings_gmail.png
4@jd:body
5
6<a class="notice-developers" href="{@docRoot}training/implementing-navigation/index.html">
7  <div>
8    <h3>Dokumen Pengembang</h3>
9    <p>Mengimplementasikan Navigasi yang Efektif</p>
10  </div>
11</a>
12
13<p itemprop="description">Navigasi yang konsisten merupakan komponen penting dari keseluruhan pengalaman pengguna. Hampir tidak ada yang lebih membingungkan
14pengguna selain navigasi dasar yang perilakunya tidak konsisten dan tidak sesuai harapan. Android 3.0
15memperkenalkan perubahan besar dalam perilaku navigasi global. Mengikuti dengan saksama
16panduan untuk Back dan Up akan membuat navigasi aplikasi Anda dapat diprediksi dan dapat diandalkan pengguna.</p>
17<p>Android 2.3 dan versi sebelumnya mengandalkan tombol <em>Back</em> sistem untuk mendukung navigasi dalam
18aplikasi. Dengan diperkenalkannya action-bar dalam Android 3.0, mekanisme navigasi kedua muncul:
19tombol <em>Up</em>, yang terdiri dari ikon aplikasi dan tanda panah yang menunjuk ke kiri.</p>
20
21<img src="{@docRoot}design/media/navigation_with_back_and_up.png">
22
23<h2 id="up-vs-back">Up vs. Back</h2>
24
25<p>Tombol Up digunakan untuk berpindah dalam aplikasi berdasarkan hubungan hierarki
26antar layar. Misalnya, jika layar A menampilkan daftar item, dan memilih sebuah item akan membuka
27layar B (yang menampilkan item tersebut secara lebih detail), maka layar B akan menawarkan tombol Up untuk
28kembali ke layar A.</p>
29<p>Jika suatu layar merupakan yang teratas dalam aplikasi (yaitu layar Home aplikasi), maka tidak perlu menampilkan tombol
30Up.</p>
31
32<p>Tombol Back sistem digunakan untuk berpindah, dalam urutan kronologis terbalik, melalui riwayat
33layar yang baru dibuka oleh pengguna. Biasanya ini berdasarkan hubungan sementara
34antar layar, dan bukan hierarki aplikasi.</p>
35
36<p>Bila layar yang dilihat sebelumnya juga merupakan induk hierarki dari layar yang sekarang, menekan tombol
37Back akan sama hasilnya dengan menekan tombol Up&mdash;ini adalah kejadian
38biasa. Akan tetapi, berbeda dengan tombol Up, yang memastikan pengguna tetap berada dalam aplikasi Anda, tombol Back
39dapat mengembalikan pengguna ke layar Home, atau bahkan ke aplikasi lain.</p>
40
41<img src="{@docRoot}design/media/navigation_up_vs_back_gmail.png">
42
43<p>Tombol Back juga mendukung beberapa perilaku yang tidak terkait langsung dengan navigasi antar layar:
44</p>
45<ul>
46<li>Menghilangkan jendela mengambang (dialog, popup)</li>
47<li>Menghilangkan action-bar kontekstual, dan menghapus sorotan dari item yang dipilih</li>
48<li>Menyembunyikan keyboard di layar (IME)</li>
49</ul>
50<h2 id="within-app">Navigasi Dalam Aplikasi Anda</h2>
51
52<h4>Berpindah ke layar yang memiliki beberapa titik masuk</h4>
53<p>Kadang-kadang layar tidak memiliki posisi pasti dalam hierarki aplikasi, dan bisa dimasuki
54dari berbagai titik masuk&mdash;seperti layar pengaturan yang dapat dibuka dari layar lain
55dalam aplikasi Anda. Dalam hal ini, tombol Up akan memilih untuk kembali ke layar pengarah, yang cara kerjanya
56sama dengan tombol Back.</p>
57<h4>Mengubah tampilan dalam layar</h4>
58<p>Mengubah opsi tampilan untuk layar tidak mengubah perilaku Up atau Back: layar tetap
59berada di tempat yang sama dalam hierarki aplikasi, dan tidak dibuat riwayat navigasi yang baru.</p>
60<p>Contoh perubahan tampilan tersebut adalah:</p>
61<ul>
62<li>Mengganti tampilan menggunakan tab dan/atau geser kiri dan kanan</li>
63<li>Mengubah tampilan menggunakan tarik-turun (alias tab turun)</li>
64<li>Memfilter daftar</li>
65<li>Menyortir daftar</li>
66<li>Mengubah karakteristik tampilan (seperti zoom)</li>
67</ul>
68<h4>Berpindah antar layar yang seinduk</h4>
69<p>Bila aplikasi Anda mendukung navigasi dari daftar item ke tampilan detail salah satu item tersebut, aplikasi
70juga sering diharapkan mendukung navigasi langsung dari item itu ke item sebelumnya atau
71sesudahnya dalam daftar. Misalnya, dalam Gmail, begitu mudah untuk bergeser ke kiri atau kanan dari sebuah percakapan
72untuk melihat percakapan yang lebih baru atau lebih lama dalam Inbox yang sama. Sama seperti saat mengubah tampilan dalam layar, navigasi
73ini tidak mengubah perilaku Up atau Back.</p>
74
75<img src="{@docRoot}design/media/navigation_between_siblings_gmail.png">
76
77<p>Akan tetapi, pengecualian khusus terhadap hal ini terjadi saat menjelajah di antara tampilan detail terkait yang tidak disatukan
78oleh daftar yang merujuknya&mdash;misalnya, saat menjelajahi Play Store di antara aplikasi dari
79pengembang yang sama, atau album dari artis yang sama. Dalam hal ini, mengikuti setiap tautan akan membuat
80riwayat, sehingga tombol Back akan menyusuri setiap layar yang dilihat sebelumnya. Tombol Up akan terus
81melewatkan semua layar terkait ini dan berpindah ke layar kontainer yang terakhir dilihat.</p>
82
83<img src="{@docRoot}design/media/navigation_between_siblings_market1.png">
84
85<p>Anda dapat menjadikan perilaku tombol Up lebih cerdas lagi berdasarkan pengetahuan Anda tentang tampilan
86detail. Dengan memperluas contoh Play Store dari atas, bayangkan pengguna yang telah berpindah dari Buku
87terakhir yang dilihat ke detail untuk adaptasi Film. Dalam hal itu, tombol Up dapat kembali ke kontainer
88(Movies) yang sebelumnya belum dilalui pengguna.</p>
89
90<img src="{@docRoot}design/media/navigation_between_siblings_market2.png">
91
92<h2 id="into-your-app">Navigasi ke Aplikasi Anda melalui Widget dan Pemberitahuan Layar Home</h2>
93
94<p>Anda bisa menggunakan widget atau pemberitahuan layar Home untuk membantu pengguna berpindah langsung ke layar
95jauh dalam hierarki aplikasi Anda. Misalnya, widget Inbox dan pemberitahuan pesan baru di Gmail dapat
96melewatkan layar Inbox, dan membawa pengguna langsung ke tampilan percakapan.</p>
97
98<p>Untuk kedua kasus ini, tangani tombol Up sebagai berikut:</p>
99
100<ul>
101<li><em>Jika layar tujuan biasanya dicapai dari satu layar tertentu dalam aplikasi
102Anda</em>, tombol Up akan mengarahkannya ke layar itu.</li>
103<li><em>Jika tidak</em>, tombol Up akan mengarahkan ke layar teratas ("Home") dari aplikasi Anda.</li>
104</ul>
105
106<p>Dalam hal tombol Back, Anda harus membuat navigasi lebih bisa diprediksi dengan menyisipkan ke dalam
107back-stack tugas path navigasi naik lengkap menuju layar teratas aplikasi. Ini memungkinkan pengguna
108yang lupa cara masuk ke aplikasi Anda untuk berpindah ke layar teratas aplikasi sebelum
109keluar.</p>
110
111<p>Sebagai contoh, widget layar Home di Gmail memiliki tombol untuk menuju langsung ke layar
112Compose. Tombol Up atau Back dari layar Compose akan membawa pengguna ke Inbox, dan dari sana tombol
113Back berlanjut ke Home.</p>
114
115<img src="{@docRoot}design/media/navigation_from_outside_back.png">
116
117<h4>Pemberitahuan tidak langsung</h4>
118
119<p>Jika aplikasi Anda perlu menampilkan informasi tentang beberapa kejadian sekaligus, aplikasi dapat menggunakan
120pemberitahuan tunggal yang mengarahkan pengguna ke layar antara. Layar ini merangkum semua
121kejadian tersebut, dan menyediakan path bagi pengguna untuk menjelajah ke dalam aplikasi. Pemberitahuan dengan gaya seperti ini
122disebut <em>pemberitahuan tidak langsung</em>.</p>
123
124<p>Berbeda dengan pemberitahuan standar (langsung), menekan tombol Back dari 
125layar antara pada pemberitahuan tidak langsung akan mengembalikan pengguna ke titik pemicu pemberitahuan tersebut&mdash;tidak ada
126layar tambahan yang disisipkan ke dalam back-stack. Setelah pengguna melanjutkan ke dalam aplikasi dari
127layar antara, tombol Up dan Back akan berperilaku seperti pada pemberitahuan standar, sebagaimana dijelaskan di atas:
128menyusuri ke dalam aplikasi dan bukan kembali ke layar antara.</p>
129
130<p>Misalnya, anggaplah seorang pengguna di Gmail menerima pemberitahuan tidak langsung dari Kalender. Menyentuh
131pemberitahuan ini akan membuka layar antara, yang menampilkan pengingat beberapa macam
132kejadian. Menyentuh Back dari layar antara akan mengembalikan pengguna ke Gmail. Menyentuh kejadian
133tertentu akan membawa pengguna dari layar antara ke aplikasi Kalender lengkap untuk menampilkan detail
134kejadian. Dari detail kejadian, tombol Up dan Back akan mengarahkan ke tampilan Kalender tingkat atas.</p>
135
136<img src="{@docRoot}design/media/navigation_indirect_notification.png">
137
138<h4>Pemberitahuan pop-up</h4>
139
140<p><em>Pemberitahuan pop-up</em> akan melewatkan laci pemberitahuan, bukan muncul secara langsung di
141hadapan pengguna. Ini jarang digunakan, dan <strong>harus dicadangkan untuk peristiwa yang memerlukan respons tepat waktu
142dan diperlukan interupsi dari konteks pengguna</strong>. Misalnya,
143Talk menggunakan gaya ini untuk memberi tahu pengguna tentang ajakan dari teman untuk bergabung dalam chatting video, karena
144ajakan ini akan kedaluwarsa secara otomatis setelah beberapa detik.</p>
145
146<p>Dalam hal perilaku navigasi, pemberitahuan pop-up sangat mirip perilaku pemberitahuan
147tidak langsung pada layar antara. Tombol Back akan menghilangkan pemberitahuan pop-up. Jika pengguna berpindah
148dari pop-up ke aplikasi yang memberi tahu, tombol Up dan Back akan mengikuti aturan pemberitahuan standar,
149berpindah dalam aplikasi.</p>
150
151<img src="{@docRoot}design/media/navigation_popup_notification.png">
152
153<h2 id="between-apps">Navigasi Antar Aplikasi</h2>
154
155<p>Salah satu kekuatan dasar sistem Android adalah kemampuan aplikasi untuk saling
156mengaktifkan, sehingga pengguna dapat berpindah langsung dari satu aplikasi ke aplikasi lainnya. Misalnya, sebuah
157aplikasi yang perlu mengambil foto dapat mengaktifkan aplikasi Kamera, yang akan mengembalikan foto
158ke aplikasi perujuk. Ini sangat menguntungkan pengembang, yang bisa dengan mudah memanfaatkan
159kode dari aplikasi lain, maupun pengguna, yang menikmati pengalaman konsisten untuk tindakan yang biasa
160dilakukan.</p>
161
162<p>Untuk memahami navigasi antar aplikasi, maka perlu memahami perilaku kerangka kerja Android
163yang akan dibahas di bawah ini.</p>
164
165<h4>Aktivitas, tugas, dan intent</h4>
166
167<p>Dalam Android, <strong>aktivitas</strong> adalah komponen aplikasi yang mendefinisikan layar
168informasi dan semua tindakan terkait yang dapat dilakukan pengguna. Aplikasi Anda adalah kumpulan
169aktivitas, yang terdiri dari aktivitas yang Anda buat dan aktivitas yang Anda gunakan ulang dari aplikasi lain.</p>
170
171<p><strong>Tugas</strong> adalah urutan aktivitas yang diikuti pengguna untuk mencapai tujuan. 
172Tugas tunggal dapat memanfaatkan aktivitas dari satu aplikasi saja, atau dapat memanfaatkan aktivitas dari sejumlah
173aplikasi berbeda.</p>
174
175<p><strong>Intent</strong> adalah mekanisme bagi satu aplikasi untuk memberi isyarat minta bantuan
176aplikasi lain dalam menjalankan suatu tindakan. Aktivitas aplikasi dapat menunjukkan intent
177 apa saja yang dapat diresponsnya. Untuk intent umum seperti "Share", pengguna mungkin telah menginstal beberapa aplikasi
178yang dapat memenuhi permintaan itu.</p>
179
180<h4>Contoh: berpindah antar aplikasi untuk mendukung berbagi</h4>
181
182<p>Untuk memahami cara kerja sama aktivitas, tugas, dan intent, perhatikan bagaimana sebuah aplikasi memungkinkan pengguna
183untuk berbagi konten dengan menggunakan aplikasi lain. Misalnya, membuka aplikasi Play Store dari Home akan memulai
184Task A baru (lihat gambar di bawah). Setelah menyusuri Play Store dan menyentuh buku yang dipromosikan
185untuk melihat detailnya, pengguna tetap berada dalam tugas yang sama, memperluasnya dengan menambahkan aktivitas. Memicu
186tindakan Share akan memberi tahu pengguna dengan dialog berisi daftar aktivitas (dari aplikasi berbeda)
187yang telah terdaftar untuk menangani intent Share.</p>
188
189<img src="{@docRoot}design/media/navigation_between_apps_inward.png">
190
191<p>Bila pengguna memilih untuk berbagi melalui Gmail, aktivitas penulisan di Gmail akan ditambahkan sebagai kelanjutan dari
192Task A&mdash;tidak ada tugas baru yang dibuat. Jika Gmail sedang menjalankan tugasnya di latar belakang, maka
193tidak akan terpengaruh.</p>
194
195<p>Dari aktivitas penulisan, mengirim pesan atau menyentuh tombol Back akan mengembalikan pengguna ke
196aktivitas detail buku tersebut. Penyentuhan tombol Back berikutnya akan terus mengarahkan kembali melalui Play
197Store, sampai akhirnya tiba di Home.</p>
198
199<img src="{@docRoot}design/media/navigation_between_apps_back.png">
200
201<p>Akan tetapi, dengan menyentuh tombol Up dari aktivitas penulisan, pengguna menunjukkan keinginan untuk tetap berada di
202Gmail. Aktivitas daftar percakapan Gmail muncul, Task B yang baru akan dibuat untuk itu. Tugas baru
203selalu terkait ke Home, maka menyentuh tombol Back dari daftar percakapan akan mengembalikan ke sana.</p>
204
205<img src="{@docRoot}design/media/navigation_between_apps_up.png">
206
207<p>Task A tetap berjalan di latar belakang, dan pengguna nanti dapat kembali ke sana (misalnya, melalui layar
208Recents). Jika Gmail sedang menjalankan tugasnya di latar belakang, maka itu akan digantikan
209dengan Task B&mdash;konteks sebelumnya akan diabaikan demi tujuan baru pengguna.</p>
210
211<p>Jika register aplikasi Anda menangani intent dengan aktivitas yang jauh di dalam hierarki aplikasi,
212lihat <a href="#into-your-app">Navigasi Aplikasi Anda melalui Widget Layar Home dan
213Pemberitahuan</a> untuk panduan mengenai cara menetapkan navigasi Up.</p>
214