Rocket Hart Exinity

11 Terminologi Penting

Latihan-3

Latihan-3

Logika Aplikasi

Dalam membuat aplikasi, kita akan di hadapkan pada logika yang merupakan keinginan bagaimana aplikasi akan berfungsi. Mengerti terntang 11 terminologi penting di Appsheet merupakan langkah yang penting untuk di lakukan.

  1. App Formulas
  2. Initial Values
  3. Virtual Columns
  4. Dereference
  5. Editable_If
  6. Valid_If
  7. Suggested Values
  8. Show_If
  9. Enum dan EnumList
  10. Key
  11. IsAPartOf

Appsheet memberikan guidance yang sangat jelas untuk setiap terminologi yang di gunakan, yang kita lakukan disini adalah berusaha memahami dari sudut pandang kreator aplikasi dan gunakan fungsi yang tepat untuk menghasilkan aplikasi yang berkualitas.

Beberapa lokasi Expression ditandai dengan "FLASK"

App Formulas

Apabila kita menginginkan column value langsung terupdate setelah melakukan edit atau update dari suatu row, maka bisa gunakan App Formula. App Formula dapat dapat di gabungkan dengan logika operator seperti IF(), IFS(), ISBLANK(), ISNOTBLANK(), SWITCH().

Beberapa contoh penggunaan app formula seperti:

IFS(
AND(
ISNOTBLANK([Jam Keluar]),
ISNOTBLANK([Jam Masuk])
),
[Jam Keluar]-[Jam Masuk],
TRUE,
""
)
Formula diatas memliki arti sebagai berikut: "Apabila column Jam-Keluar dan column Jam masuk tidak kosong, maka isikan formula dengan mengurangi nilai di column Jam keluar dikurangi jam masuk. Sedangkan apabila kondisi tersebut tidak terpenuhi, maka isi dengan blank ("") saja."
Penggunaan sublime text untuk memudahkan membaca formula

Penggunaan app formula akan banyak di temui setelah kita mulai terbiasa menggunakan Appsheet dan mulai memiliki bayangan atau gambaran seperti apa Aplikasi akan berfungsi.

Namun, kadang kita menginkan suatu formula yang selalu menunjukkan hasil terupdate setiap kali sync. Untuk itu, gunakan Virtual column.

Atau, kita menginginkan value di spreadsheet terupdate dengan AppFormula, maka dapat dilakukan dengan menggunakan bot atau form-saved-action.

Penggunaan app formula yang umum diantaranya adalah:

  • Menggunakan USEREMAIL() untuk mengetahui siapa yang terakhir mengedit row
  • Menggunakan HERE() untuk mencatat dimana lokasi user memasukkan/edit input datanya
  • Menggunakan action untuk mengupdate App formula
App formula bisa agak panjang seperti ini
Untuk dapat membaca app formula, sebaiknya gunakan prinsip "bawang", dan tuliskan secara vertical seperti diatas. Penulisan app formula atau expression lainnya bisa saja dengan langsung, tapi akan sulit dipahami atau di cerna dan biasanya setelah 1 minggu, yang membuat expression tersebut sulit di mengerti kembali apabila penulisannya tidak tersusun. Contoh expression diatas dapat dibaca dengan bahasa yang kita pahami adalah sebagai berikut: "Apabila tanggal hari ini lebih besar dari 20, maka gunakan value total jam kerja dari tabel history dimana tanggal bukan hari libur dan atau tanggal lebih besar dari 20 bulan ini. Kalau tanggal hari ini lebih kecil dari 20, maka jumlahkan manhour dari tanggal 20 bulan kemarin sampai dengan tanggal 20 bulan ini".

Initial Values

Initial value bisa di artikan seperti terjemahannya yaitu nilai awal, untuk memudahkan user sehingga tidak perlu mengetik pada saat mengisi form, biasanya dengan suatu expression yang sederhana seperti TODAY(), NOW(), TIMENOW(), HERE(), USEREMAIL(), UNIQUEID() ataupun sesuatu yang lebih complex seperti melihat nilai terakhir yang di masukkan oleh user tersebut di tabel terpisah.

Initial value hanya akan di hitung satu kali saja diawal ketika row di create. Apabila ingin initial value selalu terhitung setiap kali melakukan edit, maka bisa gunakan reset-on-edit dengan posisi ON.

Initial value dapat dijadikan sebagai EDITABLE sehingga pengguna aplikasi bisa melakukan edit terhadap nilai yang di berikan, atau lebih seringnya memberikan expression FALSE supaya tidak editable, tapi masih dapat di edit melalui action/workflow.

Initial value dapat berupa expression LOOKUP() ataupun berupa dereference.

Initial value dengan LOOKUP()

Initial value bisa juga diberikan expression yang lebih complex:

Initial value yang lebih "panjang"

Umumnya, apabila kita membuat nama column dalam bahasa inggris maka Appsheet akan memberikan beberapa automatic initial value yang biasanya digunakan. Sebagai App Creator, kita harus melakukan pengecekan untuk semua automatic-intelligent expression. Bisa juga kita hapus dan di kosongkan apabila itu tidak tepat. Kadang, kita ingin user memberikan input value sendiri tapi kita tidak mau user bisa melakukan edit setelah value tersebut di save. Untuk logika aplikasi seperti ini, maka di gabungkan dengan editable_if seperti ISBLANK(_THIS), yang berarti user bisa melakukan edit apabila value cell adalah blank.

Sering juga kita akan bertemu dengan logika aplikasi dimana kita ingin intial value di gabungkan dengan kondisi lain, maka kita bisa gunakan IF() atau IFS() atau logika expression lainnya yang sesuai.

Virtual Columns

Salah satu fungsi dari virtual column adalah untuk dapat langsung melihat hasil perhitungan setelah sync di lakukan. Virtual column akan selalu terhitung ulang setiap kali melakukan sync, walaupun tidak ada data yang berubah. Spreadsheet column - ada baiknya kita panggil sebagai column bukan virtual, adalah column yang terlihat di spreadsheet atau di database. Virtual column tidak terlihat. Untuk dapat lebih memahami antara virtual column dan bukan virtual column, maka kita bisa melakukan pengetesan dengan memberikan app formula seperti TODAY()+1 untuk kedua type column test tersebut (yang memiliki nama berbeda). Apabila keesokan hari kita buka aplikasi dan melakukan sync, maka virtual column akan menunjukkan tanggal esok hari, sementara yang bukan virtual column akan menunjukkan tanggal hari ini. Awalnya akan agak membingungkan, apalagi dengan adanya formula TODAY(), akan tetapi, sebenarnya kedua type column tersebut memiliki fungsi yang berbeda dan terserah kita sebagai App Creator untuk menggunakan fungsinya.

Virtual columns akan memberatkan system dan menambah durasi waktu sync apabila app formula nya tidak efisien.

Apalagi apabila banyak sekali virtual column dan harus melihat data yang semakin hari semakin bertambah banyak, tinggal menunggu waktu saja sebelum akhirnya aplikasi menjadi terlalu berat untuk di gunakan.

Virtual column dapat juga membuat aplikasi terasa cepat dan bisa menunjukkan hasil sebelum sync di lakukan. Contoh aplikasi keranjang belanja yang kami shared bisa menjadi contoh acuan untuk ini.

Cart-part3-opt
Contoh penggunaan virtual column yang efisien

Dalam membuat aplikasi, baiknya kita target sync time lebih kecil dari 10 detik agar aplikasi selalu berada dalam kondisi yang layak untuk di gunakan. Untuk Exinity, kami memiliki cara tertentu sehingga sync time akan berada di bawah 5 detik.

Sync time dari salah satu aplikasi kami

Untuk type column REF, akan ada virtual column berupa LIST yang secara otomatis ditambahkan oleh Appsheet. Ini akan banyak bermanfaat di awalnya, tapi setelah kita membuat beberapa aplikasi, maka biasanya kita akan sadar bahwa salah satu yang membuat aplikasi terasa berat adalah adanya virtual column berupa LIST yang tidak terlalu efisien. Dalam mencari jalan menuju aplikasi yang lebih cepat, lebih efisien, maka banyak cara di ciptakan tergantung pada kreasi dari App Creator sendiri, selama jalan yang diambil akan memberikan sync time yang lebih cepat, membuat aplikasi lebih mudah di gunakan, maka jalan itu sudah benar.

Kadang juga, kita butuh untuk menggabungkan beberapa column menjadi satu column agar dapat di track informasi detailnya, seperti menggabungkan nama depan dengan nama belakang, atau menggabungkan nama dengan nama kota, atau nama orang dengan nama pelajaran, dan lainnya. Untuk ini, gunakan virtual column sebagai column bantuan.

Dereference

Istilah reference, dereference dan reverse reference akan lebih mudah di mengerti apabila kita membayangkan bahwa antara satu tabel dengan tabel lain ada jendela penghubung (REF). Biasanya kita memberikan REF column untuk membuat relation antara tabel tersebut. Dengan adanya column REF, maka kita bisa gunakan dereference, yang berupa [REF].[ColumnLain]. Seolah-olah, REF column adalah jendela yang bisa melihat nilai dari column-column di tabel yang lain.

Ini akan bermanfaat untuk intial value, app formula atau expression lainnya termasuk di virtual column.

Untuk reverse reference, boleh di bilang merupakan kebalikan dari dereference dan secara syntac hanya dibedakan dengan adanya TITIK atau tidak pakai TITIK.

Selain REF, kita bisa juga menggunakan ENUM dan ENUMLIST dengan based type REF, yang akan memberikan hasil yang sama seperti REF. Yang membedakan, penggunaan ENUM dan ENUMLIST based type REF ini tidak akan membuat virtual column secara otomatis - ini bisa membuat sync time menjadi lebih cepat.

Kadang, kita ingin mendapatkan value dari tabel lain yang terhubung dengan REF, tergantung bagaimana skenario tabelnya, tapi kita bisa membuat dereference dengan methode seperti contoh order tabel dan email address:

[Order Id].[Customer Name].[Email]

IsAPartOf

Istilah IsAPartOf dapat di artikan bahwa tabel ini merupakan bagian dari tabel utama, tanpa adanya tabel utama, maka tabel ini tidak akan berarti. Tabel dengan IsAPartOf dari tabel lain akan bisa di tambahkan contentnya dari tabel lain tersebut, sehingga menghapus data utama juga akan menghapus semua record di tabel pendukungnya. Appsheet membatasi IsAPartOf hanya bisa dilakukan satu kali, tapi ada cara dimana IsAPartOf bisa di lakukan sebanyak yang kita mau, ini kadang bermanfaat dan bisa di gunakan untuk kasus-kasus tertentu. Salah satu contoh aplikasi kamu adalah terkait dengan 1 tabel photo yang dihubungkan dengan beberapa tabel lain dengan isaAPartOf semua, silahkan di copy dan di pelajari langkahnya di contoh Aplikasi kami: Ambil Banyak photo.

Satu tabel dengan beberapa isaPartof

Enum dan EnumList

Enum adalah dropdown yang merupakan validation apa saja pilihan yang bisa di pilih oleh user agar seragam dalam melakukan pilihan dan menghilangkan kesalahan karena type atau human error. Dengan ENUM, pilihan yang boleh di ambil hanya 1 saja. Enum bisa berbasiskan text, number, decimal, atau apapun yang merupakan type column di appsheet. Sedangkan Enumlist pilihan yang diambil dapat lebih dari satu.

Baik Enum maupun Enumlist dapat digunakan dengan based type REF, sehingga bisa dimanfaatkan untuk dereference atau reverse reference.

Contoh penerapan enum adalah dengan memberikan pilihan status {On Going , Delayed , Done}, dimana untuk suatu waktu hanya akan ada satu yang berlaku. Penerapan enumlist seperti pengambilan barang dari gudang {paku , argon , Kawat Las} dimana bisa saja dalam satu waktu pemilihan dilakukan untuk beberapa material.

Baik Enum maupun Enumlist dapat berupa daftar sederhana, atau daftar yang merupakan isian dari user, atau daftar meihat tabel tertentu yang di tentukan, atau berupa kondisi tertentu untuk memunculkan pilihan tertentu. Dapat juga kita membuatkan dropdown validation di spreadsheet yang mana Appsheet akan mengambil value tersebut dan dijadikan sebagai enum/enumlist.

Enumlist LatLong

Key

Awalnya akan butuh sedikit waktu untuk memahami tentang key di appsheet. Key merupakan identitas dari row yang kita buat sebagai bagian dari aplikasi yang memudahkan kita dalam penyusunan data. Key column tidak boleh ada yang duplicate, karena itu appsheet memiliki key generator yaitu berupa UNIQUEID() ataupun UNIQUEID("UUID"). Key tidak selama nya berupa UNIQUEID(), kadang bisa berbentuk text, number ataupun tanggal beserta waktu ataupun nama negara misalnya. Selama kita yakin (dengan pengetahuan yang cukup) bahwa tidak akan mungkin data bisa duplicate apabila satu atau lebih orang memasukkan data di waktu yang sama. Contoh key yang kurang bagus adalah nama orang, kadang nama orang bisa sama. Tapi apabila kita gunakan email address sebagai key, maka tidak akan duplicate.

Suggested Values

Suggested value merupakan nilai yang di sarankan, jadi sebagai app creator, kita berusaha memberikan suatu nilai yang di sarankan berdasarkan kondisi tertentu dan diusahakan nilai itulah yang akan di pilih. User akan tetap bisa merubah sendiri nilai yang di sarankan tersebut. Nilai ini bisa berupa daftar sederhana, reference ke tabel lain, ataupun sesuatu yang lebih complex dari itu.

(WorkersTbl[ID] - SPLIT(SELECT(JobsTbl[Workers], TRUE), " , "))

Untuk contoh diatas, suggested value akan melihat tabel worker dan menghilangkan semua worker yang telah di assign job nya di job tabel. jadi yang muncul hanya worker yang belum mempunyai assignment.

Contoh suggested value untuk inspection fleet

Editable_If

Editable_If merupakan suatu pertanyaan yang harus dijawab sendiri oleh App Creator, kapan data boleh di edit oleh user? apakah data boleh di edit oleh user? dengan kondisi apa data boleh di edit oleh user. Biasanya dengan membuat pernyataan FALSE, maka data tidak dapat diedit oleh user setelah initial value di berikan. Atau dengan memberikan ISNOTBLANK([_THIS]), maka data tidak bisa di edit apabila ada cell value yang telah terisi.

Sering juga kita membuat row editable apabila user adalah orang yang melakukan input. Atau editable apabila user adalah admin atau lainnya.

Valid_If

Valid_if biasanya digunakan bersamaan dengan REF, tapi kadang juga bisa berdiri sendiri. Misalnya kita ingin data agar di input di jam tertentu.

Show_If

Sering kita ingin agar data itu ada, tapi tidak perlu di munculkan. Maka kita gunakan show_if. Kadang, kita ingin agar data hanya muncul di form saja, atau jangan muncul di form dan hanya muncul di view tabel saja. Semua tergantung kepada kreasi dari App Creator.

Penerapan

Penerapan dan familiarisasi terhadap istilah yang di gunakan platform Appsheet akan sangat membantu dalam membuat aplikasi yang di inginkan. Berfikir sederhana akan memudahkan dalam penerapan terminologi penting yang dibahas disini.

Lihat Babagi Lainnya

Silahkan click gambarnya atau hover menggunakan mouse.

No items found.
Appsheet