# Skill Contract

**Skill ID:** aritmatika_dasar
**Version:** v1
**Status:** APPROVED

---

## Intent
Mampu melakukan operasi dasar aritmatika (penjumlahan, pengurangan, perkalian, dan pembagian) antara dua angka yang diberikan pengguna.

---

## Inputs
- X (number, optional, default 0)
- Y (number, optional, default 0)

---

## Outputs
- jumlah
- kurang
- kali
- bagi

---

## Output Message
Hasil dari operasi aritmatika Anda adalah: Penjumlahan {jumlah}, Pengurangan {kurang}, Perkalian {kali}, dan Pembagian {bagi}.

---

## Logic
1. Ambil nilai input X dan Y.
2. Jika X tidak disediakan, gunakan 0 sebagai nilai default. Jika Y tidak disediakan, gunakan 0 sebagai nilai default.
3. Hitung hasil penjumlahan: `jumlah = X + Y`.
4. Hitung hasil pengurangan: `kurang = X - Y`.
5. Hitung hasil perkalian: `kali = X * Y`.
6. Hitung hasil pembagian: `bagi = X / Y`. Jika Y adalah 0, set `bagi` menjadi "Tidak terdefinisi" untuk menghindari error dan memberikan informasi yang jelas.
7. Kembalikan keempat hasil perhitungan tersebut.

---

## Additional Logic
- Jika input X atau Y tidak diisi, asumsikan nilainya sebagai 0 untuk tujuan perhitungan.
- Penanganan pembagian dengan nol: Jika nilai Y adalah 0, hasil untuk pembagian (`bagi`) akan dilaporkan sebagai "Tidak terdefinisi" (Undefined) untuk mencegah kesalahan runtime dan memberikan informasi yang transparan kepada pengguna.

---

## Side Effects
Tidak ada efek samping karena skill ini murni melakukan komputasi lokal dan tidak berinteraksi dengan sistem eksternal atau memodifikasi status.

---

## Capability Summary
Mampu melakukan operasi dasar aritmatika (penjumlahan, pengurangan, perkalian, dan pembagian) antara dua angka yang diberikan, dengan penanganan nilai input opsional dan pembagian dengan nol.

---

## Allowed Roles

- SUPERUSER
- ADMIN
- USER

## Assumptions
- Input nilai X dan Y diharapkan berupa angka.
- Pengguna memahami operasi aritmatika dasar.
- Output `bagi` dapat berupa string "Tidak terdefinisi" jika terjadi pembagian dengan nol.

---

## Non-Goals
- Menangani input non-numerik selain dari default ke 0 untuk nilai yang tidak ada.
- Melakukan fungsi matematika tingkat lanjut (misalnya, trigonometri, logaritma).
- Menyimpan atau mengambil riwayat perhitungan.
- Validasi tipe data yang ketat untuk input X dan Y jika diberikan sebagai non-angka.

---

## Failure Modes
- Input nilai non-numerik (jika tidak tertangani oleh sistem secara default menjadi 0 atau menyebabkan konversi gagal) dapat menyebabkan kesalahan komputasi.
- Kesalahan sistem yang tidak terduga selama eksekusi.

---

## Data & System Access
Akses terbatas pada memori komputasi internal untuk variabel X, Y, jumlah, kurang, kali, dan bagi. Tidak ada akses ke sistem eksternal, database, atau sumber data sensitif lainnya.

---

## Safety & Risk
Risk Level: LOW

---

## Input Mode
form

---

## Approval

    Approved by: USER  
    Approved on: 2026-05-28T02:21:28.691793Z