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—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—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—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—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—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—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