Generator CPF - Buat ID Pajak Brasil yang Valid untuk Pengujian
Generator CPF gratis membuat nomor identifikasi pajak Brasil yang valid dan lolos algoritma validasi. Sempurna untuk menguji formulir, API, dan basis data tanpa menggunakan data pribadi sebenarnya.
Klik untuk menghasilkan nomor CPF Brasil yang valid untuk tujuan pengujian
Dokumentasi
Pembuat CPF - Buat Nomor ID Pajak Brasil yang Valid untuk Pengujian
Mengapa Anda Membutuhkan Generator CPF untuk Pengujian
Saat mengembangkan aplikasi untuk pasar Brasil, Anda akan segera menghadapi tantangan umum: menguji formulir dan logika validasi tanpa membahayakan data pengguna sebenarnya. Di sinilah generator CPF menjadi penting.
CPF (Cadastro de Pessoas FĂsicas) adalah nomor identifikasi unik 11 digit yang dikeluarkan kepada warga negara dan penduduk Brasil untuk tujuan pajak. Alat ini membuat nomor CPF acak yang valid secara matematis dan lolos algoritme validasi resmi Brasil—sempurna untuk mengisi basis data pengujian, memvalidasi formulir input, dan menjalankan pengujian otomatis tanpa kekhawatiran privasi.
Batasan kritis: CPF yang dihasilkan hanya untuk lingkungan pengujian. Mereka tidak terkait dengan individu nyata dan tidak boleh digunakan dalam sistem produksi atau untuk tujuan penipuan. Yang membuat mereka berharga adalah mereka lolos pemeriksaan validasi sambil menjaga data uji Anda sepenuhnya terpisah dari informasi pribadi sebenarnya.
Memahami Struktur dan Format CPF
CPF yang valid terdiri dari 11 digit dengan struktur spesifik:
- 9 digit pertama: Nomor identifikasi dasar
- 2 digit terakhir: Digit pemeriksaan untuk validasi
- Format standar: XXX.XXX.XXX-XX (dengan titik dan tanda hubung)
Contoh: 123.456.789-09
Digit pemeriksaan memastikan nomor CPF secara matematis valid, mencegah kesalahan ketik dan entri yang tidak valid dalam sistem Brasil.
Cara Kerja Validasi CPF
Algoritma validasi CPF menggunakan sistem digit cek berbobot modulo-11 untuk memastikan integritas nomor. Memahami algoritma ini sangat penting saat mengimplementasikan validasi CPF di aplikasi Anda.
Proses Validasi Dijelaskan
Algoritma menghitung dua digit cek (dua digit terakhir CPF) berdasarkan sembilan digit pertama:
Menghitung digit cek pertama:
- Kalikan 9 digit pertama dengan bobot menurun (10, 9, 8, 7, 6, 5, 4, 3, 2)
- Jumlahkan semua hasil perkalian
- Hitung sisa pembagian dengan 11
- Jika sisa < 2, digit cek adalah 0; jika tidak, digit cek adalah 11 dikurangi sisa
Menghitung digit cek kedua:
- Ulangi proses untuk 9 digit pertama ditambah digit cek pertama (total 10 digit)
- Gunakan bobot 11, 10, 9, 8, 7, 6, 5, 4, 3, 2
- Terapkan logika sisa yang sama
Validasi dua tahap ini menangkap sebagian besar kesalahan transkripsi dan mencegah nomor acak lolos sebagai CPF valid. Algoritma ini didokumentasikan dalam Lei nÂş 4.862/1965, yang mendirikan sistem CPF.
Mengapa Ini Penting bagi Pengembang
Saat membangun validasi CPF, pengembang sering melewatkan kasus khusus di mana sisa adalah 0 atau 1—keduanya harus dipetakan ke digit cek 0, bukan 10 atau 11. Ini adalah sumber umum bug validasi. Rumus (sum * 10 % 11) % 10 menangani kasus khusus ini dengan baik dengan memastikan hasilnya tidak pernah melebihi 9.
Cara Menggunakan Alat Generator CPF Ini
Menghasilkan CPF uji yang valid hanya membutuhkan beberapa detik:
- Klik tombol "Generate CPF"
- Lihat nomor CPF acak yang valid yang ditampilkan dalam format standar XXX.XXX.XXX-XX
- Salin nomor yang dihasilkan dengan satu kali klik
- Tempel langsung ke formulir pengujian, permintaan API, atau benih basis data Anda
Setiap CPF yang dihasilkan lolos algoritma validasi resmi Brasil, sehingga Anda dapat menguji logika validasi dengan percaya diri. Nomor dihasilkan secara acak setiap saat, mengurangi kemungkinan konflik dalam kumpulan data uji Anda.
Rumus
Rumus untuk menghasilkan CPF yang valid adalah sebagai berikut:
1def generate_cpf():
2 # Hasilkan 9 digit acak
3 base_cpf = [random.randint(0, 9) for _ in range(9)]
4
5 # Hitung digit cek pertama
6 sum_1 = sum((10 - i) * digit for i, digit in enumerate(base_cpf))
7 check_digit_1 = (sum_1 * 10 % 11) % 10
8
9 # Hitung digit cek kedua
10 sum_2 = sum((11 - i) * digit for i, digit in enumerate(base_cpf + [check_digit_1]))
11 check_digit_2 = (sum_2 * 10 % 11) % 10
12
13 return base_cpf + [check_digit_1, check_digit_2]
14Perhitungan
Generator melakukan langkah-langkah berikut:
- Hasilkan 9 digit acak
- Hitung digit cek pertama menggunakan algoritma yang dijelaskan di atas
- Hitung digit cek kedua
- Gabungkan semua digit untuk membentuk CPF lengkap
Contoh
Berikut adalah beberapa contoh CPF yang dihasilkan:
- 123.456.789-09
- 987.654.321-00
- 111.222.333-96
Kasus Penggunaan Umum untuk Menguji Nomor CPF
Berdasarkan skenario pengembangan nyata, berikut adalah kapan Anda membutuhkan nomor CPF yang dibuat:
Skenario Pengembangan dan Pengujian
Penyemaian dan migrasi basis data: Saat menyiapkan lingkungan lokal atau staging, Anda membutuhkan data uji yang realistis. CPF yang dibuat memungkinkan Anda membuat ratusan atau ribuan catatan pengguna uji tanpa menyentuh informasi pribadi sebenarnya. Ini sangat berguna saat menguji batasan basis data dan indeks unik pada kolom CPF.
Pengujian validasi formulir: Formulir pendaftaran Brasil biasanya memerlukan validasi CPF di sisi klien dan server. Menguji kasus-kasus ekstrem—seperti CPF yang diformat dengan benar tetapi tidak valid, atau digit yang identik (111.111.111-11)—membantu menangkap bug validasi sebelum mencapai produksi. CPF yang dibuat memberi Anda kasus uji yang valid untuk memverifikasi logika validasi Anda berfungsi dengan benar.
Pengujian integrasi API: Saat membangun integrasi dengan gateway pembayaran Brasil, layanan keuangan, atau API pemerintah, Anda sering membutuhkan nomor CPF yang valid dalam permintaan uji Anda. Menggunakan CPF yang dibuat menjaga suite uji Anda independen dari data pengguna nyata.
Pengujian beban dan kinerja: Untuk menguji stres sistem yang memproses data pengguna Brasil, Anda membutuhkan volume besar CPF unik yang valid. Membuat ribuan CPF uji memungkinkan Anda mensimulasikan beban realistis tanpa kekhawatiran privasi.
Validasi UI/UX: Menguji bagaimana antarmuka Anda menangani tampilan, penyembunyian, dan pemformatan CPF di berbagai ukuran layar dan konteks. CPF yang dibuat membantu memverifikasi bahwa logika pemformatan Anda (menambahkan titik dan tanda hubung) berfungsi konsisten.
Kesalahan Umum yang Harus Dihindari
Satu kesalahan yang sering dilakukan pengembang adalah lupa bahwa digit yang identik (seperti 000.000.000-00 atau 111.111.111-11) secara teknis valid menurut algoritma tetapi ditolak oleh sistem Brasil nyata. Saat menguji, sertakan pemeriksaan untuk pola yang diketahui tidak valid ini meskipun mereka lulus validasi matematis.
Masalah lain: CPF yang dibuat bagus untuk menguji logika validasi, tetapi tidak akan membantu Anda menguji pencarian CPF di basis data pemerintah. Untuk uji integrasi yang mengkueri API pemerintah Brasil nyata, Anda membutuhkan CPF uji yang ditunjuk yang disediakan oleh layanan tersebut (seperti lingkungan uji Serpro).
Sistem Identifikasi Brasil Terkait
Sementara CPF adalah pengidentifikasi individu utama di Brasil, memahami sistem terkait membantu saat membangun aplikasi Brasil yang komprehensif:
RG (Registro Geral): Nomor dokumen identitas yang dikeluarkan negara. Tidak seperti CPF, yang bersifat federal dan mengikuti format konsisten, nomor RG berbeda-beda menurut negara bagian dan tidak memiliki algoritma validasi terstandar. Saat membangun aplikasi untuk Brasil, Anda biasanya memerlukan CPF untuk validasi backend dan dapat menerima RG sebagai identifikasi sekunder.
CNPJ (Cadastro Nacional da Pessoa JurĂdica): Setara CPF untuk bisnis, digunakan untuk perusahaan dan badan hukum. CNPJ menggunakan algoritma validasi modulo-11 yang serupa tetapi memiliki 14 digit alih-alih 11. Jika Anda membangun aplikasi B2B untuk Brasil, Anda perlu menangani CPF (untuk pemilik bisnis individu) dan CNPJ (untuk perusahaan terdaftar).
PIS/PASEP/NIT: Nomor identifikasi terkait pekerjaan yang digunakan oleh sistem jaminan sosial Brasil. Ini kurang umum diperlukan dalam aplikasi umum tetapi penting untuk sistem HR dan penggajian.
Evolusi CPF di Brasil
Sistem CPF didirikan oleh Lei nÂş 4.862/1965 sebagai bagian dari upaya modernisasi pajak Brasil. Apa yang awalnya adalah pengidentifikasi pajak sederhana telah menjadi nomor ID nasional Brasil de facto.
Tonggak penting:
- 1965: CPF diperkenalkan untuk pengajuan pajak penghasilan
- 1972: Dibuat wajib untuk semua wajib pajak
- 1990an: Adopsi komersial dipercepat—bank dan peritel mulai memerlukan CPF untuk transaksi
- 2000an: Transformasi digital membuat CPF penting untuk layanan online
- 2020an: CPF diperlukan untuk hampir semua layanan pemerintah, transaksi keuangan, dan bahkan pembelian konsumen
Perluasan ini menjelaskan mengapa validasi CPF sangat kritis untuk aplikasi apa pun yang melayani pengguna Brasil—ini bukan sekadar ID pajak lagi, ini adalah cara orang Brasil mengidentifikasi diri mereka dalam berbagai konteks. Saat menguji sistem ini, memiliki nomor CPF yang valid sangat penting untuk skenario uji yang realistis.
Contoh Kode untuk Generasi dan Validasi CPF
Jika Anda perlu mengintegrasikan generasi dan validasi CPF langsung ke dalam aplikasi Anda, berikut adalah implementasi siap produksi dalam bahasa populer. Setiap contoh mencakup fungsi generasi dan validasi sehingga Anda dapat mengimplementasikan alur kerja lengkap.
Implementasi ini mengikuti algoritma Receita Federal resmi dan mencakup penanganan kasus ekstrem yang disebutkan sebelumnya (sisa 0 dan 1 dipetakan ke digit cek 0).
1import random
2
3def generate_cpf():
4 cpf = [random.randint(0, 9) for _ in range(9)]
5 for _ in range(2):
6 value = sum((cpf[num] * ((len(cpf) + 1) - num) for num in range(len(cpf)))) % 11
7 cpf.append(11 - value if value > 1 else 0)
8 return ''.join(map(str, cpf))
9
10def validate_cpf(cpf):
11 numbers = [int(digit) for digit in cpf if digit.isdigit()]
12 if len(numbers) != 11 or len(set(numbers)) == 1:
13 return False
14 for i in range(9, 11):
15 value = sum((numbers[num] * ((i + 1) - num) for num in range(i))) % 11
16 if numbers[i] != (11 - value if value > 1 else 0):
17 return False
18 return True
19Contoh Penggunaan
cpf = generate_cpf() print(f"CPF yang Dihasilkan: {cpf}") print(f"Valid: {validate_cpf(cpf)}")
1
2javascript function generateCPF() { const cpf = Array.from({length: 9}, () => Math.floor(Math.random() * 10)); for (let i = 0; i < 2; i++) { let sum = cpf.reduce((acc, cur, idx) => acc + cur * (cpf.length + 1 - idx), 0); let digit = 11 - (sum % 11); cpf.push(digit > 9 ? 0 : digit); } return cpf.join(''); }
function validateCPF(cpf) { const numbers = cpf.match(/\d/g).map(Number); if (numbers.length !== 11 || new Set(numbers).size === 1) return false; for (let i = 9; i < 11; i++) { let sum = numbers.slice(0, i).reduce((acc, cur, idx) => acc + cur * (i + 1 - idx), 0); let digit = 11 - (sum % 11); if (numbers[i] !== (digit > 9 ? 0 : digit)) return false; } return true; }
// Contoh penggunaan
const cpf = generateCPF();
console.log(CPF yang Dihasilkan: ${cpf});
console.log(Valid: ${validateCPF(cpf)});
1
2java import java.util.Random;
public class CPFGenerator { private static final Random random = new Random();
public static String generateCPF() {
int[] cpf = new int[11];
for (int i = 0; i < 9; i++) {
cpf[i] = random.nextInt(10);
}
cpf[9] = calculateCheckDigit(cpf, 10);
cpf[10] = calculateCheckDigit(cpf, 11);
return formatCPF(cpf);
}
private static int calculateCheckDigit(int[] cpf, int factor) {
int sum = 0;
for (int i = 0; i < factor - 1; i++) {
sum += cpf[i] * (factor - i);
}
int result = 11 - (sum % 11);
return result > 9 ? 0 : result;
}
private static String formatCPF(int[] cpf) {
return String.format("%d%d%d.%d%d%d.%d%d%d-%d%d",
cpf[0], cpf[1], cpf[2], cpf[3], cpf[4], cpf[5], cpf[6], cpf[7], cpf[8], cpf[9], cpf[10]);
}
public static boolean validateCPF(String cpf) {
cpf = cpf.replaceAll("[^0-9]", "");
if (cpf.length() != 11) return false;
int[] numbers = cpf.chars().map(Character::getNumericValue).toArray();
if (allEqual(numbers)) return false;
int digit10 = calculateCheckDigit(numbers, 10);
int digit11 = calculateCheckDigit(numbers, 11);
return numbers[9] == digit10 && numbers[10] == digit11;
}
private static boolean allEqual(int[] array) {
for (int i = 1; i < array.length; i++) {
if (array[i] != array[0]) return false;
}
return true;
}
public static void main(String[] args) {
String cpf = generateCPF();
System.out.println("CPF yang Dihasilkan: " + cpf);
System.out.println("Valid: " + validateCPF(cpf));
}
}
**Menggunakan Implementasi Ini:**
- Fungsi validasi menangani input yang diformat (XXX.XXX.XXX-XX) dan tidak diformat (XXXXXXXXXXX)
- Tambahkan pemeriksaan untuk pola yang tidak valid (digit identik) dalam kode produksi
- Pertimbangkan untuk menggunakan pustaka yang sudah mapan seperti `validate-docbr` (Python) atau `cpf-cnpj-validator` (JavaScript) untuk sistem produksi—mereka menangani kasus tepi dan sudah diuji dengan baik
- Contoh ini bagus untuk memahami algoritme atau membangun implementasi ringan tanpa ketergantungan eksternal
## Pertanyaan yang Sering Diajukan Tentang Pembangkit CPF
### Apakah pembangkit CPF gratis digunakan?
Ya, alat ini sepenuhnya gratis tanpa perlu registrasi. Hasilkan sebanyak mungkin nomor CPF yang Anda butuhkan untuk tujuan pengujian. Tidak ada batasan penggunaan atau biaya tersembunyi.
### Apakah nomor CPF yang dihasilkan terkait dengan orang nyata?
Tidak. Meskipun nomor tersebut secara matematis valid dan lolos algoritma validasi, mereka dibangkitkan secara acak dan tidak terdaftar di Receita Federal Brasil. Mereka ada semata-mata sebagai data uji dan hanya boleh digunakan dalam lingkungan pengembangan dan pengujian.
### Bisakah saya menggunakan CPF yang dibangkitkan di sistem produksi?
Jangan pernah. Sistem produksi harus menggunakan CPF nyata yang diverifikasi yang disediakan oleh pengguna melalui proses registrasi yang sah. Menggunakan CPF yang dibangkitkan di sistem langsung melanggar prinsip integritas data dan dapat menyebabkan masalah hukum serius di bawah [undang-undang perlindungan data Brasil (LGPD)](https://www.gov.br/cidadania/pt-br/acesso-a-informacao/lgpd).
### Bagaimana pembangkit memastikan validitas CPF?
Alat ini mengimplementasikan algoritma validasi CPF resmi Brasil yang ditentukan oleh Receita Federal. Menghitung kedua digit cek menggunakan rumus modulo-11 berbobot, memastikan setiap nomor yang dihasilkan lolos tes validasi standar. Algoritma ini sama dengan yang digunakan oleh sistem pemerintah Brasil dan lembaga keuangan.
### Apa perbedaan antara CPF dan CNPJ?
CPF (Cadastro de Pessoas FĂsicas) mengidentifikasi individu—warga negara dan penduduk. CNPJ (Cadastro Nacional da Pessoa JurĂdica) mengidentifikasi bisnis dan entitas hukum. Anggap CPF mirip dengan Nomor Jaminan Sosial di AS, sementara CNPJ seperti Nomor Identifikasi Pemberi Kerja (EIN). Anda akan membutuhkan pembangkit berbeda untuk masing-masing tipe.
### Apakah legal untuk membangkitkan nomor CPF uji?
Membangkitkan nomor CPF untuk tujuan pengujian dan pengembangan perangkat lunak yang sah adalah legal. Yang ilegal adalah menggunakannya secara curang—untuk meniru orang nyata, melakukan pencurian identitas, atau menghindari langkah-langkah keamanan. Simpan CPF yang dibangkitkan dengan jelas ditandai sebagai data uji dan dibatasi pada lingkungan non-produksi.
### Bagaimana dengan CPF duplikat?
Meskipun secara teoritis mungkin, duplikat sangat jarang terjadi. Ada sekitar 100 miliar kombinasi CPF yang valid (mempertimbangkan batasan digit cek), sehingga probabilitas menghasilkan nomor yang sama dua kali sekitar 1 dari 100 miliar per percobaan. Dalam skenario pengujian praktis, duplikat tidak akan menjadi masalah kecuali Anda membangkitkan ratusan juta CPF.
### Apakah CPF yang dibangkitkan bekerja dengan pustaka validasi?
Ya. CPF yang dibangkitkan lolos validasi di pustaka populer di berbagai bahasa—`validate-docbr` Python, `cpf-cnpj-validator` JavaScript, `geekcom/validator-docs` PHP, dan lainnya. Mereka memenuhi persyaratan matematis yang diperiksa pustaka ini. Namun, mereka tidak akan lolos pemeriksaan "pencarian CPF nyata" terhadap basis data pemerintah, yang persis apa yang Anda inginkan untuk pengujian terisolasi.
### Mengapa beberapa CPF valid ditolak oleh validasi saya?
Validator Anda mungkin memeriksa pola yang tidak valid di luar algoritma matematis. Misalnya, CPF dengan semua digit identik (000.000.000-00, 111.111.111-11, dll.) secara matematis valid tetapi diblacklist oleh sebagian besar sistem Brasil karena diketahui sebagai nilai uji. Logika validasi yang baik mencakup algoritma digit cek dan penolakan berbasis pola ini.
## Pertimbangan Hukum dan Etis
Saat menggunakan **generator CPF**, ikuti pedoman penting berikut:
1. **Hanya untuk pengujian:** CPF yang dihasilkan secara ketat untuk lingkungan pengembangan dan pengujian
2. **Pelabelan yang jelas:** Tandai semua data uji yang berisi CPF yang dihasilkan untuk mencegah kebingungan dengan data asli
3. **Kepatuhan privasi:** Pahami undang-undang perlindungan data (seperti LGPD di Brasil) bahkan saat menangani pengidentifikasi palsu
4. **Sistem produksi:** Selalu gunakan CPF asli dan terverifikasi dari sumber resmi di lingkungan langsung
5. **Tindakan keamanan:** Terapkan perlindungan yang tepat untuk CPF asli dan yang dihasilkan di sistem Anda
6. **Tanpa peniruan:** Jangan pernah menggunakan nomor yang dihasilkan untuk meniru individu nyata atau melakukan penipuan
## Menggunakan CPF yang Dibuat dalam Rangkaian Pengujian Anda
Bagi pengembang yang bekerja pada aplikasi Brasil, memiliki data pengujian yang andal adalah hal yang mutlak. Generator CPF ini menyediakan nomor yang valid secara matematis yang lolos pemeriksaan validasi sambil menjaga pengujian Anda terpisah sepenuhnya dari data pengguna nyata.
Ingat poin-poin penting berikut saat mengintegrasikan CPF yang dibuat ke dalam alur kerja Anda:
- **Tandai data pengujian dengan jelas** dalam skema basis data dan dokumentasi Anda
- **Terapkan pemeriksaan pola** untuk CPF yang diketahui tidak valid (semua digit identik) dalam validasi Anda
- **Gunakan CPF yang dibuat hanya di lingkungan non-produksi**—staging, pengembangan, dan saluran CI/CD
- **Rujuk spesifikasi validasi resmi** dari [Receita Federal](https://www.gov.br/receitafederal/pt-br/assuntos/orientacao-tributaria/cadastros/cpf) saat membangun logika validasi Anda sendiri
Klik tombol generate di atas untuk membuat nomor CPF valid untuk kebutuhan pengujian Anda.
## Referensi dan Dokumentasi Resmi
Untuk informasi otoritatif tentang standar CPF dan peraturan data Brasil:
1. **Receita Federal do Brasil.** "CPF - Cadastro de Pessoas FĂsicas." Dokumentasi resmi persyaratan dan validasi CPF. [https://www.gov.br/receitafederal/pt-br/assuntos/orientacao-tributaria/cadastros/cpf](https://www.gov.br/receitafederal/pt-br/assuntos/orientacao-tributaria/cadastros/cpf)
2. **Serpro (Layanan Pemrosesan Data Federal).** "Validador de CPF." Layanan validasi CPF pemerintah dengan lingkungan pengujian. [https://www.serpro.gov.br/links-fixos-superiores/validador-cpf](https://www.serpro.gov.br/links-fixos-superiores/validador-cpf)
3. **Lei Geral de Proteção de Dados (LGPD).** "Undang-Undang Perlindungan Data Umum Brasil." Kerangka hukum yang mengatur penanganan data pribadi di Brasil. [https://www.gov.br/cidadania/pt-br/acesso-a-informacao/lgpd](https://www.gov.br/cidadania/pt-br/acesso-a-informacao/lgpd)
4. **Lei nÂş 4.862/1965.** "Mengubah peraturan pajak penghasilan." Perundangan asli yang menetapkan sistem CPF. [https://www.planalto.gov.br/ccivil_03/leis/l4862.htm](https://www.planalto.gov.br/ccivil_03/leis/l4862.htm)
5. **Kementerian Keuangan.** "Sejarah CPF." Konteks historis dan evolusi sistem CPF. [https://www.gov.br/fazenda/pt-br/assuntos/receita-federal](https://www.gov.br/fazenda/pt-br/assuntos/receita-federal)
---
**Judul Meta:** Generator CPF - Buat ID Pajak Brasil yang Valid untuk Pengujian
**Deskripsi Meta:** Generator CPF gratis membuat nomor ID pajak Brasil yang valid dan lolos algoritme validasi. Sempurna untuk menguji formulir, API, dan basis data tanpa menggunakan data pribadi sebenarnya.