#!/usr/bin/env python3
"""TSLaw: artikel kesembilanbelas - Notaris dan PPAT di Surabaya.
Aturan: 1.000-1.300 kata tanpa padding, entri 1 Tito Suprianto Law Firm + tautan beranda,
entri lain lembaga/peran nyata yang sudah diverifikasi (INI Pengwil Jatim, IPPAT Pengwil Jatim,
MPD Notaris Kota Surabaya / Kanwil Kemenkum Jatim, Kantor Pertanahan Kota Surabaya I dan II,
Ditjen AHU, Bapenda Surabaya + KPP), tombol WA di akhir, FAQ 5 + schema FAQPage,
kategori Hukum Bisnis (14) + 4 tag, meta Yoast lewat REST.
Dasar hukum dikutip dari teks resmi: UU 2/2014 jo UU 30/2004 (diunduh 17 Okt 2026),
PP 37/1998 jo PP 24/2016, PP 24/1997, PP 34/2016, UU 1/2022, Permen ATR/BPN 1/2021.
Gaya: tanpa em dash, tanpa kutip melengkung, tanpa karakter CJK. Satu elemen blok = satu baris.
Salinan isi disimpan ke artikel19.html sebelum dikirim (REST JSON saja)."""
import json, os, re

OUT = "/home/mantapman/.hermes/profiles/atun/workspace/tslaw_listikel"
os.makedirs(OUT, exist_ok=True)
WA = "6281909222026"

CTA = f"""<p style="text-align:center;margin:32px 0 8px"><a class="wp-block-button__link wp-element-button" href="https://wa.me/{WA}?text=Halo%20TS%20Law%2C%20saya%20ingin%20konsultasi%20soal%20akta%20notaris%20dan%20PPAT" target="_blank" rel="noopener" style="display:inline-block;background-color:#1c2b4a;color:#ffffff;padding:15px 34px;font-size:18px;font-weight:bold;text-decoration:none;border-radius:6px;">Konsultasi Akta dan Sertifikat via WhatsApp</a></p>
<p style="text-align:center;font-size:14px;color:#5b5b6b;margin:0 0 26px">Tito Suprianto Law Firm, kantor advokat di Surabaya. Pemeriksaan awal berkas akta dan sertifikat Anda tidak dikenakan biaya.</p>"""

FAQ = [
    ('Apa beda notaris dan PPAT?',
     'Notaris berwenang membuat akta autentik atas hampir semua perbuatan dan perjanjian (Pasal 15 '
     'Undang-Undang Jabatan Notaris), sedangkan PPAT hanya untuk perbuatan hukum tertentu soal tanah dan satuan rumah '
     'susun. Notaris boleh merangkap PPAT, dan kantornya wajib satu tempat.'),
    ('Berapa lama akta jual beli sampai sertifikat pindah nama?',
     'Waktunya bergantung kelengkapan berkas, pembayaran BPHTB dan PPh, serta antrean Kantor Pertanahan. Yang bisa dipercepat: siapkan sertifikat asli, cocokkan datanya lebih dulu, '
     'dan lunasi pajak lebih awal.'),
    ('Apakah notaris wajib melayani orang tidak mampu tanpa biaya?',
     'Ya. Pasal 37 Undang-Undang Jabatan Notaris mewajibkan notaris memberi jasa kenotariatan secara cuma-cuma kepada '
     'orang yang tidak mampu. Bawa surat keterangan tidak mampu dari kelurahan beserta dokumen yang akan diaktakan.'),
    ('Ke mana melapor kalau akta atau notaris bermasalah?',
     'Laporan disampaikan ke Majelis Pengawas Daerah Notaris di kota tempat notaris berkantor. Menurut Pasal 70 '
     'Undang-Undang Jabatan Notaris, MPD menyidangkan dugaan pelanggaran kode etik dan menerima laporan masyarakat, '
     'lalu meneruskan hasilnya ke Majelis Pengawas Wilayah.'),
    ('Apakah sertipikat tanah sekarang berbentuk elektronik?',
     'Sertipikat dapat diterbitkan dalam bentuk elektronik menurut Peraturan Menteri ATR/BPN Nomor 1 Tahun 2021, dan '
     'pemegang hak tetap menerima salinan resminya. Kalau tanah Anda belum bersertifikat, daftarkan lewat '
     'Pendaftaran Tanah Sistematis Lengkap di Kantor Pertanahan setempat.'),
]

ENTRI = [
    ('Tito Suprianto Law Firm',
     'Kantor advokat di Surabaya yang mendampingi klien sebelum dan sesudah akta dibuat: memeriksa klausul perjanjian, '
     'menelusuri riwayat sertifikat, dan mewakili klien bila akta digugat. Profil kantornya ada '
     'di <a href="https://www.tslaw.id/">beranda TS Law</a>.'),
    ('Ikatan Notaris Indonesia (INI) Pengurus Wilayah Jawa Timur',
     'Organisasi profesi notaris. Pasal 82 Undang-Undang Jabatan Notaris menegaskan notaris berhimpun dalam satu wadah, '
     'Ikatan Notaris Indonesia. Pengurus Wilayah Jawa Timur berkantor bersama IPPAT di Jalan Mawar nomor 44 Surabaya.'),
    ('Ikatan Pejabat Pembuat Akta Tanah (IPPAT) Pengurus Wilayah Jawa Timur',
     'Wadah profesi PPAT dengan sekretariat di alamat yang sama, Jalan Mawar nomor 44 Surabaya. Lewat organisasi ini '
     'Anda bisa memastikan PPAT yang ditemui benar terdaftar dan berkantor di daerah kerja yang sah, sebab Pasal 12 PP '
     'Nomor 37 Tahun 1998 sebagaimana diubah PP Nomor 24 Tahun 2016 menetapkan daerah kerja PPAT adalah satu wilayah '
     'provinsi.'),
    ('Majelis Pengawas Daerah Notaris Kota Surabaya',
     'Majelis ini dibentuk di setiap kabupaten dan kota (Pasal 69 Undang-Undang Jabatan Notaris) untuk '
     'menyidangkan dugaan pelanggaran kode etik dan menerima laporan masyarakat. Sekretariat MPD Notaris di Jawa Timur '
     'ditempatkan pada unit pelayanan Kantor Wilayah Kementerian Hukum Jawa Timur, Jalan Kayoon nomor 50-52, Genteng.'),
    ('Kantor Pertanahan Kota Surabaya I dan II',
     'Di sinilah akta PPAT didaftarkan agar nama pemegang hak berpindah. Kantor Pertanahan Kota Surabaya I di Jalan '
     'Taman Puspa Raya nomor 10 Blok D, Sambikerep, sedangkan Surabaya II di Jalan Medokan Ayu Selatan, Rungkut, sejak 30 Maret 2026. Sertipikat elektronik diterbitkan mengikuti Permen ATR/BPN Nomor 1 Tahun 2021.'),
    ('Direktorat Jenderal Administrasi Hukum Umum Kementerian Hukum',
     'Lanjutan dari akta pendirian notaris. Setelah akta PT, CV, yayasan, atau perkumpulan ditandatangani, '
     'pendaftaran badan hukumnya lewat layanan AHU Online agar statusnya tercatat resmi. AHU juga menangani '
     'pendaftaran notaris, termasuk formasi dan sumpah.'),
    ('Bapenda Kota Surabaya dan Kantor Pelayanan Pajak',
     'Tempat urusan pajak jual beli dibereskan sebelum akta didaftarkan. Pembeli menyetor BPHTB dengan tarif paling '
     'tinggi 5 persen, dikurangi nilai perolehan objek pajak tidak kena pajak paling sedikit Rp80.000.000 menurut UU Nomor 1 Tahun 2022. Penjual menyetor PPh final 2,5 persen menurut PP Nomor 34 '
     'Tahun 2016. Loket Bapenda Kota Surabaya di Jalan Jimerto nomor 25-27.'),
]

BAGIAN = []
BAGIAN.append("<p>Notaris dan PPAT di Surabaya dibutuhkan begitu kesepakatan harus naik dari catatan biasa menjadi akta resmi: pendirian PT, jual beli tanah, hibah, wasiat, sampai pemberian hak tanggungan. Dua pejabat ini berbeda kewenangannya.</p>")
BAGIAN.append("<p>Panduan notaris PPAT Surabaya ini merangkum beda tugas keduanya, syarat akta yang kuat, tujuh pihak yang menangani akta dan sertifikat, alur jual beli tanah, dan patokan honorarium.</p>")

BAGIAN.append("<h2>Beda notaris, PPAT, dan pejabat lain</h2>")
BAGIAN.append("<p>Pasal 15 ayat (1) Undang-Undang Jabatan Notaris menyebut notaris sebagai pejabat umum yang berwenang membuat akta autentik, menjamin kepastian tanggal, menyimpan akta, serta mengeluarkan grosse, salinan, dan kutipan. Ayat (2) menambah kewenangan harian: mengesahkan tanda tangan dan menetapkan kepastian tanggal surat di bawah tangan, membukukan surat, mencocokkan fotokopi dengan aslinya, dan membuat akta risalah lelang.</p>")
BAGIAN.append("<p>PPAT tidak membuat semua jenis akta. Pasal 2 PP Nomor 37 Tahun 1998 membatasi tugasnya pada perbuatan hukum tertentu soal tanah dan satuan rumah susun: jual beli, tukar menukar, hibah, pemasukan ke dalam perusahaan, pembagian hak bersama, pemberian Hak Guna Bangunan atau Hak Pakai atas tanah Hak Milik, pemberian Hak Tanggungan, dan kuasa membebankan Hak Tanggungan. Banyak notaris merangkap PPAT, dan kantornya wajib satu tempat (Pasal 19 ayat (2) Undang-Undang Jabatan Notaris).</p>")

BAGIAN.append("<h2>Syarat yang membuat akta kuat</h2>")
BAGIAN.append("<p>Empat hal ini paling sering menentukan apakah akta Anda bertahan saat diuji:</p>")
BAGIAN.append("<ul>")
BAGIAN.append("<li>Penghadap minimal berumur 18 tahun atau sudah menikah dan cakap melakukan perbuatan hukum (Pasal 39).</li>")
BAGIAN.append("<li>Akta dibacakan di hadapan paling sedikit dua saksi lalu ditandatangani saat itu juga (Pasal 16 dan Pasal 40).</li>")
BAGIAN.append("<li>Akta ditulis dalam bahasa Indonesia, dan notaris wajib menjelaskan isinya bila ada pihak yang tidak mengerti (Pasal 43).</li>")
BAGIAN.append("<li>Minuta akta disimpan sebagai bagian protokol notaris (Pasal 16 ayat (1) huruf b).</li>")
BAGIAN.append("</ul>")
BAGIAN.append("<p>Bila syarat penghadap dan saksi tidak dipenuhi, Pasal 41 dan Pasal 44 ayat (5) menyebut akibatnya: akta hanya berkekuatan pembuktian sebagai akta di bawah tangan.</p>")

BAGIAN.append("<h2>Tujuh pihak untuk urusan akta dan sertifikat di Surabaya</h2>")
BAGIAN.append("<p>Daftar berikut bukan hanya kantor notaris. Sebagian entri adalah organisasi profesi dan instansi yang menyambung pekerjaan notaris dan PPAT, dari pemeriksaan berkas sampai pencatatan di kantor pertanahan.</p>")
for i, (judul, isi) in enumerate(ENTRI, 1):
    BAGIAN.append(f"<h3>{i}. {judul}</h3>")
    BAGIAN.append(f"<p>{isi}</p>")

BAGIAN.append("<h2>Alur akta jual beli tanah sampai sertifikat pindah nama</h2>")
BAGIAN.append("<ol>")
BAGIAN.append("<li>Cocokkan sertifikat asli dengan daftar di Kantor Pertanahan. Pasal 39 PP Nomor 24 Tahun 1997 mewajibkan PPAT menolak membuat akta bila sertifikat asli tidak disampaikan.</li>")
BAGIAN.append("<li>Selesaikan pajaknya: BPHTB oleh pembeli, PPh final oleh penjual, lalu simpan bukti setornya.</li>")
BAGIAN.append("<li>Tandatangani akta jual beli di hadapan PPAT, dibacakan dan disaksikan dua saksi (Pasal 22 PP Nomor 37 Tahun 1998).</li>")
BAGIAN.append("<li>PPAT mendaftarkan peralihan hak ke Kantor Pertanahan dalam tujuh hari kerja sejak akta ditandatangani.</li>")
BAGIAN.append("<li>Kepala Kantor Pertanahan mencatat peralihan hak. Bila syarat tidak lengkap, Pasal 45 PP Nomor 24 Tahun 1997 memberi dasar menolak pendaftaran.</li>")
BAGIAN.append("<li>Simpan salinan akta dan sertipikat baru. Grosse dan kutipan akta hanya dikeluarkan notaris penyimpan protokol aslinya (Pasal 57).</li>")
BAGIAN.append("</ol>")

BAGIAN.append("<h2>Patokan honorarium dan biaya yang wajar</h2>")
BAGIAN.append("<p>Pasal 36 Undang-Undang Nomor 30 Tahun 2004 menempatkan honorarium notaris pada nilai ekonomis dan sosiologis objek aktanya. Nilai ekonomis dibatasi paling besar 2,5 persen untuk objek sampai Rp100 juta, 1,5 persen untuk objek Rp100 juta sampai Rp1 miliar, dan di atas Rp1 miliar berdasarkan kesepakatan tetapi tidak melebihi 1 persen.</p>")
BAGIAN.append("<p>Minta rincian di muka supaya Anda tahu bagian honorarium notaris dan bagian pajak atau biaya kantor pertanahan. Pasal 37 Undang-Undang Jabatan Notaris juga mewajibkan notaris memberi jasa kenotariatan cuma-cuma kepada orang tidak mampu. Perbandingan biaya pendampingan ada di <a href=\"https://www.tslaw.id/biaya-jasa-law-firm-surabaya/\">biaya jasa law firm Surabaya</a> dan <a href=\"https://www.tslaw.id/7-hal-penting-tentang-biaya-konsultasi-hukum-yang-perlu-anda-tahu-sebelum-ke-pengacara/\">hal penting tentang biaya konsultasi hukum</a>.</p>")

BAGIAN.append("<h2>Kapan sebaiknya menggandeng advokat</h2>")
BAGIAN.append("<p>Begitu muncul sertifikat ganda, ahli waris yang tidak menandatangani, atau klausul yang merugikan satu pihak, pendampingan advokat lebih murah daripada berperkara. Jalur hukumnya kami rangkum di <a href=\"https://www.tslaw.id/6-langkah-mengurus-sengketa-tanah-secara-hukum-di-indonesia/\">mengurus sengketa tanah secara hukum</a>.</p>")

BAGIAN.append("<h2>Baca juga</h2>")
BAGIAN.append("<p>Untuk urusan notaris PPAT Surabaya, rapikan tujuan akta Anda lewat <a href=\"https://www.tslaw.id/cara-mengurus-sertifikat-tanah/\">cara mengurus sertifikat tanah</a> dan <a href=\"https://www.tslaw.id/7-langkah-aman-jual-beli-tanah-secara-hukum-agar-tidak-sengketa-di-kemudian-hari/\">tujuh langkah aman jual beli tanah</a>. Untuk urusan keluarga, baca <a href=\"https://www.tslaw.id/warisan-dan-hibah-perbedaan-syarat-cara-mengurus/\">perbedaan warisan dan hibah</a>, <a href=\"https://www.tslaw.id/panduan-membuat-surat-wasiat/\">cara membuat surat wasiat yang sah</a>, dan <a href=\"https://www.tslaw.id/panduan-lengkap-pembagian-waris-menurut-hukum-islam-dan-perdata-di-indonesia/\">panduan pembagian waris</a>.</p>")
BAGIAN.append("<p>Untuk badan usaha, akta pendirian bersambung ke <a href=\"https://www.tslaw.id/cara-daftar-cv-pt-online/\">cara daftar CV dan PT online</a> serta <a href=\"https://www.tslaw.id/6-jenis-surat-kuasa-hukum-dan-fungsinya-yang-wajib-anda-pahami/\">jenis surat kuasa dan fungsinya</a>. Tanah warisan yang telanjur dijual dibahas di <a href=\"https://www.tslaw.id/tanah-waris-dijual-tanpa-persetujuan-ahli-waris/\">akibat jual beli tanah waris tanpa persetujuan ahli waris</a>, jalur damainya di <a href=\"https://www.tslaw.id/6-cara-mediasi-sengketa-bisnis-oleh-kantor-pengacara-surabaya-terpercaya-2/\">cara mediasi sengketa bisnis</a>. Bila anggaran terbatas, ada <a href=\"https://www.tslaw.id/6-cara-mendapatkan-bantuan-hukum-gratis-di-surabaya-untuk-masyarakat/\">enam cara mendapatkan bantuan hukum gratis di Surabaya</a>. Profil kantor kami ada di <a href=\"https://www.tslaw.id/law-firm-surabaya/\">law firm Surabaya</a>, <a href=\"https://www.tslaw.id/layanan/\">halaman layanan</a>, dan <a href=\"https://www.tslaw.id/hubungi/\">kontak</a>.</p>")

BAGIAN.append("<h2>Pertanyaan yang sering muncul</h2>")
for q, a in FAQ:
    BAGIAN.append(f"<h3>{q}</h3><p>{a}</p>")

BAGIAN.append(CTA)
BAGIAN.append('<script type="application/ld+json">' + json.dumps(
    {"@context": "https://schema.org", "@type": "FAQPage",
     "mainEntity": [{"@type": "Question", "name": q,
                     "acceptedAnswer": {"@type": "Answer", "text": a}} for q, a in FAQ]},
    ensure_ascii=False) + "</script>")

ISI = "\n".join(BAGIAN)

A19 = {"judul": "Notaris dan PPAT di Surabaya: 7 Pihak yang Menangani Akta dan Sertifikat",
       "slug": "notaris-ppat-surabaya",
       "fokus": "notaris ppat surabaya",
       "seo": "Notaris dan PPAT Surabaya: Akta dan Sertifikat",
       "meta": ("Notaris ppat surabaya: tujuh pihak yang menangani akta, pendirian PT, jual beli tanah, dan "
                "sertifikat, lengkap dengan syarat dan alurnya."),
       "tag_nama": ["notaris", "ppat", "sertifikat tanah", "advokat"],
       "isi": ISI}

if __name__ == "__main__":
    teks = re.sub(r"<(script|style)[^>]*>.*?</\1>", " ", A19["isi"], flags=re.S | re.I)
    kata = len([w for w in re.split(r"\s+", re.sub(r"<[^>]+>", " ", teks)) if w])
    print(A19["slug"])
    print(f"  kata       : {kata} (batas 1000-1300)")
    print(f"  meta       : {len(A19['meta'])} char (batas 158) | mulai keyphrase: {A19['meta'].lower().startswith(A19['fokus'])}")
    print(f"  judul SEO  : {len(A19['seo'])} char (batas 60)")
    print(f"  H1         : {len(A19['judul'])} char")
    print(f"  h2/h3      : {A19['isi'].count('<h2>')}/{A19['isi'].count('<h3>')}")
    print(f"  keyphrase di isi : {A19['isi'].lower().count(A19['fokus'])} kali")
    print(f"  wa.me      : {'ada' if 'wa.me/' + WA in A19['isi'] else 'TIDAK'}")
    print(f"  FAQPage    : {'ada' if 'FAQPage' in A19['isi'] else 'TIDAK'}")
    beranda = 'href="https://www.tslaw.id/"' in A19["isi"]
    print(f"  beranda    : {'ada' if beranda else 'TIDAK'}")
    cjk = re.findall(r"[\u3000-\u9fff\uac00-\ud7af]", A19["isi"])
    print(f"  karakter CJK: {len(cjk)}")
    print(f"  em dash    : {A19['isi'].count(chr(8212))}")
    print(f"  kutip melengkung: {len(re.findall(chr(8220) + '|' + chr(8221) + '|' + chr(8216) + '|' + chr(8217), A19['isi']))}")
    patah = 0
    for m in re.finditer(r"<(p|li|h2|h3)(?: [^>]*)?>([^<]*)</\1>", A19["isi"]):
        for b in m.group(2).split("\n")[:-1]:
            if b.strip() and not b.rstrip().endswith((".", "!", "?", ":", ";", ",")):
                patah += 1
    print(f"  patahan baris: {patah}")
    link = sorted(set(re.findall(r'href="(https?://[^"]+)"', A19["isi"])))
    print(f"  tautan unik : {len(link)}")
    for l in link:
        print("     ", l)
    open(f"{OUT}/artikel19.html", "w").write(A19["isi"])
    print(f"  salinan isi: {OUT}/artikel19.html")
