https://github.com/njirolu/mysaly
Cek gaji bulanan kamu setelah potong pajak dan iuran BPJS dengan kalkulator gaji. Gampang banget, cuma butuh sebentar!
https://github.com/njirolu/mysaly
bpjs indonesia pph21 salary
Last synced: 6 days ago
JSON representation
Cek gaji bulanan kamu setelah potong pajak dan iuran BPJS dengan kalkulator gaji. Gampang banget, cuma butuh sebentar!
- Host: GitHub
- URL: https://github.com/njirolu/mysaly
- Owner: njirolu
- License: mit
- Created: 2023-09-24T10:20:40.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2023-09-30T05:53:27.000Z (over 2 years ago)
- Last Synced: 2025-02-27T20:38:46.884Z (over 1 year ago)
- Topics: bpjs, indonesia, pph21, salary
- Language: TypeScript
- Homepage: https://njirolu.github.io/mysaly/
- Size: 228 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
Cek gaji bulanan kamu setelah potong pajak dan iuran BPJS dengan kalkulator gaji. Gampang banget, cuma butuh sebentar!
## About MySaly
MySaly is an Indonesian salary calculator that helps you estimate your monthly take-home pay after deductions. It calculates tax (PPh 21) and BPJS (Health and Employment) contributions based on current Indonesian regulations.
The calculator provides a detailed breakdown of:
- Monthly and annual tax calculations
- BPJS Health contributions (employee and employer portions)
- BPJS Employment contributions (employee and employer portions)
- Final take-home salary after all deductions
## Technologies Used
- **React 18** - UI library for building the interface
- **TypeScript** - Type-safe JavaScript for better code quality
- **Vite** - Fast build tool and development server
- **Tailwind CSS** - Utility-first CSS framework for styling
- **Headless UI** - Unstyled, accessible UI components
## Project Structure
The project follows a feature-based organization pattern:
```
src/
├── components/ # Reusable UI components
│ ├── ui/ # Base UI components
│ ├── footer.tsx # Footer component
│ ├── info.tsx # Information/FAQ section
│ └── layout/ # Layout components
├── features/ # Feature-specific modules
│ └── salary-calculator/
│ ├── components/ # Salary calculator components
│ ├── hooks/ # Custom hooks for salary calculations
│ └── index.ts # Feature exports
├── hooks/ # Global custom hooks
├── services/ # Business logic services
├── constants/ # Application constants
├── types/ # TypeScript type definitions
├── utils/ # Utility functions
└── data/ # Static data
```
## Installation and Setup
### Prerequisites
- Node.js (v16 or higher)
- npm or yarn
### Local Development
1. Clone the repository:
```bash
git clone https://github.com/njirolu/mysaly.git
cd mysaly
```
2. Install dependencies:
```bash
npm install
# or
yarn install
```
3. Start the development server:
```bash
npm run dev
# or
yarn dev
```
4. Open your browser and navigate to `http://localhost:5173`
### Building for Production
1. Build the application:
```bash
npm run build
# or
yarn build
```
2. Preview the production build:
```bash
npm run preview
# or
yarn preview
```
## Usage
1. Enter your monthly gross salary in the "Gaji Kotor Bulanan" field
2. Select your marital status from the dropdown:
- "Belum Kawin" (Single)
- "Kawin" (Married)
3. Select the number of dependents (0-3)
4. Click "Hitung Gaji" to calculate your net salary
The calculator will display:
- Tax calculation details
- BPJS Health contribution breakdown
- BPJS Employment contribution breakdown
- Your final net salary
## Calculation Formulas and Tax Rules
### Tax Calculation (PPh 21)
The calculator follows Indonesian tax regulations:
1. **Annualized Salary**: Monthly salary × 12
2. **PTKP (Penghasilan Tidak Kena Pajak)**:
- Single (TK/0): Rp 54,000,000
- Single with 1 dependent (TK/1): Rp 58,500,000
- Single with 2 dependents (TK/2): Rp 63,000,000
- Single with 3 dependents (TK/3): Rp 67,500,000
- Married (K/0): Rp 58,500,000
- Married with 1 dependent (K/1): Rp 63,000,000
- Married with 2 dependents (K/2): Rp 67,500,000
- Married with 3 dependents (K/3): Rp 72,000,000
3. **PKP (Penghasilan Kena Pajak)**: Annualized Salary - PTKP
4. **Position Cost**: 5% of annualized salary (min Rp 500,000, max Rp 6,000,000)
5. **Tax Rates**:
- Up to Rp 60,000,000: 5%
- Rp 60,000,001 - Rp 250,000,000: 15%
- Rp 250,000,001 - Rp 500,000,000: 25%
- Rp 500,000,001 - Rp 5,000,000,000: 30%
- Above Rp 5,000,000,000: 35%
### BPJS Contributions
**BPJS Health**:
- Employee: 1% of monthly salary (capped at Rp 12,000,000)
- Employer: 4% of monthly salary (capped at Rp 12,000,000)
**BPJS Employment**:
- Employee: 2% of monthly salary
- Employer: 3.7% of monthly salary
## Contributing
We welcome contributions to improve MySaly! Here's how you can help:
1. Fork the repository
2. Create a feature branch (`git checkout -b feature/amazing-feature`)
3. Make your changes
4. Commit your changes (`git commit -m 'Add some amazing feature'`)
5. Push to the branch (`git push origin feature/amazing-feature`)
6. Open a Pull Request
### Development Guidelines
- Follow the existing code style and conventions
- Add appropriate TypeScript types for new code
- Include JSDoc comments for functions and components
- Test your changes thoroughly
- Ensure the application builds successfully
### Code Standards
- Use TypeScript for all new code
- Follow React best practices
- Use functional components with hooks
- Implement proper error handling
- Write self-documenting code with meaningful variable names
## License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
## Changelog
See [CHANGELOG.md](CHANGELOG.md) for a detailed history of changes.
## Support
If you encounter any issues or have questions, please open an issue on the GitHub repository.