Data Science - Tugas Personal ke-1 Week 2

Individual Assignment Data Science Python Language


Permasalahan

Topik Pengenalan Bahasa Python
Sub topik Control Flow dan Looping
Referensi LN

Dibawah ini adalah data karyawan suatu perusahaan swasta yang datang ke perusahaan menggunakan kendaraan pribadi atau kendaraan umum.

No. Jenis Kelamin Umur Karyawan Gaji Transportasi
1 Laki-Laki 20 8.000.000 Kendaraan pribadi
2 Laki-Laki 35 14.000.000 Kendaraan umum
3 Perempuan 26 10.000.000 Kendaraan umum
4 Perempuan 27 12.000.000 Kendaraan pribadi
5 Laki-Laki 21 9.000.000 Kendaraan pribadi
6 Laki-Laki 22 11.000.000 Kendaraan pribadi
7 Perempuan 32 15.000.000 Kendaraan umum
8 Perempuan 26 8.000.000 Kendaraan umum
9 Laki-Laki 25 9.000.000 Kendaraan umum
10 Perempuan 20 10.000.000 Kendaraan pribadi

Berdasarkan data pada tabel, buatlah code program Python dan berikan screen shoot hasil outputnya.

  1. Menggunakan control flow untuk menentukan jenis jabatan berdasarkan Gaji

    • Gaji = 8 juta – 9 juta, jabatan = officer

    • Gaji = 10 juta – 11 juta, jabatan = supervisor

    • Gaji = 12 juta – 14 juta, jabatan = asisten manajer

    • Gaji >= 15 juta, jabatan = manager

  2. Menggunakan looping tampilkan gaji terbesar dan gaji terkecil

     

Penyelesaian

  1. Control Flow untuk Menentukan Jabatan

    # Membuat fungsi untuk menentukan jabatan berdasarkan gaji
    def assign_jabatan(gaji):
      if 8000000 <= gaji <= 9000000:
          return 'Officer'
      elif 10000000 <= gaji <= 11000000:
          return 'Supervisor'
      elif 12000000 <= gaji <= 14000000:
          return 'Asisten Manajer'
      elif gaji >= 15000000:
          return 'Manager'
      else:
          return 'Tidak Diketahui'


    # Menambahkan kolom Jabatan ke setiap baris data
    for row in data:
      row.append(assign_jabatan(row[3]))

    Penjelasan :

    • Fungsi assign_jabatan mengambil gaji sebagai parameter dan mengembalikan jabatan berdasarkan aturan yang diberikan.

    • Dalam loop for, fungsi ini dipanggil untuk setiap baris data, dan hasilnya ditambahkan ke baris sebagai kolom baru dengan nama "Jabatan".

       

  1. Looping untuk Menampilkan Gaji Terbesar dan Terkecil:

    # Menentukan lebar kolom berdasarkan nilai terpanjang dalam setiap kolom
    column_widths = [len(str(header[i])) for i in range(len(header))]
    for row in data:
      for i in range(len(row)):
          column_widths[i] = max(column_widths[i], len(str(row[i])))


    # Menampilkan header tabel
    print("\t|\t".join(f"{header[i]:<{column_widths[i]}}" for i in range(len(header))))
    print("--" * (sum(column_widths) + len(column_widths) - 1))


    # Menampilkan data karyawan dengan jabatan
    for row in data:
      row.append(assign_jabatan(row[3]))  # Menambahkan kolom Jabatan ke setiap baris data
      print("\t|\t".join(f"{str(row[i]):<{column_widths[i]}}" for i in range(len(header))))

    Penjelasan :

    • Dalam loop pertama, panjang maksimum setiap kolom dihitung untuk memformat output tabel nanti.

    • Output tabel dibuat dengan memastikan setiap kolom memiliki lebar yang sesuai.

    • Data karyawan, termasuk jabatan yang baru ditentukan, dicetak dalam format tabel dengan lebar kolom yang telah dihitung sebelumnya.

       

Full sourcecode

# Data karyawan
data = [
  [1, 'Laki-Laki', 20, 8000000, 'Kendaraan pribadi'],
  [2, 'Laki-Laki', 35, 14000000, 'Kendaraan umum'],
  [3, 'Perempuan', 26, 10000000, 'Kendaraan umum'],
  [4, 'Perempuan', 27, 12000000, 'Kendaraan pribadi'],
  [5, 'Laki-Laki', 21, 9000000, 'Kendaraan pribadi'],
  [6, 'Laki-Laki', 22, 11000000, 'Kendaraan pribadi'],
  [7, 'Perempuan', 32, 15000000, 'Kendaraan umum'],
  [8, 'Perempuan', 26, 8000000, 'Kendaraan umum'],
  [9, 'Laki-Laki', 25, 9000000, 'Kendaraan umum'],
  [10, 'Perempuan', 20, 10000000, 'Kendaraan pribadi']
]


# Menambahkan kolom Jabatan berdasarkan Gaji
def assign_jabatan(gaji):
  if 8000000 <= gaji <= 9000000:
      return 'Officer'
  elif 10000000 <= gaji <= 11000000:
      return 'Supervisor'
  elif 12000000 <= gaji <= 14000000:
      return 'Asisten Manajer'
  elif gaji >= 15000000:
      return 'Manager'
  else:
      return 'Tidak Diketahui'


# Membuat header untuk tabel
header = ["No.", "Jenis Kelamin", "Umur Karyawan", "Gaji", "Transportasi", "Jabatan"]


# Menghitung lebar kolom berdasarkan nilai terpanjang dalam setiap kolom
column_widths = [len(str(header[i])) for i in range(len(header))]
for row in data:
  for i in range(len(row)):
      column_widths[i] = max(column_widths[i], len(str(row[i])))


# Menampilkan header tabel
print("\t|\t".join(f"{header[i]:<{column_widths[i]}}" for i in range(len(header))))
print("--" * (sum(column_widths) + len(column_widths) - 1))


# Menampilkan data karyawan dengan jabatan
for row in data:
  row.append(assign_jabatan(row[3]))  # Menambahkan kolom Jabatan ke setiap baris data
  print("\t|\t".join(f"{str(row[i]):<{column_widths[i]}}" for i in range(len(header))))


# Sorting data berdasarkan gaji
data.sort(key=lambda x: x[3])


# Menampilkan gaji terkecil dan terbesar setelah sorting
print("\nGaji terkecil:", data[0][3])
print("Gaji terbesar:", data[-1][3])

live code : https://replit.com/@DikhiMartin1/Individual-Assignment-1-Data-Science-Control-Flow-dan-Loo#main.py

 

Simulasi

Berikut adalah simulasi hasil dari output : img

Live simulation : https://asciinema.org/a/620815

 

Korelasi dengan Ilmu Data Science:

  • Control Flow (Decision Making) : Pada langkah pertama, control flow digunakan untuk membuat keputusan (decision) berdasarkan nilai gaji, yang merupakan aspek umum dalam pemrosesan data dan analisis.

  • Looping (Iterative Process) : Langkah kedua menggunakan looping untuk menampilkan data dengan memastikan format tabel yang rapi. Ini mencerminkan prinsip iteratif dalam ilmu data science, di mana seringkali kita perlu mengulang proses untuk menganalisis atau memanipulasi data.

  • Data Manipulation: Penambahan kolom "Jabatan" pada setiap baris adalah contoh manipulasi data, yang merupakan bagian penting dari data science untuk membuat data lebih informatif dan siap untuk analisis lebih lanjut.

  • Data Presentation : Format output tabel yang rapi membantu dalam presentasi data, yang merupakan aspek kritis dalam komunikasi hasil analisis data kepada pemangku kepentingan lainnya dalam organisasi.

 

Kesimpulan

Artikel ini memperlihatkan bagaimana Python dapat digunakan untuk menganalisis data karyawan dan menentukan jabatan berdasarkan gaji, serta menampilkan informasi gaji terkecil dan terbesar. Melalui penggunaan kontrol alur dan pengulangan, proses tersebut diilustrasikan dengan jelas.

 

Referensi

Grus, J. (2019). Data science from scratch: first principles with python. O'Reilly Media.

Cuadrado-Gallego, J. J., & Demchenko, Y. (2023). Introduction to data science and data analytics. In Springer eBooks (pp. 1–44). https://doi.org/10.1007/978-3-031-39129-3_1

Bagikan postingan ini

Penulis
Dikhi Martin

Dikhi MartinSoftware Engineer