Skip to main content

1. Kasus penggunaan

Persiapan data adalah fitur inti platform low-code YiDA. Fitur ini membantu pengguna perusahaan membersihkan, mengintegrasikan, dan mentransformasi data mentah sebelum melakukan analisis atau membangun aplikasi. Persiapan data menerapkan pendekatan ETL (Extraction Transformation Loading) tanpa kode untuk memproses data dari aplikasi YiDA, database perusahaan eksternal, data berbasis file, dan sumber data resmi DingTalk (termasuk Daftar Karyawan, OA, Smart HR, dan Kehadiran). Dengan membangun pipeline pemrosesan data, fitur ini mengonsolidasikan data yang tersebar menjadi dataset terstandar yang mendukung analisis visual dan pengambilan keputusan berbasis data.

3. Entri konfigurasi formula

Jalur: Pengaturan aplikasi > Data Factory > Persiapan Data > Buat persiapan data > Pilih dataset. Formula dapat dikonfigurasi pada node asosiasi, agregasi, dan pembersihan. Tonton video di bawah untuk instruksi pengaturan:

4. Pemrosesan logis

CASEWHEN

Penggunaan 1: CASEWHEN(<kondisi>,<nilai>,<kondisi>,<nilai>…). Setara dengan sintaks CASE WHEN pada SQL. Contoh: CASEWHEN(<Bidang Jenis Kelamin>=“Laki-laki”,“male”,<Bidang Jenis Kelamin>=“Perempuan”,“female”). Nilai “Laki-laki” diganti menjadi “male”, dan nilai “Perempuan” diganti menjadi “female”. Penggunaan 2: CASEWHEN(<kondisi>,<nilai>,<kondisi>,<nilai>…<nilai>). Setara dengan sintaks CASE WHEN pada SQL. Contoh: CASEWHEN(<Bidang Jenis Kelamin>=“Laki-laki”,“male”,“female”). Nilai “Laki-laki” diganti menjadi “male”, dan nilai lainnya diganti menjadi “female”.

5. Pemrosesan teks

LEN

Penggunaan: LEN([bidang string]). Mengembalikan panjang string. Contoh: LEN(“test”) mengembalikan 4. LEN(“测试”) mengembalikan 2. Satu karakter Tionghoa dihitung sebagai satu karakter Inggris.

LEFT

Penggunaan: LEFT(<bidang measure>,< n >). Mengembalikan string sepanjang n karakter mulai dari karakter pertama di sebelah kiri nilai <bidang>. Contoh: LEFT(Field1,3) mengembalikan “ABC” ketika nilai Field1 adalah “ABCDEF”. Penggunaan: RIGHT(<bidang measure>,< n >). Mengembalikan string sepanjang n karakter dihitung dari sebelah kanan nilai <bidang>. Contoh: RIGHT(Field1,3) mengembalikan “DEF” ketika nilai Field1 adalah “ABCDEF”.

MID

Penggunaan: MID(<bidang measure>, < start >, < n >). Mengembalikan string sepanjang n karakter mulai dari karakter ke-start (dihitung dari kiri) pada nilai <bidang>. Contoh: MID(Field1, 3, 3) mengembalikan “CDE” ketika nilai Field1 adalah “ABCDEF”.

POS

Penggunaan: POS(<bidang measure>,<substring>). Mengembalikan posisi <substring> di dalam <teks>. Mengembalikan 0 jika tidak ditemukan kecocokan. Contoh: POS(Field1,“DE”) mengembalikan 4 ketika nilai Field1 adalah “ABCDEF”.

UPPER

Penggunaan: UPPER(<bidang measure>). Mengonversi nilai <bidang> menjadi huruf besar. Contoh: UPPER(Field1) mengembalikan “ABCDEF” ketika nilai Field1 adalah “AbcdeF”.

LOWER

Penggunaan: LOWER(<bidang measure>). Mengonversi nilai <bidang> menjadi huruf kecil. Contoh: LOWER(Field1) mengembalikan “abcdef” ketika nilai Field1 adalah “AbcdeF”.

VAL

Penggunaan: VAL(<bidang measure>). Mengonversi nilai <bidang> bertipe teks menjadi tipe numerik. Contoh: VAL(Field1) mengembalikan 123 ketika nilai Field1 adalah “123”.

LEFTTRIM

Penggunaan: LEFTTRIM(<bidang measure>). Menghapus spasi di awal nilai <bidang>. Contoh: LEFTTRIM(Field1) mengembalikan “ABC” ketika nilai Field1 adalah ” ABC”.

RIGHTTRIM

Penggunaan: RIGHTTRIM(<bidang measure>). Menghapus spasi di akhir nilai <bidang>. Contoh: RIGHTTRIM(Field1) mengembalikan “ABC” ketika nilai Field1 adalah “ABC ”.

NUMBERTOSTRING

Penggunaan: NUMBERTOSTRING(<angka>). Mengonversi data numerik menjadi string. Contoh: NUMBERTOSTRING(Field1) mengembalikan “12345” ketika nilai Field1 adalah “12345 ”.

SPLITPART

Penggunaan: SPLITPART(<bidang string>, delimiter, posisi substring). Memecah string menjadi N substring berdasarkan delimiter (N sama dengan jumlah delimiter ditambah 1). Posisi substring dihitung dari 1 (kiri ke kanan) atau dari -1 (kanan ke kiri). Contoh: SPLITPART(<Field1>,A,2) mengembalikan “BCD” ketika nilai Field1 adalah “ABCDABHABC”. Menetapkan posisi substring ke -5 juga mengembalikan “BCD”.

CONCAT

Penggunaan: CONCAT(<bidang>,<bidang>,…). Menggabungkan beberapa bidang menjadi satu string. Parameter input harus berupa bidang bertipe string. Contoh: CONCAT(<Field1>,<Field2>) mengembalikan “ABCD” ketika nilai Field1 adalah “A” dan nilai Field2 adalah “BCD”.

REPLACE

Penggunaan: REPLACE([string], [string yang dicari], [string pengganti]). Mengembalikan string setelah penggantian. Contoh: REPLACE([Field1], [Field2], [Field3]) mengembalikan “a12345efg” ketika Field1 adalah “abcdefg”, Field2 adalah “bcd”, dan Field3 adalah “12345”.

6. Pemrosesan waktu

NOW

Penggunaan: NOW(). Mengembalikan waktu saat ini, akurat hingga detik. Contoh: T/A

DATEFORMAT

Penggunaan: DATEFORMAT(<Bidang tanggal>,<format waktu>). Memformat tanggal menjadi string. Format untuk kedua fungsi mengikuti konvensi pemformatan tanggal Java. Tipe format yang didukung:
  • yyyy: Tahun
  • MM: Bulan
  • dd: Hari
  • hh: Format 12 jam (1-12)
  • HH: Format 24 jam (0-23)
  • mm: Menit
  • ss: Detik
Contoh 1: DATEFORMAT(<Bidang tanggal>,“yyyy-MM-dd”). Jika nilai bidang tanggal adalah 4 Agustus 1989, nilai yang dikembalikan adalah 1989-08-04. Pemisah ”-” dapat diganti dengan ”/” atau karakter lain. Contoh 2: DATEFORMAT(<Bidang tanggal>,“yyyy-MM-dd HH:mm:ss”). Jika nilai bidang tanggal adalah 1 September 2020, 13.30.00, nilai yang dikembalikan adalah 2020-09-01 13:30:00. Pemisah ”-” dan ”:” dapat diganti dengan ”/” atau dengan karakter seperti “tahun”, “bulan”, “hari”.

DATEADD

Penggunaan: DATEADD(<Bidang Waktu>,<offset>,<granularitas waktu>). Menambahkan <offset> dengan <granularitas waktu> yang ditentukan ke <Bidang Waktu>.
  • Nilai granularitas waktu:
  • Offset adalah angka tertentu yang ditambahkan atau dikurangi. Nilai positif menambah, dan nilai negatif mengurangi.
Contoh 1: Jika nilai Komponen Tanggal adalah “20200901”, maka DATEADD(Komponen Tanggal,10,"DAY") = 20200911. Contoh 2: Jika nilai Komponen Tanggal adalah “20200901”, maka DATEADD(Komponen Tanggal,-1,"DAY") = 20200831.
Format tampilan tanggal default adalah yyyyMMdd. Untuk mengubah format tampilan, lihat contoh pada fungsi DATEFORMAT.

DATEDIFF

Penggunaan: DATEDIFF(<Bidang Waktu 1>,<Bidang Waktu 2>,<granularitas waktu>). Mengembalikan selisih antara Bidang Waktu 1 dan Bidang Waktu 2 pada granularitas waktu yang ditentukan. Opsi granularitas waktu:
  • YEAR Tahun
  • MONTH Bulan
  • DAY Hari
  • HOUR Jam
  • MINUTE Menit
  • SECOND Detik
Contoh: DATEDIFF(Komponen Tanggal 1, Komponen Tanggal 2,“DAY”) mengembalikan jumlah hari antara dua komponen tanggal. Catatan: Parameter hanya mendukung komponen tanggal. Nilai tanggal tetap tidak dapat dimasukkan langsung dalam formula. Misalkan nilai Komponen Tanggal adalah “2020-02-14” dan hari ini adalah “2020-02-16”. Maka: DATEDIFF(NOW(), Tanggal yang dimasukkan,“DAY”) = 2 DATEDIFF(Tanggal yang dimasukkan, NOW(),“DAY”) = -2

FROMUNIXTIME

Penggunaan: Mengonversi nilai waktu Unix numerik menjadi nilai tanggal. Deklarasi fungsi:
Deskripsi parameter:
  • unixtime: Tipe Bigint. Jumlah detik dalam format Unix date-time. Nilai bertipe string, double, atau decimal dikonversi secara implisit menjadi bigint sebelum operasi.
  • Nilai kembalian: Tipe Datetime. Mengembalikan NULL jika unixtime adalah NULL.
Contoh:

WEEK

Penggunaan: WEEK([tanggal], [hari mulai (opsional)]). Menghitung minggu ke berapa dalam setahun untuk tanggal yang diberikan. Jika hari mulai tidak ditentukan, Senin digunakan sebagai hari pertama minggu secara default. Nilai hari mulai 1-7 menunjukkan Senin hingga Minggu sebagai hari pertama minggu. Contoh: WEEK([tanggal],) mengembalikan “20202” ketika nilai bidang adalah “2020-01-08”. Hari mulai dapat dihilangkan dan default-nya kosong.

QUARTER

Penggunaan: QUARTER([tanggal], [tanda tahun fiskal (opsional)]). Menghitung kuartal dalam setahun untuk tanggal yang diberikan. Tetapkan tanda tahun fiskal ke 1 untuk menggunakan tahun fiskal (dimulai dari April) atau 0 untuk menggunakan tahun kalender. Contoh: QUARTER([Field1], 0) mengembalikan “1” ketika nilai Field1 adalah “2020-02-02”.

7. Statistik dasar

ROUND

Penggunaan: ROUND(<bidang>,<presisi>). Membulatkan bidang ke jumlah tempat desimal yang ditentukan. Contoh: ROUND(<Field1>,<presisi>) mengembalikan “12,33” ketika nilai Field1 adalah “12,33333” dan presisinya adalah 2.

MOD

Penggunaan: MOD(<bidang>,<bidang>). Melakukan operasi modulo dan mengembalikan sisa. Catatan: Untuk mendapatkan hasil bagi dari pembagian, gunakan operator aritmetika /. Misalnya, 6/4 mengembalikan hasil bagi 1 dengan sisa 2. Contoh: MOD(<Field1>,<Field2>) mengembalikan “2” ketika nilai Field1 adalah “6” dan nilai Field2 adalah “4”.

ParseDouble

Penggunaan: ParseDouble(<bidang>). Mengonversi string atau integer menjadi angka floating-point. Contoh: ParseDouble(<bidang>) mengembalikan 3.0 ketika nilai bidang adalah 3 atau “3”.

ParseInt

Penggunaan: ParseInt(<bidang>). Mengonversi string atau angka floating-point menjadi integer. Contoh: ParseInt(<bidang>) mengembalikan 3 ketika nilai bidang adalah 3.2 atau “3.2”.

8. Array

ArrayToString

Penggunaan: ArrayToString(<bidang array>,[delimiter (opsional)]). Mengonversi array menjadi string. Contoh: ArrayToString(<Field1>,<Field2>) mengembalikan “Divisi Produk-Divisi Teknologi-Divisi Bisnis” ketika nilai Field1 adalah “[Divisi Produk, Divisi Teknologi, Divisi Bisnis]” dan nilai Field2 adalah ”-”. Jika Field2 kosong, hasilnya adalah “Divisi Produk,Divisi Teknologi,Divisi Bisnis”.

StringToArray

Penggunaan: StringToArray(<bidang string>,[delimiter (opsional)]). Mengurai string menjadi array. Contoh: StringToArray(<Field1>,<Field2>) mengembalikan “[Divisi Produk, Divisi Teknologi, Divisi Bisnis]” ketika nilai Field1 adalah “Divisi Produk-Divisi Teknologi-Divisi Bisnis” dan nilai Field2 adalah ”-”.

ArrayLength

Penggunaan: ArrayLength(<bidang array>). Mengembalikan panjang array. Contoh: ArrayLength(<Pilih Banyak atau bidang array lainnya>) mengembalikan “3” ketika nilai bidang adalah “Departemen” dengan opsi “Divisi Produk, Divisi Teknologi, Divisi Bisnis”.

ArrayCat

Penggunaan: ArrayCat(<bidang array 1>,<bidang array 2>,…). Menggabungkan beberapa array. Contoh: ArrayCat(<Pilih Banyak atau bidang array lainnya 1>,<Pilih Banyak atau bidang array lainnya 2>,…) mengembalikan “Divisi Produk, Divisi Teknologi, Divisi Bisnis, Staf Produk, Staf Teknologi, Staf Bisnis” ketika nilai Field1 adalah “Divisi Produk, Divisi Teknologi, Divisi Bisnis” dan nilai Field2 adalah “Staf Produk, Staf Teknologi, Staf Bisnis”.