An open API service indexing awesome lists of open source software.

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!

Awesome Lists containing this project

README

          



MySaly


Cek gaji bulanan kamu setelah potong pajak dan iuran BPJS dengan kalkulator gaji. Gampang banget, cuma butuh sebentar!


Hitung disini →

## 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.