0% menganggap dokumen ini bermanfaat (0 suara)
12 tayangan4 halaman

Program Pendaftaran Siswa UAS

Diunggah oleh

reyhanw969
Hak Cipta
© All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
12 tayangan4 halaman

Program Pendaftaran Siswa UAS

Diunggah oleh

reyhanw969
Hak Cipta
© All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd

PROJECT UAS

STRUKTUR DATA
O
L
E
H
KELOMPOK 1

NAMA : Olivia Rilan Jedahul (12230090)


Muhamad Rehan Fadilah (12230095)

Andika Bayu (12230044)

Dini Intan Febrianti (11230121)


PROGRAM PENDAFTARAN SISWA

from collections import deque

# Struktur data list untuk menyimpan data siswa yang terdaftar


siswa_terdaftar = []

# Struktur data linked list untuk menyimpan data siswa yang telah lulus
class Node:
def __init__(self, data=None):
[Link] = data
[Link] = None

class LinkedList:
def __init__(self):
[Link] = None

def insert(self, data):


if not [Link]:
[Link] = Node(data)
else:
current = [Link]
while [Link]:
current = [Link]
[Link] = Node(data)

def display(self):
current = [Link]
while current:
print([Link])
current = [Link]

siswa_lulus = LinkedList()

# Struktur data stack untuk menyimpan data siswa yang baru mendaftar
stack_siswa_baru = []

# Struktur data queue untuk menyimpan data siswa yang akan dihapus
queue_siswa_hapus = deque()

# Fungsi untuk mendaftarkan siswa baru


def daftar_siswa(nama, nisn):
global siswa_terdaftar, stack_siswa_baru
siswa_terdaftar.append((nama, nisn))
stack_siswa_baru.append((nama, nisn))
print(f"Siswa {nama} dengan NISN {nisn} telah terdaftar.")

# Fungsi untuk menghapus siswa yang telah lulus


def hapus_siswa(nisn):
global siswa_terdaftar, siswa_lulus, queue_siswa_hapus
for i, (nama, nisn_) in enumerate(siswa_terdaftar):
if nisn_ == nisn:
siswa_lulus.insert((nama, nisn))
queue_siswa_hapus.append((nama, nisn))
del siswa_terdaftar[i]
print(f"Siswa {nama} dengan NISN {nisn} telah dihapus.")
return
print(f"Siswa dengan NISN {nisn} tidak ditemukan.")

# Fungsi untuk menampilkan daftar siswa yang terdaftar


def tampilkan_siswa():
global siswa_terdaftar
print("Daftar Siswa yang Terdaftar:")
for nama, nisn in siswa_terdaftar:
print(f"{nama} - {nisn}")

# Fungsi untuk mencari siswa berdasarkan nama atau NISN


def cari_siswa(nama_or_nisn):
global siswa_terdaftar
for nama, nisn in siswa_terdaftar:
if nama == nama_or_nisn or nisn == nama_or_nisn:
print(f"Siswa {nama} dengan NISN {nisn} ditemukan.")
return
print(f"Siswa dengan nama atau NISN {nama_or_nisn} tidak
ditemukan.")

# Fungsi untuk menghitung jumlah siswa yang terdaftar


def hitung_siswa():
global siswa_terdaftar
print(f"Jumlah siswa yang terdaftar: {len(siswa_terdaftar)}")

# Menu program
def main():
while True:
print("Menu:")
print("1. Daftar Siswa Baru")
print("2. Hapus Siswa yang Telah Lulus")
print("3. Tampilkan Daftar Siswa")
print("4. Cari Siswa")
print("5. Hitung Jumlah Siswa")
print("6. Keluar")

pilihan = input("Pilih menu (1-6): ")

if pilihan == '1':
nama = input("Masukkan nama siswa: ")
nisn = input("Masukkan NISN siswa: ")
daftar_siswa(nama, nisn)
elif pilihan == '2':
nisn = input("Masukkan NISN siswa yang akan dihapus: ")
hapus_siswa(nisn)
elif pilihan == '3':
tampilkan_siswa()
elif pilihan == '4':
nama_or_nisn = input("Masukkan nama atau NISN siswa: ")
cari_siswa(nama_or_nisn)
elif pilihan == '5':
hitung_siswa()
elif pilihan == '6':
print("Keluar dari program.")
break
else:
print("Pilihan tidak valid, silakan coba lagi.")

if __name__ == "__main__":
main()

Anda mungkin juga menyukai