🛠️

Whiz Tools

Build • Create • Innovate

Kalkulator Keliling Basah untuk Berbagai Bentuk Saluran

Hitung keliling basah untuk berbagai bentuk saluran termasuk trapesium, persegi panjang/persegi, dan pipa melingkar. Penting untuk aplikasi teknik hidrolik dan mekanika fluida.

Generator ULID

ULID yang dihasilkan:

Struktur ULID


Timestamp (10 karakter)

Kebetulan (16 karakter)
📚

Dokumentasi

Generator ULID

Pendahuluan

ULID (Universally Unique Lexicographically Sortable Identifier) adalah pengenal unik yang menggabungkan timestamp dengan data acak untuk membuat string sepanjang 26 karakter. ULID dirancang agar dapat diurutkan secara leksikografis sambil mempertahankan tingkat keunikan dan keacakan yang tinggi.

Struktur ULID

ULID terdiri dari dua bagian utama:

  1. Timestamp (10 karakter): Sepuluh karakter pertama mewakili waktu dalam milidetik sejak Unix Epoch (1970-01-01).
  2. Keacakan (16 karakter): 16 karakter yang tersisa dihasilkan menggunakan data acak yang aman secara kriptografis.

String 26 karakter yang dihasilkan dikodekan menggunakan alfabet base32 Crockford (0-9 dan A-Z, mengecualikan I, L, O, dan U).

Rumus

ULID dihasilkan menggunakan langkah-langkah berikut:

  1. Hasilkan timestamp 48-bit (milidetik sejak Unix Epoch).
  2. Hasilkan 80 bit data acak yang aman secara kriptografis.
  3. Kodekan gabungan 128 bit menggunakan pengkodean base32 Crockford.

Perhitungan

Generator ULID melakukan langkah-langkah berikut:

  1. Dapatkan timestamp saat ini dalam milidetik.
  2. Hasilkan 10 byte acak (80 bit) menggunakan generator angka acak yang aman secara kriptografis.
  3. Gabungkan timestamp dan data acak menjadi integer 128-bit.
  4. Kodekan integer 128-bit menggunakan pengkodean base32 Crockford.

Kasus Penggunaan

ULID berguna dalam berbagai skenario, termasuk:

  1. Kunci basis data: ULID dapat digunakan sebagai pengenal unik untuk catatan basis data, memastikan keunikan dan dapat diurutkan.
  2. Sistem terdistribusi: Dalam lingkungan terdistribusi, ULID dapat dihasilkan tanpa koordinasi antara node.
  3. Pencatatan dan pelacakan: ULID dapat digunakan untuk menandai entri log atau melacak peristiwa, memberikan pengenal yang dapat diurutkan dan unik.
  4. ID yang ramah URL: ULID aman untuk URL dan dapat digunakan dalam aplikasi web sebagai pengenal dalam URL.

Alternatif

Meskipun ULID serbaguna, ada sistem pengenal unik lain yang perlu dipertimbangkan:

  1. UUID (Universally Unique Identifier): Pengenal 128-bit yang tidak menyertakan komponen timestamp.
  2. KSUID (K-Sortable Unique IDentifier): Mirip dengan ULID tetapi dengan pengkodean timestamp yang berbeda.
  3. Snowflake ID: Sistem generasi ID unik terdistribusi milik Twitter, yang mencakup timestamp dan ID pekerja.

Sejarah

ULID diperkenalkan pada tahun 2016 oleh Alizain Feerasta sebagai alternatif untuk UUID. Mereka dirancang untuk mengatasi beberapa keterbatasan UUID, terutama dalam hal keterurutan dan keterbacaan. Spesifikasi ULID telah tetap stabil sejak diperkenalkan, dengan berbagai implementasi tersedia dalam berbagai bahasa pemrograman.

Contoh

Berikut adalah beberapa contoh kode untuk menghasilkan ULID dalam berbagai bahasa pemrograman:

1// Implementasi JavaScript
2function generateULID() {
3  const timestamp = Date.now().toString(36).padStart(10, '0');
4  const randomness = crypto.getRandomValues(new Uint8Array(16))
5    .reduce((acc, byte) => acc + byte.toString(36).padStart(2, '0'), '');
6  return (timestamp + randomness).toUpperCase();
7}
8
9console.log(generateULID());
10

Contoh-contoh ini menunjukkan cara menghasilkan ULID dalam JavaScript, Python, dan Java. Anda dapat menyesuaikan fungsi-fungsi ini sesuai kebutuhan spesifik Anda atau mengintegrasikannya ke dalam sistem yang lebih besar yang memerlukan pengenal unik.

Referensi

  1. "Spesifikasi ULID." GitHub, https://github.com/ulid/spec. Diakses 2 Agustus 2024.
  2. "Pengkodean Base32 Crockford." Pengkodean Base32, http://www.crockford.com/base32.html. Diakses 2 Agustus 2024.
  3. "UUID vs ULID." Stack Overflow, https://stackoverflow.com/questions/54222235/uuid-vs-ulid. Diakses 2 Agustus 2024.