Yang disebut sebagai pengubah adalah

Cirebon - Aryanto Misel (67), warga Kabupaten Cirebon, Jawa Barat melakukan inovasi dengan membuat alat yang diberi nama Nikuba. Nikuba sendiri merupakan akronim dari Niku Banyu berarti Itu Air.

Alat itu disebut Aryanto mampu mengonversi Air (H2O) menjadi Hidrogen (H2) dan bisa digunakan sebagai bahan bakar untuk kendaraan bermotor.

Untuk satu unit Nikuba, Aryanto membanderolnya dengan harga Rp 4,5 juta. Saat ini Aryanto mengaku telah banyak mendapat pesanan. Salah satunya dari Kodam III Siliwangi yang memesan dengan jumlah cukup besar, yakni 10.000 unit.

"Kalau legalitasnya sudah keluar semua, ini sebenarnya pemesanannya sudah banyak. Dari Kodam III Siliwangi kurang lebih 10.000 unit," kata Aryanto kepada detikJabar saat ditemui di kediamannya di Lemahabang Wetan, Kecamatan Lemahabang, Kabupaten Cirebon belum lama ini.

Setiap satu liter air yang dimasukkan ke dalam Nikuba diklaim mampu membuat kendaraan bisa menempuh perjalanan dari Cirebon ke Semarang, pulang-pergi. Hanya saja, air yang bisa dikonversi menjadi Hidrogen sebagai bahan bakar kendaraan adalah air yang sudah tidak memiliki kandungan logam berat.

Aryanto mengaku membutuhkan waktu hingga lima tahun untuk melakukan riset dalam menciptakan alat ini. Modal yang dikeluarkan juga tidak sedikit.

Dijelaskan Aryanto, Nikuba berfungsi untuk memecah antara Hidrogen (H2) dan Oksigen (O2) yang terkandung di dalam Air (H2O) melalui proses elektrolisis. Hidrogen yang telah dihasilkan melalui proses elektrolisis itu kemudian dialirkan ke ruang pembakaran mesin sebagai bahan bakar.

"Sementara Oksigennya akan kembali dielektrolisis menjadi Hidrogen dan dialirkan lagi ruang pembakaran mesin kendaraan," kata dia.

(mso/mso)

Sri Surya Ningrum



Struktur organisasi membawa konsekwensi berubahnya perilaku dan nilai karakteristik orang-orang yang berada dalam struktur organisasi tersebut. Struktur organisasi adalah pengontrol perilaku. Perubahan terhadap struktur organisasi sudah pasti dimaksudkan sebagai upaya mengubah perilaku. Perilaku tertentu akan dihasilkan sesuai dengan struktur organisasinya, hal ini bisa saja terjadi untuk berbagai macam orang dengan latar belakang yang berbeda baik sosial dan ekonominya yang dikurung dalam suatu struktur organisasi, pada tataran ini kasus-kasus penganiayaan yang terjadi di IPDN misalnya tidak dapat dikatakan sadis untuk struktur yang mengkondisikan seperti itu. Negandhi (1975) menyatakan untuk membuat struktur organisasi yang tepat, dimulai dari melihat karakteristik fenomena birokrasi, dilakukan riset untuk mempelajari organisasi yang kompleks yang dapat menjelaskan sebab-sebab adanya struktur khusus dan mencari konsekwensi dari struktur-struktur khusus tersebut pada pola-pola perilaku dan efektivitas dari sebuah organisasi.


DOI: //doi.org/10.21831/jpai.v6i1.1791

  • There are currently no refbacks.

Index sitasi:

           
               
              
      


JPAI by JPAI is licensed under a Creative Commons Attribution 4.0 International License.
Based on a work at //journal.uny.ac.id/index.php/jpakun.
Permissions beyond the scope of this license may be available at //journal.uny.ac.id/index.php/jpakun.

Pengubah memungkinkan Anda mendekorasi atau meningkatkan composable. Pengubah memungkinkan Anda melakukan hal-hal berikut:

  • Mengubah ukuran, tata letak, perilaku, dan tampilan yang dapat dikomposisi
  • Menambahkan informasi, seperti label aksesibilitas
  • Memproses input pengguna
  • Menambahkan interaksi tingkat tinggi, seperti membuat elemen yang dapat diklik, dapat di-scroll, dapat ditarik, atau dapat di-zoom

Pengubah adalah objek Kotlin standar. Buat pengubah dengan memanggil salah satu fungsi class Modifier:

import androidx.compose.ui.Modifier @Composable private fun Greeting(name: String) { Column(modifier = Modifier.padding(24.dp)) { Text(text = "Hello,") Text(text = name) } }

Anda dapat menggabungkan fungsi-fungsi berikut untuk mengomposisikannya:

@Composable private fun Greeting(name: String) { Column(modifier = Modifier .padding(24.dp) .fillMaxWidth() ) { Text(text = "Hello,") Text(text = name) } }

Dalam kode di atas, perhatikan berbagai fungsi pengubah yang digunakan bersama-sama.

  • padding menempatkan ruang di sekitar elemen.
  • fillMaxWidth membuat composable mengisi lebar maksimum yang diberikan kepadanya dari induknya.

Praktik terbaiknya adalah semua Composable menerima parameter modifier, dan meneruskan pengubah tersebut ke turunan pertamanya yang menampilkan UI. Dengan melakukannya, kode Anda akan lebih mudah digunakan kembali dan membuat perilakunya lebih dapat diprediksi serta intuitif. Untuk informasi selengkapnya, lihat panduan Compose API, Elemen menerima dan mematuhi parameter Pengubah.

Pentingnya urutan pengubah

Urutan fungsi pengubah signifikan. Karena setiap fungsi melakukan perubahan pada Modifier yang ditampilkan oleh fungsi sebelumnya, urutan tersebut akan memengaruhi hasil akhir. Mari kita lihat contohnya:

@Composable fun ArtistCard(/*...*/) { val padding = 16.dp Column( Modifier .clickable(onClick = onClick) .padding(padding) .fillMaxWidth() ) { // rest of the implementation } }

Pada kode di atas, seluruh area dapat diklik, termasuk padding di sekitarnya, karena pengubah padding telah diterapkan setelah pengubah clickable. Jika urutan pengubah dibalik, ruang yang ditambahkan oleh padding tidak akan merespons input pengguna:

@Composable fun ArtistCard(/*...*/) { val padding = 16.dp Column( Modifier .padding(padding) .clickable(onClick = onClick) .fillMaxWidth() ) { // rest of the implementation } }

Catatan: Urutan eksplisit akan membantu Anda memikirkan cara berbagai pengubah akan berinteraksi. Bandingkan ini dengan sistem berbasis tampilan tempat Anda harus mempelajari model kotak, dengan margin yang diterapkan "di luar" elemen, tetapi padding "di dalamnya" dan elemen latar belakang akan diubah ukurannya. Desain pengubah membuat jenis perilaku ini eksplisit dan dapat diprediksi, juga memberi Anda lebih banyak kontrol untuk mencapai perilaku yang tepat, yang Anda inginkan. Ini juga menjelaskan mengapa tidak ada pengubah margin kecuali hanya satu padding.

Pengubah bawaan

Jetpack Compose menyediakan daftar pengubah bawaan untuk membantu Anda mendekorasi atau meningkatkan composable. Berikut adalah beberapa pengubah umum yang akan Anda gunakan untuk menyesuaikan tata letak.

Catatan: Sebagian besar pengubah ini dirancang untuk membantu Anda mengatur tata letak UI sesuai kebutuhan. Untuk informasi selengkapnya tentang cara kerja pengubah dalam tata letak, lihat dokumentasi Dasar-dasar tata letak Compose.

padding dan ukuran

Secara default, tata letak yang disediakan di Compose menggabungkan turunannya. Namun, Anda dapat menyetel ukuran dengan menggunakan pengubah size:

@Composable fun ArtistCard(/*...*/) { Row( modifier = Modifier.size(width = 400.dp, height = 100.dp) ) { Image(/*...*/) Column { /*...*/ } } }

Perhatikan bahwa ukuran yang Anda tentukan mungkin tidak diterapkan jika tidak memenuhi batasan yang berasal dari induk tata letak. Jika Anda mengharuskan ukuran composable diperbaiki, terlepas dari batasan yang masuk, gunakan pengubah requiredSize:

@Composable fun ArtistCard(/*...*/) { Row( modifier = Modifier.size(width = 400.dp, height = 100.dp) ) { Image( /*...*/ modifier = Modifier.requiredSize(150.dp) ) Column { /*...*/ } } }

Dalam contoh ini, meski induk height disetel ke 100.dp, tinggi Image akan menjadi 150.dp, karena pengubah requiredSize lebih diutamakan.

Catatan: Tata letak didasarkan pada batasan, dan biasanya, induk meneruskan batasan tersebut ke turunan. Turunan harus mematuhi batasan. Namun, UI tidak selalu memerlukan hal tersebut. Ada beberapa cara untuk mengabaikan perilaku turunan ini. Misalnya, Anda dapat meneruskan pengubah seperti requiredSize langsung ke turunan, mengganti batasan yang diterima oleh turunan dari induk, atau Anda dapat menggunakan tata letak khusus dengan perilaku yang berbeda. Jika turunan tidak mematuhi batasannya, sistem tata letak akan menyembunyikannya dari induk. Induk akan melihat nilai width dan height turunan seolah-olah nilai tersebut dikonversi dalam batasan yang diberikan oleh induk. Sistem tata letak akan memusatkan turunan dalam ruang yang dialokasikan oleh induk dengan asumsi bahwa turunan mematuhi batasan. Developer dapat mengganti perilaku pemusatan ini dengan menerapkan pengubah wrapContentSize ke turunan.

Jika Anda ingin tata letak turunan mengisi semua tinggi yang tersedia yang diizinkan oleh induk, tambahkan pengubah fillMaxHeight (Compose juga menyediakan fillMaxSize dan fillMaxWidth):

@Composable fun ArtistCard(/*...*/) { Row( modifier = Modifier.size(width = 400.dp, height = 100.dp) ) { Image( /*...*/ modifier = Modifier.fillMaxHeight() ) Column { /*...*/ } } }

Untuk menambahkan padding di sekitar elemen, setel pengubah padding.

Jika Anda ingin menambahkan padding di atas dasar pengukuran teks sehingga Anda mencapai jarak tertentu dari bagian atas tata letak ke dasar pengukuran, gunakan pengubah paddingFromBaseline:

@Composable fun ArtistCard(artist: Artist) { Row(/*...*/) { Column { Text( text = artist.name, modifier = Modifier.paddingFromBaseline(top = 50.dp) ) Text(artist.lastSeenOnline) } } }

Offset

Untuk menempatkan tata letak relatif ke posisi aslinya, tambahkan pengubah offset dan setel offset dalam sumbu x dan y. Offset bisa positif dan tidak positif. Perbedaan antara padding dan offset adalah menambahkan offset pada composable tidak mengubah pengukurannya:

@Composable fun ArtistCard(artist: Artist) { Row(/*...*/) { Column { Text(artist.name) Text( text = artist.lastSeenOnline, modifier = Modifier.offset(x = 4.dp) ) } } }

Pengubah offset diterapkan secara horizontal sesuai dengan arah tata letak. Dalam konteks kiri-ke-kanan, offset positif menggeser elemen ke kanan, sedangkan dalam konteks kanan-ke-kiri, elemen akan bergeser ke kiri. Jika Anda perlu menyetel offset tanpa mempertimbangkan arah tata letak, lihat pengubah absoluteOffset, ketika nilai offset positif selalu menggeser elemen ke kanan.

Keamanan jenis di Compose

Di Compose, ada pengubah yang hanya berfungsi saat diterapkan ke turunan composable tertentu. Misalnya, jika Anda ingin membuat turunan sebesar Box induk tanpa memengaruhi ukuran Box, gunakan pengubah matchParentSize.

Compose menerapkan keamanan jenis ini melalui cakupan kustom. Misalnya, matchParentSize hanya tersedia di BoxScope. Oleh karena itu, hanya dapat digunakan saat turunan digunakan dalam Box.

Catatan: Dalam sistem Android View, tidak ada keamanan jenis. Developer biasanya mencoba sendiri parameter tata letak yang berbeda untuk menemukan mana yang dapat dipertimbangkan dan artinya dalam konteks induk tertentu.

Pengubah cakupan memberi tahu induk tentang beberapa informasi turunan yang harus diketahui induk. Ini juga biasa disebut sebagai pengubah data induk. Internalnya berbeda dari pengubah tujuan umum, tetapi dari perspektif penggunaan, perbedaan ini tidak penting.

matchParentSize di Box

Seperti yang disebutkan di atas, jika Anda ingin tata letak turunan berukuran sama dengan Box induk tanpa memengaruhi ukuran Box, gunakan pengubah matchParentSize.

Perhatikan bahwa matchParentSize hanya tersedia dalam cakupan Box, artinya hanya berlaku untuk turunan langsung dari Box composable.

Dalam contoh di bawah ini, Spacer turunan mengambil ukurannya dari Box induknya, yang kemudian mengambil ukurannya dari turunan terbesar, dalam hal ini ArtistCard.

@Composable fun MatchParentSizeComposable() { Box { Spacer(Modifier.matchParentSize().background(Color.LightGray)) ArtistCard() } }

Jika fillMaxSize digunakan sebagai pengganti matchParentSize, Spacer akan mengambil semua ruang tersedia yang diizinkan untuk induk, yang pada akhirnya menyebabkan induk memperluas dan mengisi semua ruang yang tersedia.

bobot dalam Baris dan Kolom

Seperti yang telah Anda lihat di bagian sebelumnya tentang Padding dan ukuran, secara default, ukuran composable ditentukan oleh konten yang digabungkannya. Anda dapat menyetel ukuran composable agar fleksibel dalam induknya menggunakan Pengubah weight yang hanya tersedia di RowScope, dan ColumnScope.

Mari kita ambil Row yang berisi dua composable Box. Kotak pertama diberikan dua kali weight kotak kedua, sehingga diberi lebar dua kali lipat. Karena Row selebar 210.dp, Box pertama selebar 140.dp, dan kedua selebar 70.dp:

@Composable fun ArtistCard(/*...*/) { Row( modifier = Modifier.fillMaxWidth() ) { Image( /*...*/ modifier = Modifier.weight(2f) ) Column( modifier = Modifier.weight(1f) ) { /*...*/ } } }

Mempelajari lebih lanjut

Kami menyediakan daftar lengkap pengubah, beserta parameter dan cakupannya.

Video yang berhubungan

Postingan terbaru

LIHAT SEMUA