Tugas IDN

Semester 2
 avatarAhmadAbdillah
Publica year ago6 Snippets
Search
Language
Sort by
📅 Created Date
Order
route dan api controller
// route api.php
Route::post('login', [AuthApi::class, 'login']);
Route::post('logout', [AuthApi::class, 'logout'])->middleware('auth:sanctum');

// controller AuthApi.php
public function login(Request $request)
    {
        $request->validate([
            'email' => 'required|email|string',
            'password' => 'required'
        ]);

        $user = User::where('email', $request->email)->first();
        if (!$user && !Hash::check($request->password, $user->password)) {
            return response()->json([
                'success' => false,
                'message' => 'invalid email or password',
                'data' => null,
            ]);
        }

        $token = $user->createToken('Api Token')->plainTextToken;

        return response()->json([
            'status' => true,
            'message' => 'Login successful',
            'data' => [
                'access_token' => $token,
                'token_type' => 'Bearer',
                'user' => $user,
            ],
        ]);
    }

    public function logout(Request $request)
    {
        $request->user()->currentAccessToken()->delete();
        return response()->json([
            'success' => true,
            'data' => null,
            'message' => 'berhasil logout'
        ]);
    }

Menambahkan setter

darta year ago
import 'dart:io';

class BankAccount {
  String _pin; // Properti private
  double _saldo; // Properti private

  // Constructor
  BankAccount(this._pin, this._saldo);

  // Getter untuk membaca saldo
  double get saldo => _saldo;

  // Metode untuk autentikasi PIN
  bool authenticate(String inputPin) {
    return inputPin == _pin;
  }

  // Metode untuk menyetor uang
  void deposit(double jumlah) {
    if (jumlah > 0) {
      _saldo += jumlah;
      print('Deposit berhasil: $jumlah');
    } else {
      print('Jumlah harus positif');
    }
  }

  // Metode untuk menarik uang
  void withdraw(double jumlah) {
    if (jumlah > 0 && jumlah <= _saldo) {
      _saldo -= jumlah;
      print('Penarikan berhasil: $jumlah');
    } else {
      print('Penarikan gagal. Saldo tidak mencukupi.');
    }
  }

  // Setter untuk pin
  set pin(newPin) {
    if (newPin.length > 3) {
      _pin = newPin;
    } else {
      print('Pin harus lebih dari 3 huruf');
    }
  }
}

void main()  {
  // Membuat akun bank
  var account = BankAccount('1234', 500.0);

  print('Selamat datang di sistem Bank!');

  int percobaan = 0;
  bool isAuthenticated = false;

  // Loop autentikasi dengan batasan 3 kali percobaan
  while (percobaan < 3 && !isAuthenticated) {
    stdout.write('Masukkan PIN Anda: ');
    String? inputPin = stdin.readLineSync();

    if (inputPin != null && account.authenticate(inputPin)) {
      isAuthenticated = true;
      print('Autentikasi berhasil! Selamat datang.');
    } else {
      percobaan++;
      print('PIN salah! Percobaan tersisa: ${3 - percobaan}');
    }
  }

  // Jika gagal autentikasi setelah 3 percobaan, keluar
  if (!isAuthenticated) {
    print('Anda telah gagal memasukkan PIN 3 kali. Akses ditolak.');
    return;
  }

  // Jika autentikasi berhasil, tampilkan menu
  while (true) {
    print('\nPilih aksi:');
    print('1. Cek Saldo');
    print('2. Deposit');
    print('3. Withdraw');
    print('4. Ubah Pin');
    print('5. Keluar');

    stdout.write('Masukkan pilihan Anda: ');
    String? pilih = stdin.readLineSync();

    if (pilih == '1') {

      // menampilkan saldo
      print('Saldo Anda saat ini: ${account.saldo}');
    } else if (pilih == '2') {

      // Deposit
      stdout.write('Masukkan jumlah deposit: ');
      String? jumlahInput = stdin.readLineSync();
      double? jumlah = double.tryParse(jumlahInput ?? '');
      if (jumlah != null) {
        account.deposit(jumlah);
      } else {
        print('Input tidak valid.');
      }
    } else if (pilih == '3') {

      // Withdrawl
      stdout.write('Masukkan jumlah penarikan: ');
      String? jumlahInput = stdin.readLineSync();
      double? jumlah = double.tryParse(jumlahInput ?? '');
      if (jumlah != null) {
        account.withdraw(jumlah);
      } else {
        print('Input tidak valid.');
      }
    } else if (pilih == '4') {

      // Ubah PIN
      int percobaan = 0;
      bool isAuthenticated = false;

      // Loop autentikasi dengan batasan 3 kali percobaan
      while (percobaan < 3 && !isAuthenticated) {
        stdout.write('Masukkan PIN Anda: ');
        String? inputPin = stdin.readLineSync();

        if (inputPin != null && account.authenticate(inputPin)) {
          stdout.write('Masukkan PIN baru: ');
          String? jumlah = stdin.readLineSync();
          isAuthenticated = true;
          if (jumlah != null) {
            account.pin = jumlah;
          }
          print('Berhasil merubah pin.');
          break;
        } else {
          percobaan++;
          print('PIN salah! Percobaan tersisa: ${3 - percobaan}');
        }
      }

      // Jika gagal autentikasi setelah 3 percobaan, keluar
      if (!isAuthenticated) {
        print('Anda telah gagal memasukkan PIN 3 kali. Akses ditolak.');
        return;
      }
    } else if (pilih == '5') {

      // keluar
      print('Terima kasih telah menggunakan layanan kami. Sampai jumpa!');
      break;
    } else {
      print('Pilihan tidak valid.');
    }
  }
}

Untitled

plain_texta year ago
import 'dart:io';
class Car {
    int _speed = 0;

    int get speed => _speed;

    set speed(int cekKecepatan) {
        if(cekKecepatan > 200) {
            _speed = cekKecepatan;
        } else {
            print('Ha ha kurang cepat');
            exit(400);
        }
    }
}

void main() {
    Car cobaCek = Car();

    cobaCek.speed = 160;
    var cepat = cobaCek.speed;
    
    print('Kecepatan kamu $cepat');
}

Lihat Mobil

darta year ago
memanggil nama, model, dan tahun mobil
class Kendaraan {
  String nama;
  String model;
  int tahun;

  Kendaraan(this.nama, this.model, this.tahun);

  void sebutMerek() {
    print('Ini mobil $nama $model, tahun $tahun');
  }
}

void main() {
  String nama = 'Mazda';
  String model = 'MX-5';
  int tahun = 2018;
  Kendaraan sebut = Kendaraan(nama, model, tahun);

  sebut.sebutMerek();
}

Tugas kasir

darta year ago
import 'dart:io';

var makanan = {
  'bakso': 15000,
  'mie_ayam': 15000,
  'mie_goreng': 15000,
};
var minuman = {
  'es_teh': 5000,
  'es_jeruk': 6000,
  'jamu_kuat': 80000,
};

num hasilMakan = 0;
num hasilMinum = 0;

void main() {
  print('==========\nSelamat datang diwarung Ahmad Abdillah\n');
  stdout.write('Berapa makanan yang mau kamu beli : ');
  int? jumlahMakan = int.parse(stdin.readLineSync()!);

  for (var i = 0; i < jumlahMakan; i++) {
    hasilMakan += pilihMenuMakan();
  }

  // print(hasilMakan);

  stdout.write('Berapa minuman yang mau kamu beli : ');
  int? jumlahMinum = int.parse(stdin.readLineSync()!);

  for (var i = 0; i < jumlahMinum; i++) {
    hasilMinum += pilihMenuMinum();
  }

  var total = hasilMakan + hasilMakan;

  print('==========\nTotal pesanan anda adalah Rp $total');
}

num pilihMenuMakan() {
  stdout.write('''==========\n
1. Bakso
2. Mie Ayam
3. Mie Goreng\n''');
  stdout.write('Masukkan nomor menu : ');
  int? nomor = int.parse(stdin.readLineSync()!);

  num total = 0;
  switch (nomor) {
    case 1:
      total += makanan['bakso'] ?? 0;
      break;
    case 2:
      total += makanan['mie_ayam'] ?? 0;
      break;
    case 3:
      total += makanan['mie_goreng'] ?? 0;
      break;
    default:
      print('angka tidak valid');
      pilihMenuMinum();
  }
  return total;
}

num pilihMenuMinum() {
  stdout.write('''==========\n
1. Es Teh
2. Es Jeruk
3. Jamu Kuat\n''');
  stdout.write('Masukkan nomor menu : ');
  int? nomor = int.parse(stdin.readLineSync()!);
  var total = 0;
  switch (nomor) {
    case 1:
      total += minuman['es_teh'] ?? 0;
      break;
    case 2:
      total += minuman['es_jeruk'] ?? 0;
      break;
    case 3:
      total += minuman['jamu_kuat'] ?? 0;
      break;
    default:
      print('angka tidak valid');
      pilihMenuMakan();
  }
  return total;
}
  • Total 6 snippets
  • 1
  • 2