Alat Pengguna

Alat Situs


cuan77:c77_kode

Perbedaan

Ini menunjukkan perbedaan antara versi yang terpilih dengan versi yang sedang aktif.

Tautan ke tampilan pembanding ini

Revisi selanjutnya
Revisi sebelumnya
cuan77:c77_kode [2025/12/14 07:41] – dibuat fakhruncuan77:c77_kode [2025/12/16 11:17] (sekarang) fakhrun
Baris 1: Baris 1:
-DOKUMENTASI c77 PROGRAMMING LANGUAGE – COMMAND BOT+====== Dokumentasi Bahasa Pemrograman c77 ======
  
-Dokumentasi ini menjelaskan strukturalur kerja, dan fungsi dari script bot berbasis c77 programming language yang menangani berbagai perintah (command) dari user.+Selamat datang di dokumentasi teknis untuk **c77**sebuah bahasa pemrograman berbasis skrip yang dirancang untuk pembuatan bot interaktif dengan sintaks yang sederhana dan mudah dibaca.
  
-==================================================+Dokumen ini menjelaskan sintaks dasar, konfigurasi perintah, fungsi bawaan (API), dan struktur kontrol alur.
  
-STRUKTUR UMUM SCRIPT +===== 1. Sintaks Dasar =====
-==================================================+
  
-Script dibagi menjadi dua bagian utama:+==== Deklarasi Label ====
  
-Konfigurasi Command +Label berfungsi sebagai penanda titik awal sebuah blok logika atau fungsi. Sistem akan melompat ke label ini ketika dipanggil oleh //event handler// atau perintah lompatan.
-Digunakan untuk memetakan command yang diketik user ke logic tertentu.+
  
-Logic Command +  * **Aturan:** Nama label wajib diawali dengan tanda titik (.). 
-Berisi aksi atau proses yang dijalankan saat command dipanggil.+  * **Sintaks:** ''.nama_label'' 
 +  * **Contoh:**
  
-================================================== +<code> 
-2KONFIGURASI COMMAND+.fungsi_logika 
 +    print "Logika dimulai di sini" 
 +</code>
  
-Format umum:+==== Komentar ====
  
-saat_perintah /command lompat .label+Komentar digunakan untuk memberikan catatan pada kode program. Bagian ini tidak akan dieksekusi oleh mesin.
  
-Penjelasan:+  * **Simbol:** Titik koma (;) 
 +  * **Contoh:**
  
-saat_perintah : mendeteksi command dari user+<code> 
 +; Ini adalah komentar baris penuh 
 +count = 0 ; Ini komentar di akhir baris 
 +</code>
  
-/command : perintah yang diketik user+==== Variabel & Tipe Data ====
  
-lompat .label : lompat ke logic command+Pendefinisian variabel dilakukan secara dinamis (tanpa tipe data eksplisit).
  
-Daftar command yang tersedia:+  * **String:** Teks harus diapit tanda kutip ganda ("). 
 +  * **Integer:** Angka ditulis langsung. 
 +  * **Operator Penggabungan:** Gunakan tanda plus (+) untuk menggabungkan string atau variabel. 
 +  * **Contoh:**
  
-/start -Memulai bot +<code
-/ping -> Mengecek status bot +nama = "User" 
-/spam -> Demo looping +skor = 100 
-/help -> Menampilkan menu +pesan = "Halo " + nama 
-/qris -> Mengirim gambar QRIS +</code>
-/ceklog -> Membaca isi file +
-/catat -> Menyimpan data user +
-/cekagrs -Menampilkan argumen command+
  
-================================================== +===== 2. Konfigurasi Perintah (Event Listener) =====
-3. VARIABEL YANG DIGUNAKAN+
  
-chat_id : ID chat tujuan +Bagian ini digunakan untuk memetakan perintah yang diketik pengguna (Trigger) ke Label logika yang sesuai.
-sender_name : Nama pengirim pesan +
-agrs : Argumen setelah command +
-msg : Variabel pesan +
-text : Variabel teks +
-info : Informasi menu +
-count : Counter loop +
-max_spam : Batas looping+
  
-================================================== +**Sintaks:** 
-4. PENJELASAN LOGIC COMMAND +''saat_perintah [trigger] lompat [label_tujuan]''
-COMMAND /start+
  
-Fungsi:+**Parameter:** 
 +  - ''trigger'': Kata kunci perintah (contoh: /start). 
 +  - ''lompat'': Kata kunci wajib (keyword). 
 +  - ''label_tujuan'': Label yang akan dieksekusi saat trigger diterima.
  
-Menyapa user berdasarkan nama+**Contoh:** 
 +<code> 
 +saat_perintah /start lompat .cmd_start 
 +saat_perintah /menu  lompat .cmd_menu 
 +</code>
  
-Menampilkan pesan selamat datang+===== 3. Fungsi Bawaan (API Reference) =====
  
-Mengarahkan user ke command /help+Berikut adalah daftar fungsi yang tersedia, cara penggunaannya, dan argumen yang dibutuhkan.
  
-Contoh output: +==== send ==== 
-Halo Fakhrun, selamat datang di c77 programing language +Mengirim pesan teks ke pengguna.
-Ketik /help untuk melihat menu.+
  
-COMMAND /ping+  * **Argumen 1:** ''target_id'' (Biasanya menggunakan variabel sistem ''chat_id''). 
 +  * **Argumen 2:** ''pesan'' (String atau Variabel). 
 +  * **Contoh:**
  
-Fungsi:+<code> 
 +send chat_id "Halo, selamat datang!" 
 +</code>
  
-Mengecek apakah bot berjalan dengan normal+==== send_photo ==== 
 +Mengirim file gambar disertai dengan teks keterangan (caption).
  
-Output+  * **PENTING:** File gambar hanya dibaca dari dalam folder **bot_config**. 
-Pong! +  * **Argumen 1:** ''target_id'' 
-Server berjalan dengan lancar.+  * **Argumen 2:** ''path_file'' (String, lokasi file gambar relatif terhadap bot_config). 
 +  * **Argumen 3:** ''caption'' (String, teks keterangan). 
 +  * **Contoh:**
  
-COMMAND /spam+<code> 
 +path = "qris.png" ; File harus ada di folder bot_config/qris.png 
 +desc = "Ini adalah menu kami" 
 +send_photo chat_id path desc 
 +</code>
  
-Fungsi:+==== kirim_vidio==== 
 +Mengirim file vidio disertai dengan teks keterangan (caption).
  
-Contoh penggunaan loop dan kondisi+  * **PENTING:** File gambar hanya dibaca dari dalam folder **bot_config**. 
 +  * **Argumen 1:** ''target_id'' 
 +  * **Argumen 2:** ''path_file'' (String, lokasi file gambar relatif terhadap bot_config). 
 +  * **Argumen 3:** ''caption'' (String, teks keterangan). 
 +  * **Contoh:**
  
-Mengirim pesan berulang sesuai batas+<code> 
 +path = "tutorial.mp4" ; File harus ada di folder bot_config/tutorial.mp4 
 +desc = "Ini adalah menu kami" 
 +kirim_vidio chat_id path desc 
 +</code>
  
-Alur: 
  
-Bot mengirim pesan mulai spam+==== print ==== 
 +Mencetak log ke konsol server. Fungsi ini berguna untuk //debugging// dan tidak akan terlihat oleh pengguna bot.
  
-Mengirim pesan spam berulang+  * **Argumen 1:** ''teks'' (String/Variabel). 
 +  * **Contoh:**
  
-Berhenti setelah mencapai batas+<code> 
 +print "User telah menekan tombol start" 
 +</code>
  
-Contoh output: +==== sleep ==== 
-Mulai spamming... +Menunda eksekusi program selama beberapa milidetik (delay).
-Spam ke-1 +
-Spam ke-2 +
-Spam ke-3 +
-Selesai spam.+
  
-COMMAND /help+  * **Argumen 1:** ''milidetik'' (Integer). 
 +  * **Contoh:**
  
-Fungsi:+<code> 
 +sleep 1000 ; Menunggu selama 1 detik 
 +</code>
  
-Menampilkan daftar command yang tersedia+==== baca_file ==== 
 +Membaca isi file teks dari penyimpanan lokal dan menyimpannya ke dalam variabel.
  
-Isi menu+  * **Argumen 1:** ''path_file'' (String). 
-/start - Mulai Bot +  * **Return:** Mengembalikan isi file sebagai String. 
-/ping - Cek Status +  * **Contoh:**
-/spam - Demo Loop+
  
-COMMAND /qris+<code> 
 +konten = baca_file "catatan.txt" 
 +send chat_id konten 
 +</code>
  
-Fungsi:+==== tulis_file ==== 
 +Menulis teks ke dalam file. Jika file tidak ada, akan dibuat. Jika ada, akan ditimpa/ditambah (tergantung implementasi sistem).
  
-Mengirim file gambar QRIS ke user+  * **PENTING:** File akan otomatis disimpan/ditulis ke dalam folder **bot_config**. 
 +  * **Argumen 1:** ''path_file'' (String). 
 +  * **Argumen 2:** ''isi_konten'' (String/Variabel). 
 +  * **Contoh:**
  
-Catatan:+<code> 
 +data = "Log aktivitas baru" 
 +tulis_file "log.txt" data ; Akan tersimpan di bot_config/log.txt 
 +</code>
  
-File qris.png harus tersedia di folder bot+==== baris_keyboard ==== 
 +Menambahkan baris inline keyboard pada bot.
  
-Caption mendukung variabel dan baris baru+  * **Argumen :** ''label_button'' (String). 
 +  * **Contoh:**
  
-COMMAND /ceklog+<code> 
 +baris_keyboard "/halo" "/start" "/sawer" ; Ini bakal jadi baris 1 
 +baris_keyboard "/co gratis" "/cetak uang" ; Ini bakal jadi baris 2 
 +</code>
  
-Fungsi: 
  
-Membaca isi file klik.txt+===== 4Kontrol Alur (Flow Control) =====
  
-Mengirim isi file ke chat+Mengatur jalannya logika program, seperti percabangan dan pengulangan.
  
-COMMAND /catat+==== lompat (Unconditional Jump) ==== 
 +Memindahkan eksekusi program langsung ke label lain tanpa syarat.
  
-Fungsi:+  * **Sintaks:** ''lompat [label]'' 
 +  * **Contoh:** ''lompat .menu_utama''
  
-Menyimpan nama user ke dalam file+==== jika (Conditional Jump / If) ==== 
 +Melakukan lompatan hanya jika kondisi terpenuhi.
  
-File output+  * **Sintaks:** ''jika [nilai_kiri] [operator] [nilai_kanan] lompat [label]'' 
-bot_config/daftar_tamu.txt+  * **Operator:** 
 +    * < (Kurang dari) 
 +    * > (Lebih dari) 
 +    * = (Sama dengan) 
 +    * != (Tidak sama dengan) 
 +  * **Contoh:**
  
-Contoh isi file: +<code> 
-Tamu terakhir: Fakhrun+count = 0 
 +max = 5 
 +.looping 
 +count = count + 1 
 +jika count < max lompat .looping 
 +</code>
  
-COMMAND /cekagrs+==== stop ==== 
 +Menghentikan eksekusi skrip pada baris tersebut. **Wajib** diletakkan di akhir setiap blok label agar kode tidak "bocor" (fall-through) ke label di bawahnya.
  
-Fungsi:+  * **Sintaks:** ''stop''
  
-Menampilkan argumen yang diketik user+===== 5. Variabel Built-in =====
  
-Contoh input: +Variabel ini disediakan otomatis oleh sistem saat perintah dijalankan. Anda tidak perlu mendeklarasikannya secara manual.
-/cekagrs halo dunia+
  
-Output: +^ Nama Variabel ^ Tipe Data ^ Deskripsi ^ 
-ini agruments mu halo dunia+| **sender_name** | String | Nama tampilan (//display name//) pengirim pesan. | 
 +| **chat_id** | Int/String | ID unik pengguna atau grup tempat pesan dikirim. | 
 +| **user_id** | Int | ID unik pengguna. | 
 +| **raw_text** | String | Raw text pesan yang di kirim oleh user. | 
 +| **agrs** | String | Argumen tambahan yang diketik user setelah perintah utama. |
  
-================================================== +**Contoh Penggunaan agrs:** 
-5. SYNTAX DAN PERINTAH PENTING+Jika pengguna mengetik: ''/echo halo dunia'' 
 +Maka: 
 +  * Command: ''/echo'' 
 +  * agrs: ''"halo dunia"''
  
-Kontrol alur:+<code> 
 +.cmd_echo 
 +    msg = "Anda mengetik" + agrs 
 +    send chat_id msg 
 +    stop 
 +</code>
  
-lompat .label : berpindah ke blok tertentu+===== 6Contoh Best Practice (Sistem Tiket) =====
  
-stop : menghentikan eksekusi+Berikut adalah contoh implementasi kode yang bersih dan terstruktur untuk sistem "Support Ticket" sederhana. Perhatikan penggunaan komentar header, penamaan variabel yang jelas, dan pemisahan logika.
  
-jika kondisi lompat percabangan logika+<code> 
 +; ================================================== 
 +; APLIKASI HELPDESK MINI 
 +; DeskripsiMenerima keluhan user dan menyimpannya 
 +; ==================================================
  
-Delay+; --- BAGIAN 1KONFIGURASI HANDLER --- 
-sleep 1000 +saat_perintah /tiket   lompat .handler_buat_tiket 
-(delay dalam milidetik)+saat_perintah /cek_db  lompat .handler_baca_database 
 +saat_perintah /reset   lompat .handler_reset_data
  
-Pengiriman pesan: +; --- BAGIAN 2LOGIKA PROGRAM ---
-send chat_id teks +
-send_photo chat_id path caption+
  
-File handling+.handler_buat_tiket 
-baca_file "file.txt+    ; 1. Persiapan Data 
-tulis_file "file.txt" isi+    ; Menggabungkan nama pengirim dengan isi pesan (agrs) 
 +    log_entry = "Pengirim" + sender_name 
 +    log_entry = log_entry + | Keluhan: 
 +    log_entry = log_entry + agrs 
 +     
 +    ; 2. Simpan ke File (Persistent Storage) 
 +    ; Data akan tersimpan di folder bot_config 
 +    tulis_file "database_tiket.txt" log_entry 
 +     
 +    ; 3. Feedback ke User 
 +    reply = "Halo " + sender_name 
 +    reply = reply + ", tiket Anda berhasil kami simpan." 
 +    send chat_id reply 
 +     
 +    ; 4. Log Internal 
 +    print "Tiket baru telah dibuat." 
 +    stop
  
-================================================== +.handler_baca_database 
-6. CATATAN PENTING+    ; Membaca seluruh isi file keluhan 
 +    isi_db baca_file "bot_config/database_tiket.txt" 
 +     
 +    header "=== DATA TIKET MASUK ===" 
 +    send chat_id header 
 +    send chat_id isi_db 
 +    stop
  
-Setiap command wajib diakhiri dengan stop +.handler_reset_data 
- +    ; Mengosongkan file dengan menimpa string default 
-Loop harus memiliki kondisi berhenti +    default_msg "[DATABASE KOSONG]" 
- +    tulis_file "database_tiket.txt" default_msg 
-Pastikan file yang dipanggil benar-benar ada +     
- +    send chat_id "Database telah di-reset oleh Admin." 
-Nama label tidak boleh duplikat +    stop 
- +</code>
-================================================== +
-7CONTOH COMMAND DENGAN ARGUMEN +
- +
-Input: +
-/cekagrs testing 123 +
- +
-Output: +
-ini agruments mu testing 123 +
- +
-================================================== +
-8PENUTUP +
- +
-Script ini cocok digunakan untuk: +
- +
-Bot Telegram +
- +
-Automation script +
- +
-Pembelajaran scripting +
- +
-Prototype command system+
cuan77/c77_kode.1765698111.txt.gz · Terakhir diubah: oleh fakhrun