NAMA ANGGOTA :
1. Husnul Fadlilah : 1062240
2. Intan Ayu : 1062242
3. Lucita Aprillia : 1062246
4. Pidaryani : 1062251
5. Rizqi Pratama : 1062255
6. Silvia Agustin : 1062257
KELAS :
2 TRPL B
Penulis
DAFTAR ISI
SETTER GETTER
Setter dan getter penting dalam pemrograman berorientasi objek karena
menyediakan cara untuk mengakses atribut atau bidang pribadi suatu kelas.
Berikut beberapa kesimpulan penting dari hasil pencarian:
- Setter digunakan untuk menetapkan nilai atribut atau bidang yang memiliki
pengubah akses pribadi. Mereka biasanya memiliki pengubah akses publik,
yang berarti mereka dapat diakses oleh kelas lain.
- Setter digunakan untuk mendapatkan nilai atribut atau bidang yang
memiliki pengubah akses ribadi.
- Setter dan getter merangkum data dan mengurangi ketergantungan langsung
pada variabel.
- Getter tidak memiliki tipe pengembalian kosong dan mengembalikan nilai
atribut atau bidang yang diperolehnya.
- Setter memiliki tipe pengembalian kosong dan menetapkan nilai atribut atau
bidang yang disetel.
LIST OF
- List adalah antarmuka untuk koleksi yang menyediakan akses hanya baca
ke elemen-elemennya.
- List tidak mendukung operasi penambahan, penghapusan, atau pembaruan
elemen.
- Implementasi default dari List adalah ArrayList, yang dapat dianggap
sebagai larik yang dapat diubah ukurannya.
MUTABLE LIST OF
- MutableList adalah antarmuka untuk koleksi yang menyediakan operasi
penulisan khusus untuk menambah dan menghapus elemen.
- Dapat menambah, menghapus, dan memperbarui elemen dalam
MutableList.
- MutableList dapat dibuat menggunakan
fungsi mutableListOf() atau toMutableList() untuk mengubah List menjadi
MutableList.
PEWARISAN (INHERITANCE)
- Dalam Kotlin, inheritance memungkinkan untuk mendefinisikan kelas baru
berdasarkan kelas yang sudah ada.
- Kelas yang sudah ada dikenal sebagai superclass atau base class, sedangkan
kelas baru dikenal sebagai subclass atau derived class.
- Subclass mewarisi semua properti dan fungsi dari superclass, dan juga dapat
menambah properti dan fungsi baru atau mengganti properti dan fungsi yang
diwarisi.
- Inheritance memungkinkan untuk penggunaan kembali kode (code
reusability) dan perilaku polimorfik.
- Untuk membuat kelas dapat diwarisi, gunakan kata kunci open sebelum
deklarasi kelas.
Contoh kasus pewarisan:
- open class Hewan(val jenis: String, val habitat: String) adalah class parent
yang memiliki dua parameter yaitu jenis dan habitat. Class ini memiliki dua
function yaitu bergerak() dan makan().
- class Kucing(jenis: String, habitat: String, val nama: String) :
Hewan(jenis,nhabitat) adalah class child yang mewarisi class
parent Hewan. Class ini memiliki dua function tambahan
yaitu meong() dan tidur().
- Pada class Kucing, kita menggunakan keyword : Hewan(jenis,
habitat) untuk menunjukkan bahwa class ini mewarisi class Hewan.
- Pada fun main(), kita membuat object kucing dari class Kucing dengan
parameter Kucing, Darat, dan Tom. Kemudian kita memanggil
function bergerak(), makan(), meong(), dan tidur() dari object kucing.
while (!conn.isClosed) {
if (!peranSudahDipilih) {
peranSudahDipilih = true
pilihSebagai()
}
}
} catch (e: Exception) {
e.printStackTrace()
} finally {
// Close resources in a final block
rs.close()
stmt.close()
conn.close()
}
}
fun pilihSebagai() {
val input = Scanner(System.in)
println("\n===Login Sebagai===")
println("1. Admin")
println("2. Karyawan")
println("0. Hentikan Program")
println("")
print("Pilih >>> ")
try {
val pilihan: Int = input.nextLine().toInt()
when (pilihan) {
0 -> System.exit(0)
1 -> showMenuAdmin()
2 -> showMenuKaryawan()
else -> {
println("!!!Silahkan Pilih Menu Yang
Tersedia!!!")
pilihSebagai()
}
}
} catch (e: Exception) {
e.printStackTrace()
}
}
fun showMenuAdmin() {
var continueShowingMenu = true
while (continueShowingMenu) {
val input = Scanner(System.in)
println("\n===Silahkan Pilih Menu===")
println("1. Tampilkan Data Karyawan")
println("2. Tambah Data Karyawan")
println("3. Tambah Gaji Karyawan")
println("4. Edit Data Karyawan")
println("5. Hapus Data Karyawan")
println("6. Persetujuan Karyawan")
println("7. Tampilkan Data Absensi Karyawan")
println("8. Tampilkan Data Gaji Karyawan")
println("0. Kembali")
println("")
print("Pilih >>> ")
try {
val pilihan: Int = input.nextLine().toInt()
when (pilihan) {
0 -> pilihSebagai()
1 -> TampilDataKaryawan()
2 -> TambahDataKaryawan()
3 -> TambahGaji()
4 -> EditDataKaryawan()
5 -> HapusDataKaryawan()
6 -> {
println("Pilih Menu: ")
println("1. Cuti Hari Ini")
println("2. Tampilkan Seluruh Data")
println("")
print("Pilih >>> ")
val menu: Int = input.nextLine().toInt()
when (menu) {
1 -> Persetujuan()
2 -> PersetujuanSeluruh()
}
}
7 -> DataAbsensiKaryawan()
8 -> DataGajiKaryawan()
else -> println("Silahkan Pilih Menu Yang
Tersedia...")
}
} catch (e: Exception) {
e.printStackTrace()
}
}
}
fun showMenuKaryawan() {
var continueShowingMenu = true
while (continueShowingMenu) {
val input = Scanner(System.in)
println("\n===Silahkan Pilih Menu===")
println("1. Tampilkan Data Karyawan")
println("2. Edit Data Karyawan")
println("3. Pengajuan Cuti")
println("4. Absensi Karyawan")
println("5. Gaji Karyawan")
println("6. Status Cuti")
println("0. Kembali")
println("")
print("Pilih >>> ")
try {
val pilihan: Int = input.nextLine().toInt()
when (pilihan) {
0 -> pilihSebagai()
1 -> {
println("Masukkan ID Karyawan: ")
val idKaryawan = input.nextInt()
TampilDataKaryawan(idKaryawan)
}
2 -> EditDataKaryawan()
3 -> PengajuanCuti()
4 -> AbsensiKaryawan()
5 -> {
println("Masukkan ID Karyawan: ")
val idpegawai = input.nextInt()
DataGajiKaryawan(idpegawai)
}
6 -> {
println("Masukkan ID Karyawan: ")
var idpegawai = input.nextInt()
StatusCuti(idpegawai)
}
}
} catch (e: Exception) {
e.printStackTrace()
}
}
}
while (rs.next()) {
var id_pegawai: Int = rs.getInt("id_pegawai")
var id_departemen: Int = rs.getInt("id_dapartemen")
var nama_lengkap: String =
rs.getString("nama_lengkap")
var jenkel: String = rs.getString("jenkel")
var tmp_lahir: String = rs.getString("tmp_lahir")
var tgl_lahir: String = rs.getString("tgl_lahir")
var alamat: String = rs.getString("alamat")
var tgl_masuk: String = rs.getString("tgl_masuk")
var no_telp: String = rs.getString("no_telp")
println(
"Id_Pegawai: $id_pegawai \n" +
"Id_dapartemen: $id_departemen \n" +
"Nama Lengkap: $nama_lengkap \n" +
"Jenis Kelamin: $jenkel \n" +
"Tempat Lahir: $tmp_lahir \n" +
"Tanggal Lahir: $tgl_lahir \n" +
"Alamat: $alamat \n" +
"Tanggal Masuk: $tgl_masuk \n" +
"No Telpon: $no_telp"
)
}
} catch (e: Exception) {
e.printStackTrace()
}
}
fun PengajuanCuti() {
println("\n=== Pengajuan Cuti ===")
try {
// Input data pengajuan cuti
print("Masukkan ID Karyawan: ")
val idKaryawan = input.nextInt()
input.nextLine()
print("Masukkan Alasan Cuti: ")
val alasanCuti = input.nextLine()
print("Masukkan Tanggal Pengajuan (yyyy-MM-dd): ")
val tanggalPengajuan =
java.sql.Date.valueOf(input.next())
input.nextLine() // Membersihkan newline di buffer
print("Masukkan Tanggal Selesai (yyyy-MM-dd): ")
val tanggalSelesai = java.sql.Date.valueOf(input.next())
input.nextLine() // Membersihkan newline di buffer
fun AbsensiKaryawan() {
println("\n=== Input Absensi Karyawan ===")
try {
// Input data absensi
print("Masukkan ID Karyawan: ")
val idKaryawan = input.nextInt()
input.nextLine()
print("Masukkan Tanggal Absen (yyyy-MM-dd): ")
val tanggalAbsenStr = input.next()
input.nextLine()
val tanggalAbsen = try {
java.sql.Date.valueOf(tanggalAbsenStr)
} catch (ex: Exception) {
println("Format tanggal tidak valid. Pengajuan
absensi dibatalkan.")
return
}
print("Masukkan Jam Datang: ")
val jm_dtng = input.nextLine()
print("Masukkan Jam Pulang: ")
val jm_plng = input.nextLine()
try {
// Assuming you have a connection object named 'conn'
and a statement object named 'stmt'
val sql = "SELECT gaji_total.no_nota,
data_karyawan.nama_lengkap, " +
"data_karyawan.id_pegawai, gaji_total.jmlh_gaji
" +
"FROM gaji_total INNER JOIN data_karyawan " +
"ON gaji_total.id_pegawai =
data_karyawan.id_pegawai " +
"WHERE data_karyawan.id_pegawai = $idKaryawan"
val rs = stmt.executeQuery(sql)
println("====================================")
println("ID Gaji | Nama Karyawan | ID Karyawan | Jumlah
Gaji")
println("====================================")
while (rs.next()) {
val idGaji = rs.getInt("no_nota")
val nama = rs.getString("nama_lengkap")
val idKaryawan = rs.getInt("id_pegawai")
val jumlahGaji = rs.getDouble("jmlh_gaji")
try {
rs = stmt.executeQuery(sql)
println("====================================")
println("ID Karyawan | Nama Karyawan | Lama Cuti |
Status")
println("====================================")
while (rs.next()) {
val idKaryawan = rs.getInt("id_pegawai")
val nama = rs.getString("nama_lengkap")
val lama = rs.getString("lama_cuti")
val status = rs.getString("status_cuti")
fun TampilDataKaryawan() {
val sql = "SELECT * FROM data_karyawan"
try {
rs = stmt.executeQuery(sql)
println("=====================")
println("Tampil Data Karyawan")
println("=====================")
while (rs.next()) {
var id_pegawai: Int = rs.getInt("id_pegawai")
var id_departemen: Int = rs.getInt("id_dapartemen")
var nama_lengkap: String =
rs.getString("nama_lengkap")
var jenkel: String = rs.getString("jenkel")
var tmp_lahir: String = rs.getString("tmp_lahir")
var tgl_lahir: String = rs.getString("tgl_lahir")
var alamat: String = rs.getString("alamat")
var tgl_masuk: String = rs.getString("tgl_masuk")
var no_telp: String = rs.getString("no_telp")
}
} catch (e: Exception) {
e.printStackTrace()
}
}
fun TambahDataKaryawan() {
try {
print("Id Dapartemen: ")
var id_dapartemen = input.nextInt()
input.nextLine()
print("Nama: ")
var nama_lengkap = input.nextLine()
print("Jenis Kelamin: ")
var jenkel = input.nextLine()
print("Tempat Lahir: ")
var tmp_lahir = input.nextLine()
print("Tanggal Lahir: ")
var tgl_lahir = input.nextLine()
print("Alamat: ")
var alamat = input.nextLine()
print("Tanggal Masuk: ")
var tgl_masuk = input.nextLine()
print("nomor Telpon: ")
var no_telp = input.nextLine()
val sql =
"INSERT INTO data_karyawan (id_dapartemen,
nama_lengkap, jenkel, tmp_lahir, tgl_lahir, alamat, tgl_masuk,
no_telp) VALUES ('$id_dapartemen', '$nama_lengkap', '$jenkel',
'$tmp_lahir', '$tgl_lahir', '$alamat', '$tgl_masuk',
'$no_telp')"
stmt.execute(sql)
println("Data Berhasil Disimpan")
} catch (e: Exception) {
e.printStackTrace()
}
}
fun TambahGaji() {
try {
print("No Nota: ")
var id_nota = input.nextInt()
input.nextLine() // Consume the newline character left
in the buffer
print("ID Pegawai: ")
var id_karyawan = input.nextInt()
input.nextLine()
print("No Slip: ")
var no_slip = input.nextInt()
input.nextLine()
print("Jumlah Gaji: ")
var jmlh = input.nextLine()
stmt.execute(sql)
println("Data Berhasil Disimpan")
} catch (e: Exception) {
e.printStackTrace()
}
}
fun EditDataKaryawan() {
try {
print("ID Yang Mau Diedit: ")
var id_pegawai = input.nextInt()
print("Nama: ")
var nama_lengkap = input.nextLine()
print("Jenis Kelamin: ")
var jenkel = input.nextLine()
print("Tempat Lahir: ")
var tmp_lahir = input.nextLine()
print("Tanggal Lahir: ")
var tgl_lahir = input.nextLine()
print("Alamat: ")
var alamat = input.nextLine()
print("Tanggal Masuk: ")
var tgl_masuk = input.nextLine()
print("Nomor Telpon: ")
var no_telp = input.nextLine()
var sql =
"UPDATE data_karyawan SET
id_dapartemen='$id_dapartemen', nama_lengkap='$nama_lengkap',
jenkel='$jenkel', tmp_lahir='$tmp_lahir',
tgl_lahir='$tgl_lahir', alamat='$alamat',
tgl_masuk='$tgl_masuk', no_telp='$no_telp' WHERE
id_pegawai=$id_pegawai "
stmt.execute(sql)
println("Data Berhasil Diupdate")
} catch (e: Exception) {
e.printStackTrace()
}
}
fun HapusDataKaryawan() {
try {
print("ID Yang Mau Dihapus: ")
var id_pegawai = input.nextInt()
var sql = "DELETE FROM data_karyawan WHERE
id_pegawai=$id_pegawai"
stmt.execute(sql)
println("Data Berhasil Dihapus")
} catch (e: Exception) {
e.printStackTrace()
}
}
fun Persetujuan() {
println("\n=== Persetujuan Cuti ===")
try {
// Ambil data pengajuan cuti yang menunggu persetujuan
dengan tanggal pengajuan hari ini
val selectQuery =
"SELECT cuti.no, cuti.id_pegawai,
data_karyawan.nama_lengkap, cuti.tgl_mulai, cuti.keterangan " +
"FROM cuti " +
"INNER JOIN data_karyawan ON cuti.id_pegawai
= data_karyawan.id_pegawai " +
"WHERE cuti.status_cuti = 'Menunggu
Persetujuan' AND DATE(cuti.tgl_mulai) = CURRENT_DATE"
val selectStmt = conn.prepareStatement(selectQuery)
val rs = selectStmt.executeQuery()
println("==================================")
println("ID Pengajuan | ID Karyawan | Nama Karyawan |
Tanggal Pengajuan | Alasan")
println("==================================")
while (rs.next()) {
val idPengajuan = rs.getInt("no")
val idKaryawan = rs.getInt("id_pegawai")
val nama = rs.getString("nama_lengkap")
val tanggalPengajuan = rs.getDate("tgl_mulai")
val alasan = rs.getString("keterangan")
if (idPengajuan != 0) {
// Admin memutuskan untuk menyetujui atau menolak
pengajuan cuti
print("Apakah Anda menyetujui pengajuan cuti ini?
(ya/tidak): ")
val keputusan = input.next().toLowerCase()
conn.prepareStatement(updateQuery).use { updateStmt
->
updateStmt.setInt(1, idPengajuan)
val affectedRows = updateStmt.executeUpdate()
if (affectedRows > 0) {
println("Keputusan pengajuan cuti berhasil
diupdate.")
} else {
println("Gagal mengupdate keputusan
pengajuan cuti.")
}
}
}
fun PersetujuanSeluruh() {
println("\n=== Persetujuan Cuti ===")
try {
// Ambil data pengajuan cuti yang menunggu persetujuan
dengan tanggal pengajuan hari ini
val selectQuery =
"SELECT cuti.no, cuti.id_pegawai,
data_karyawan.nama_lengkap, cuti.tgl_mulai, cuti.keterangan " +
"FROM cuti " +
"INNER JOIN data_karyawan ON cuti.id_pegawai
= data_karyawan.id_pegawai " +
"WHERE cuti.status_cuti = 'Menunggu
Persetujuan'"
val selectStmt = conn.prepareStatement(selectQuery)
val rs = selectStmt.executeQuery()
println("==================================")
println("ID Pengajuan | ID Karyawan | Nama Karyawan |
Tanggal Pengajuan | Alasan")
println("==================================")
while (rs.next()) {
val idPengajuan = rs.getInt("no")
val idKaryawan = rs.getInt("id_pegawai")
val nama = rs.getString("nama_lengkap")
val tanggalPengajuan = rs.getDate("tgl_mulai")
val alasan = rs.getString("keterangan")
if (idPengajuan != 0) {
// Admin memutuskan untuk menyetujui atau menolak
pengajuan cuti
print("Apakah Anda menyetujui pengajuan cuti ini?
(ya/tidak): ")
val keputusan = input.next().toLowerCase()
conn.prepareStatement(updateQuery).use { updateStmt
->
updateStmt.setInt(1, idPengajuan)
val affectedRows = updateStmt.executeUpdate()
if (affectedRows > 0) {
println("Keputusan pengajuan cuti berhasil
diupdate.")
} else {
println("Gagal mengupdate keputusan
pengajuan cuti.")
}
}
}
fun DataAbsensiKaryawan() {
println("\n=== Data Absensi Karyawan ===")
try {
// Ambil data absensi dari tabel absensi
val selectQuery = "SELECT absensi.kd_absen,
data_karyawan.nama_lengkap, " +
"absensi.id_pegawai, absensi.tgl_absen " +
"FROM absensi INNER JOIN data_karyawan " +
"ON absensi.id_pegawai =
data_karyawan.id_pegawai"
val selectStmt = conn.prepareStatement(selectQuery)
val rs = selectStmt.executeQuery()
println("==================================")
println("ID Absensi | Nama Karyawan | ID Karyawan |
Tanggal Absen")
println("==================================")
while (rs.next()) {
val idAbsensi = rs.getInt("kd_absen")
val nama = rs.getString("nama_lengkap")
val idKaryawan = rs.getInt("id_pegawai")
val tanggalAbsen = rs.getDate("tgl_absen")
fun DataGajiKaryawan() {
println("\n=== Data Gaji Karyawan ===")
try {
// Ambil data gaji dari tabel gaji
val selectQuery = "SELECT gaji_total.no_nota,
data_karyawan.nama_lengkap, " +
"data_karyawan.id_pegawai,
dapartemen.dapartemen, gaji_total.jmlh_gaji " +
"FROM gaji_total " +
"INNER JOIN data_karyawan ON
gaji_total.id_pegawai = data_karyawan.id_pegawai " +
"INNER JOIN dapartemen ON
data_karyawan.id_dapartemen = dapartemen.id_dapartemen"
val selectStmt = conn.prepareStatement(selectQuery)
val rs = selectStmt.executeQuery()
println("====================================")
println("ID Gaji | ID Karyawan | Nama Karyawan |
Dapartemen | Jumlah Gaji")
println("====================================")
while (rs.next()) {
val idGaji = rs.getInt("no_nota")
val idKaryawan = rs.getInt("id_pegawai")
val nama = rs.getString("nama_lengkap")
val dapar = rs.getString("dapartemen")
val jumlahGaji = rs.getDouble("jmlh_gaji")
3. Database
➢ Absensi
➢ Cuti
➢ Dapartemen
➢ Data_Karyawan
➢ Gaji_Total
4. Output
• Sebagai admin
===Login Sebagai===
1. Admin
2. Karyawan
0. Hentikan Program
Pilih >>> 1
Pilih >>> 1
=====================
Tampil Data Karyawan
=====================
Id_Pegawai: 1, Id_dapartemen: 904, Nama Lengkap: husnul, Jenis
Kelamin: oer, Tempat Lahir: sungai, Tanggal Lahir: 221104, Alamat:
sbakwecb wechie, Tanggal Masuk: 0082913, No Telpon: 0987668
Id_Pegawai: 2, Id_dapartemen: 910, Nama Lengkap: Intan Ayu, Jenis
Kelamin: Perempuan, Tempat Lahir: Belinyu, Tanggal Lahir: 16 11
2004, Alamat: Saber, Tanggal Masuk: 2023 12 21, No Telpon:
08315463748
Id_Pegawai: 4, Id_dapartemen: 900, Nama Lengkap: pidsil, Jenis
Kelamin: perempuan, Tempat Lahir: mabet, Tanggal Lahir: 17 11
2004, Alamat: cukruk, Tanggal Masuk: 14, No Telpon: 0987
Id_Pegawai: 6, Id_dapartemen: 911, Nama Lengkap: Pidaryani, Jenis
Kelamin: Perempuan, Tempat Lahir: Toboali, Tanggal Lahir: 12 09
2003, Alamat: Toboali, Tanggal Masuk: 2023 20 12, No Telpon:
08923736376
Pilih >>> 2
Id Dapartemen: 900
Nama: Lucita
Jenis Kelamin: Perempuan
Tempat Lahir: Mabet
Tanggal Lahir: 26 April 2004
Alamat: Mabet
Tanggal Masuk: 20 Januari 2019
nomor Telpon: 0897219
Data Berhasil Disimpan
Pilih >>> 3
No Nota: 89
ID Pegawai: 10
No Slip: 78
Jumlah Gaji: 5000000
Data Berhasil Disimpan
Pilih >>> 4
ID Yang Mau Diedit: 4
Id Dapartemen: 901
Nama: Silvia
Jenis Kelamin: Perempuan
Tempat Lahir: Sungailiat
Tanggal Lahir: 17 Agustus 2004
Alamat: Matras
Tanggal Masuk: 8 April 2017
Nomor Telpon: 0863552
Data Berhasil Diupdate
Pilih >>> 1
=====================
Tampil Data Karyawan
=====================
Id_Pegawai: 1, Id_dapartemen: 904, Nama Lengkap: husnul, Jenis
Kelamin: oer, Tempat Lahir: sungai, Tanggal Lahir: 221104, Alamat:
sbakwecb wechie, Tanggal Masuk: 0082913, No Telpon: 0987668
Id_Pegawai: 2, Id_dapartemen: 910, Nama Lengkap: Intan Ayu, Jenis
Kelamin: Perempuan, Tempat Lahir: Belinyu, Tanggal Lahir: 16 11
2004, Alamat: Saber, Tanggal Masuk: 2023 12 21, No Telpon:
08315463748
Id_Pegawai: 4, Id_dapartemen: 901, Nama Lengkap: Silvia, Jenis
Kelamin: Perempuan, Tempat Lahir: Sungailiat, Tanggal Lahir: 17
Agustus 2004, Alamat: Matras, Tanggal Masuk: 8 April 2017, No
Telpon: 0863552
Id_Pegawai: 6, Id_dapartemen: 911, Nama Lengkap: Pidaryani, Jenis
Kelamin: Perempuan, Tempat Lahir: Toboali, Tanggal Lahir: 12 09
2003, Alamat: Toboali, Tanggal Masuk: 2023 20 12, No Telpon:
08923736376
Id_Pegawai: 10, Id_dapartemen: 900, Nama Lengkap: Lucita, Jenis
Kelamin: Perempuan, Tempat Lahir: Mabet, Tanggal Lahir: 26 April
2004, Alamat: Mabet, Tanggal Masuk: 20 Januari 2019, No Telpon:
0897219
Pilih >>> 5
ID Yang Mau Dihapus: 6
Data Berhasil Dihapus
Pilih >>> 1
=====================
Tampil Data Karyawan
=====================
Id_Pegawai: 1, Id_dapartemen: 904, Nama Lengkap: husnul, Jenis
Kelamin: oer, Tempat Lahir: sungai, Tanggal Lahir: 221104, Alamat:
sbakwecb wechie, Tanggal Masuk: 0082913, No Telpon: 0987668
Id_Pegawai: 2, Id_dapartemen: 910, Nama Lengkap: Intan Ayu, Jenis
Kelamin: Perempuan, Tempat Lahir: Belinyu, Tanggal Lahir: 16 11
2004, Alamat: Saber, Tanggal Masuk: 2023 12 21, No Telpon:
08315463748
Id_Pegawai: 4, Id_dapartemen: 901, Nama Lengkap: Silvia, Jenis
Kelamin: Perempuan, Tempat Lahir: Sungailiat, Tanggal Lahir: 17
Agustus 2004, Alamat: Matras, Tanggal Masuk: 8 April 2017, No
Telpon: 0863552
Id_Pegawai: 10, Id_dapartemen: 900, Nama Lengkap: Lucita, Jenis
Kelamin: Perempuan, Tempat Lahir: Mabet, Tanggal Lahir: 26 April
2004, Alamat: Mabet, Tanggal Masuk: 20 Januari 2019, No Telpon:
0897219
Pilih >>> 6
Pilih Menu:
1. Cuti Hari Ini
2. Tampilkan Seluruh Data
Pilih >>> 1
Pilih >>> 6
Pilih Menu:
1. Cuti Hari Ini
2. Tampilkan Seluruh Data
Pilih >>> 1
Pilih >>> 6
Pilih Menu:
1. Cuti Hari Ini
2. Tampilkan Seluruh Data
Pilih >>> 2
Pilih >>> 6
Pilih Menu:
1. Cuti Hari Ini
2. Tampilkan Seluruh Data
Pilih >>> 2
=== Persetujuan Cuti ===
==================================
ID Pengajuan | ID Karyawan | Nama Karyawan | Tanggal Pengajuan |
Alasan
==================================
8 | 2 | Intan Ayu | 2023-12-19 | sakit
Pilih ID Pengajuan untuk disetujui (0 untuk kembali): 8
Apakah Anda menyetujui pengajuan cuti ini? (ya/tidak): ya
Keputusan pengajuan cuti berhasil diupdate.
Pilih >>> 7
Pilih >>> 8
Pilih >>> 2
Pilih >>> 1
Masukkan ID Karyawan:
2
=====================
Tampil Data Karyawan
=====================
Id_Pegawai: 2
Id_dapartemen: 901
Nama Lengkap: Intan Ayu
Jenis Kelamin: Perempuan
Tempat Lahir: Belinyu
Tanggal Lahir: 16 11 2004
Alamat: Saber
Tanggal Masuk: 2023 12 21
No Telpon: 08315463748
Pilih >>> 3
Pilih >>> 4
Pilih >>> 5
Masukkan ID Karyawan:
2
Pilih >>> 6
Masukkan ID Karyawan:
2