API Login dan Logout
phpa year ago
// 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
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;
}