Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file not shown.
202 changes: 202 additions & 0 deletions Chapter 4/D4 TI C/Ariq Rafi Kusumah (1184076)/main.tex
Original file line number Diff line number Diff line change
@@ -0,0 +1,202 @@
\documentclass[12pt, times new roman]{report}
\usepackage[utf8]{inputenc}
\usepackage{color}
\usepackage{listings}
\usepackage{float}
\usepackage{graphicx}

\definecolor{codegreen}{rgb}{0,0.6,0}
\definecolor{codegray}{rgb}{0.5,0.5,0.5}
\definecolor{codepurple}{rgb}{0.58,0,0.82}
\definecolor{backcolour}{rgb}{0.95,0.95,0.92}

\lstdefinestyle{mystyle}{
backgroundcolor=\color{backcolour},
commentstyle=\color{codegreen},
keywordstyle=\color{magenta},
numberstyle=\tiny\color{codegray},
stringstyle=\color{codepurple},
basicstyle=\footnotesize,
breakatwhitespace=false,
breaklines=true,
captionpos=b,
keepspaces=true,
numbers=left,
numbersep=5pt,
showspaces=false,
showstringspaces=false,
showtabs=false,
tabsize=2,
language=python
}

\lstset{style=mystyle}

\title{Tugas Pemrograman Chapter 4}
\author{Ariq rafi kusumah (1184076)}
\date{\today}

\begin{document}

\maketitle

\chapter{Teori}

\section{Apa itu fungsi file CVS,sejarah dan contoh}

\subsection{Fungsi File CVS}
\hspace{0.5cm}Format file csv Comma Separated Values yaitu suatu format data pada
basis data dimana setiap record yang dapat dipisahkan dengan menggunakan tanda koma (‘,’) atau juga bisa dengan menggunakan titik koma (‘;’)
sebagai tanda pemisah antara datu elemen dengan elemen yang lainnya.
Selain bahasa programnya yang sederhana, format ini juga dapat dibuka
dengan menggunakan berbagai text-editor seperti Notepad, Wordpad, dan
MS Excel.

\subsection{Sejarah file CVS}

\hspace{0.5cm}Nilai yang dipisahkan oleh koma adalah format data yang memberi tanggal lebih awal pada komputer pribadi lebih dari satu dekade: kompiler
IBM Fortran (level H extended) di bawah OS / 360 mendukungnya pada
tahun 1972. Input / output yang diarahkan oleh daftar (”bentuk bebas”)
didefinisikan dalam FORTRAN 77, disetujui pada tahun 1978. Input yang
diarahkan daftar menggunakan koma atau spasi untuk pembatas, sehingga
string karakter yang tidak dikutip tidak dapat mengandung koma atau
spasi.\\

Nama (nilai dipisahkan koma) dan singkatan (CSV) digunakan pada
tahun 1983. Manual untuk komputer Osborne Executive, yang menggabungkan SuperCalc spreadsheet, mendokumentasikan konvensi kutipan
CSV yang memungkinkan string berisi koma yang disematkan, tetapi manual tersebut tidak menentukan konvensi untuk menyematkan tanda kutip
dalam string yang dikutip. Daftar nilai yang dipisahkan koma lebih mudah untuk diketik (misalnya ke dalam kartu berlubang) daripada data
yang selaras dengan kolom tetap dan cenderung menghasilkan hasil yang
salah jika suatu nilai dilubangi satu kolom dari lokasi yang dituju.\\

Pada 2014 IETF menerbitkan RFC7111 yang menjelaskan aplikasi fragmen URI ke dokumen CSV. RFC7111 menentukan bagaimana rentang
baris, kolom, dan sel dapat dipilih dari dokumen CSV menggunakan indeks posisi. Pada 2015 W3C, dalam upaya meningkatkan CSV dengan
semantik formal, mempublikasikan draft rekomendasi pertama untuk standar metadata CSV, yang dimulai sebagai rekomendasi pada bulan Desember tahun yang sama.

\subsection{Contoh}

\lstinputlisting[language=Python]{src/contoh.csv}

\section{Aplikasi-aplikasi apa saja yang bisa menciptakan file CVS}
\begin{enumerate}
\item Text Editor (Notepad, Wordpad, dll)
\item Spreadsheet (Microsoft Excel)
\end{enumerate}

\section{Cara menulis dan membaca file CVS di excel atau spreadsheet}

\begin{enumerate}
\item Pertama, Membuka Excle
\item Isikan Seperti di gambar ini :
\begin{figure}[h]
\centering
\includegraphics[scale=0.7]{figures/Make1.PNG}
\caption{Mengisikan Kolom}
\label{fig:my_label}
\end{figure}
\\
\\
\item Setelah Mengisi datanya, langsung ke tahap save file dengan format CVS.
\begin{figure}[ht]
\centering
\includegraphics[scale=0.5]{figures/Make2.PNG}
\caption{Save File Format}
\label{fig:my_label}
\end{figure}
\item File CVS telah terbuat.
\end{enumerate}

\newpage

\section{Sejarah Library CVS}
\hspace{0.5cm}Format yang disebut CSV Comma Separated Values adalah format impor
dan ekspor paling umum untuk spreadsheet dan basis data. Format CSV digunakan selama bertahun-tahun sebelum upaya untuk menggambarkan format
dengan cara standar di RFC 4180. Kurangnya standar yang didefinisikan dengan baik berarti bahwa perbedaan halus sering ada dalam data yang diproduksi
dan dikonsumsi oleh aplikasi yang berbeda. Perbedaan-perbedaan ini dapat
membuatnya menjengkelkan untuk memproses file CSV dari berbagai sumber\\

Namun, sementara pembatas dan mengutip karakter bervariasi, format keseluruhan cukup mirip sehingga dimungkinkan untuk menulis satu modul yang
dapat secara efisien memanipulasi data seperti itu, menyembunyikan detail
membaca dan menulis data dari programmer. Modul csv mengimplementasikan
kelas untuk membaca dan menulis data tabular dalam format CSV.

\section{Sejarah Library Pandas}
\hspace{0.7cm}Pandas adalah toolkit yang powerfull sebagai alat analisis data dan struktur
untuk bahasa pemrograman Python. Dengan menggunakan pandas kita dapat
mengolah data dengan mudah, salah satu fiturnya adalah Dataframe. Dengan
adanya fitur dataframe kita dapat membaca sebuah file dan menjadikannya tabble serta juga dapat mengolah suatu data dengan menggunakan operasi seperti
join, distinct, group by, agregasi, dan lain-lain yang terdapat pada SQL. Banyak
format file yang dapat dibaca menggunakan Pandas, seperti file .txt, .csv, .tsv
dan lainnya. Agar lebih jelas mari kita mencobanya secara langsung.

\section{Fungsi-fungsi yang terdapat di library csv}
\begin{enumerate}
\item writer, untuk menulis atau membuat sebuah file csv dengan record didalamnya.
\item reader, untuk membaca semua record yang berada didalam file csv.
\item register dialect, untuk mendaftarkan suatu dialect kedalam sebuah kelas atau subkelas.
\item unregister dialect, untuk menghapus sebuah dialect dari daftar dialect.
\item get dialect, untuk mengambil data dialect dari daftar dialect.
\item list dialect, menampilkan semua daftar dialect yang telah didaftarkan.
\item field size limit, untuk menentukan limit parsing dari sebuah dialect.
\end{enumerate}

\section{Fungsi-fungsi yang terdapat di library pandas}

\begin{enumerate}
\item pivot table, untuk membuat sebuah spreadsheet dengan style tabel pivot sebagai DataFrame.
\item melt, mengubah DataFrame dari pivot menjadi format long tabel.
\item pivot, untuk menampilkan data dari index, column, dan nilai tertentu.
\end{enumerate}

\newpage

\chapter{Ketrampilan Pemrograman}

\section*{SOAL 1}
Buatlah fungsi (file terpisah/library dengan nama NPM csv.py) untuk membuka file csv dengan lib csv mode list
\lstinputlisting[language=Python, firstline=8, lastline=16]{src/soal/1184076_csv.py}

\section*{SOAL 2}
Buatlah fungsi (file terpisah/library dengan nama NPM csv.py) untuk membuka file csv dengan lib csv mode dictionary

\lstinputlisting[language=Python, firstline=17, lastline=22]{src/soal/1184076_csv.py}

\section*{SOAL 3}
Buatlah fungsi (file terpisah/library dengan nama NPM pandas.py) untuk membuka file csv dengan lib pandas mode list

\lstinputlisting[language=Python, firstline=8, lastline=17]{src/soal/1184076_pandas.py}

\section*{SOAL 4}
Buatlah fungsi (file terpisah/library dengan nama NPM pandas.py) untuk membuka file csv dengan lib pandas mode dictionary

\lstinputlisting[language=Python, firstline=17, lastline=22]{src/soal/1184076_pandas.py}

\section*{SOAL 5}
Buat fungsi baru di NPM pandas.py untuk mengubah format tanggal menjadi standar dataframe

\lstinputlisting[language=Python, firstline=22, lastline=27]{src/soal/1184076_pandas.py}

\section*{SOAL 6}
Buat fungsi baru di NPM pandas.py untuk mengubah index kolom

\lstinputlisting[language=Python, firstline=27, lastline=34]{src/soal/1184076_pandas.py}

\section*{SOAL 7}
Buat fungsi baru di NPM pandas.py untuk mengubah atribut atau nama kolom

\lstinputlisting[language=Python, firstline=34, lastline=41]{src/soal/1184076_pandas.py}

\section*{SOAL 8}
Buat program main.py yang menggunakan library NPM csv.py yang membuat dan membaca file csv

\lstinputlisting[language=Python, firstline=22, lastline=35]{src/soal/csv_file.py}
\lstinputlisting[language=Python, firstline=8, lastline=11]{src/soal/main.py}

\section*{SOAL 9}
Buat program main2.py yang menggunakan library NPM pandas.py yang membuat dan membaca file csv

\lstinputlisting[language=Python, firstline=41, lastline=46]{src/soal/1184076_pandas.py}
\caption{main2.py}
\lstinputlisting[language=Python, firstline=8, lastline=11]{src/soal/main2.py}

\end{document}
2 changes: 2 additions & 0 deletions Chapter 4/D4 TI C/Ariq Rafi Kusumah (1184076)/src/contoh.csv
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
NPM,Nama,Kelas
1184076,Ariq Rafi Kusumah,D4 TI 2C
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
# -*- coding: utf-8 -*-
"""
Created on Sat Feb 29 18:00:54 2020

@author: Asus
"""

import csv

def listCsv():
with open('ariqmahasiswa.csv', 'R') as mahasiswa:
batu = csv.reader(mahasiswa)
pasir_list = list(maca)

print(pasir_list)

def dictCsv():
file_ariq = csv.DictReader(open("ariqmahasiswa.csv"))

for i in file_ariq:
print(i)

def writeCSV():
with open('ariqmahasiswa.csv', 'W') as ariqmahbebas:
tulis = csv.writer(ariqmahbebas)

tulis.writerow(['NamaMahasiswa', 'jenis', 'tinggi','berat'])
tulis.writerow(['ariq', 'laki', '167','50'])

def openCSV():
with open('ariqmahasiswa.csv', 'R') as ariqnmahasiswa:
ariqkeren = csv.reader(ariqmahasiswa)

for i in ariqkeren:
print(i)
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
# -*- coding: utf-8 -*-
"""
Created on Sat Feb 29 18:01:45 2020

@author: Asus
"""

import pandas

def listPandas():
batu_file = pandas.read_csv('ariqmahasiswa.csv')
pasir_list1 = batu_file.values
pasir_list2 = list(batu_file.head())

print(pasir_list1)
print(pasir_list2)

def dictPandas():
batu_file = pandas.read_csv('ariqmahasiswa.csv').to_dict()

print(batu_file)

def changeDatetime():
batu_file = pandas.read_csv('ariqmahasiswa.csv')

batu_file["date"] = pandas.to_datetime(batu_file["date"])

def reindex():
batu_file = pandas.read_csv('ariqmahasiswa.csv')

pasir_index = ['1', '2', '0']

batu_file.reindex(eta_index)

def renameColumn():
batu_file = pandas.read_csv('ariqmahasiswa.csv')

semen = batu_file.rename(columns={"NamaMahasiswa": "name"})

print(semen)

def writePandas():
buat_data = pandas.DataFrame({'Nama Mahasiswa': ['ariq', 'wahyu'],
'teman': ['biasa', 'super']})
buat_data.to_csv('pandas_file_uey.csv', index=False)

def openPandas():
baca_data = pandas.read_csv('pandas_file_uey.csv')

print(baca_data)
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
Nama Mahasiswa,pendidikan,berat
ariq,D4,50
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
NamaMahasiswa,jenis,tinggi,berat
ariq,laki,167,50
35 changes: 35 additions & 0 deletions Chapter 4/D4 TI C/Ariq Rafi Kusumah (1184076)/src/soal/csv_file.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
# -*- coding: utf-8 -*-
"""
Created on Sat Feb 29 18:04:11 2020

@author: Asus
"""

import csv

def listCsv():
with open('ariqkereneuy.csv', 'r') as mahasiswa:
batu = csv.reader(mahasiswa)
pasir_list = list(batu)

print(pasir_list)

def dictCsv():
file_ariq = csv.DictReader(open("ariqkereneuy.csv"))

for i in file_ariq:
print(i)

def writeCSV():
with open('ariqkereneuy.csv', 'w') as ariqmahbebas:
tulis = csv.writer(ariqmahbebas)

tulis.writerow(['Nama Mahasiswa', 'pendidikan', 'berat'])
tulis.writerow(['ariq', 'D4', '50'])

def openCSV():
with open('ariqkereneuy.csv', 'r') as ariqmahasiswa:
ariqkeren = csv.reader(ariqmahasiswa)

for i in ariqkeren:
print(i)
11 changes: 11 additions & 0 deletions Chapter 4/D4 TI C/Ariq Rafi Kusumah (1184076)/src/soal/main.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# -*- coding: utf-8 -*-
"""
Created on Sat Feb 29 18:06:08 2020

@author: Asus
"""

import csv_file as matamueuy

matamueuy.writeCSV()
matamueuy.openCSV()
11 changes: 11 additions & 0 deletions Chapter 4/D4 TI C/Ariq Rafi Kusumah (1184076)/src/soal/main2.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# -*- coding: utf-8 -*-
"""
Created on Sat Feb 29 18:05:23 2020

@author: Asus
"""

import 1184076_pandas as pandas

pandas.writePandas()
pandas.openPandas()
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
Nama Mahasiswa,kadar
ariq,biasa
wahyu,super