Zakky Muhammad

Information Technology

Hi, i'm Zakky!

Information Technology Enthusiast


Working in a company based on Indonesia. Very enthusiastic about linux, system security and application project. Sometimes works as a freelancer.

email: zkymuhammad@gmail.com

Resume

  Education

Informatics Engineering

AMIKOM University (Bachelor Degree) - Graduation 2016

Learn and got many experiences in information technology. Studying for 4 years. Learning many things such as computer network, programming, graphic design & multimedia, e-commerce, business management & much more. Enthusiastic about Linux & Open Source and Hacking & Security seminar or workshop. Started actively to be an IT writer either in blog or pdf.

Computer and Network Engineering

SMK Negeri 1 Pacitan - Graduation 2012

Learn and got many knowledge and experiences in Linux Server and System Administration either Linux or Windows. Got special opportunity to participate in Vocational High School Contest in Surabaya as IT Networking Support participant. Have achievement of The Best Final Project.

  Work Experience

Shopee International (Sea Group).

Engineer, Corporate IT - Aug 2019 - Current

-

Favehotel Kusumanegara.

IT Supervisor - Jan 2017 - Aug 2019

-

Freelance.

Company Website - Nov 2014 - Current

-

AMIKOM University.

Practical Assistant - 2014

Assist the teacher to teach the students in laboratory. The course is Linux Operating System.

T&T Computer.

Computer Technician - 2010

-

  Testimonials

SKILLS

   Professional Skills

  • 73% Complete
    Comunication 73%
  • 80% Complete
    Management 80%
  • 95% Complete
    Confidence 95%
  • 88% Complete
    Presenter 88%

   IT Skills

  • 85% Complete
    Computer Network 85%
  • 75% Complete
    Mikrotik 75%
  • 80% Complete
    Cisco Meraki 80%
  • 78% Complete
    Cisco 78%
  • 70% Complete
    Hacking & Security 70%
  • 85% Complete
    Linux 85%

   Code Skills

  • 75% Complete
    Python 70%
  • 70% Complete
    MySQL 70%

Portfolio

Internet Network

Wireless Connection

Wireless LAN installation in National Land Agency Office Pacitan

Desktop App

Desktop App - Adobe Flash - Thesis Project

Social Science interactive module application as Junior High School learning media

Web Design

Website Front End

The Islamic University of Indonesia Magister Program Website Design

Web App

Front End

Black Java Coffee Jogja Website

School Website

Website

Creating Website for SMK Nurudh Dholam Pacitan

Blog

Pemrograman fungsional adalah sebuah gaya pemrograman yang didasarkan pada fungsi. Sebuah bagian kunci dari pemrograman fungsional adalah higher-order function. Higher-order function akan mengambil fungsi lain untuk dijadikan sebagai argumen.

Contoh 1 - Pemrograman Fungsional

Berikut contoh fungsi yang mengambil fungsi lain untuk dijadikan argumen.

def apply_duakali(func,arg):
	return func(func(arg))

def tambah_lima(x):
	return x + 5

print(apply_duakali(tambah_lima, 10))
=====>
20
=====>

Contoh 2 - Fungsi Murni dan Tidak Murni

Pemrograman fungsional berusaha menggunakan fungsi murni. Fungsi murni tidak memiliki efek samping dan mengembalikan sebuah nilai yang hanya tergantung pada argumennya.

#Fungsi Murni

def murni(x,y):
	a = x+2*y
	return a / (2*y+x)

print(murni(3,4))
#Fungsi Tidak Murni

daftar_nama = []

def tidak_murni(arg):
	daftar_nama.append(arg)

tidak_murni("Zakky")
tidak_murni("Andi")
tidak_murni("Boy")

print(daftar_nama)

Karena fungsi di atas mengubah kondisi pada list daftar_nama, maka fungsi tersebut tidak murni.

Fungsi Murni

Kelebihan dan kekurangan menggunakan fungsi murni:

  1. Lebih mudah dinalar dan untuk penggunaan testing.
  2. Lebih efisien. Ketika fungsi dieveluasi untuk input, hasil dapat disimpan dan mengacu ke waktu selanjutnya dari fungsi pada input yang dibutuhkan. Mengurangi jumlah pemanggilan fungsi atau yg disebut momoization.
  3. Lebih mudah untuk dijalankan secara paralel.

Kekurangan atau kelemahan ketika hanya menggunakan fungsi murni adalah bahwa fungsi tersebut sangat mempersulit tugas I/O yang sebaliknya sederhana. Dan juga dalam situasi tertentu bisa saja lebih sulit untuk ditulis.



Di bawah ini adalah contoh program sederhana untuk menganalisa isi dari suatu file. File akan dibaca oleh kode python, kemudian akan dilakukan proses selanjutnya baik dianalisa maupun dilakukan proses lain.

Contoh 1

Contoh 1 ini adalah gambaran sederhana untuk membaca isi dari suatu file. Buatlah terlebih dahulu file-nya. Misalkan file tersebut bernama "a.txt".

Hi, my name is Mac.
I'm working for the world.
I'm a system, so you cannot see me.
You can call me by any programs, but you cannot touch me.

Thanks.

Berikut kode python sederhana untuk membaca file tersebut.

filename = input("Enter a filename: ")

with open(filename) as f:
	text = f.read()

print(text)
=====>
Enter a filename: a.txt
Hi, my name is Mac.
I'm working for the world.
I'm a system, so you cannot see me.
You can call me by any programs, but you cannot touch me.

Thanks.
=====>

Contoh 2

Ini adalah contoh untuk menghitung seberapa banyak sebuah karakter muncul dalam suatu file.

def hitung_karakter(text, char):
	jml = 0

	for i in text:
		if i == char:
			jml+=1
	return jml

filename = input("Enter a filename: ")
with open(filename) as f:
	text = f.read()

print(hitung_karakter(text,"a"))
=====>
Enter a filename: a.txt
10
=====>

Contoh 3

Ini adalah contoh untuk menghitung presentase huruf a-z yang keluar pada file yang dibaca.

def hitung_karakter(text, char):
	jml = 0

	for i in text:
		if i == char:
			jml+=1
	return jml

filename = input("Enter a filename: ")
with open(filename) as f:
	text = f.read()

for k in "abcdefghijklmnopqrstuvwxyz":
	persen = 100 * hitung_karakter(text, k) / len(text)
	print("{} - {}".format(k, round(persen,2)))
=====>
Enter a filename: a.txt
a - 6.67
b - 1.33
c - 4.0
d - 0.67
e - 5.33
f - 0.67
g - 1.33
h - 2.0
i - 2.0
j - 0.0
k - 1.33
l - 2.0
m - 6.0
n - 6.0
o - 7.33
p - 0.67
q - 0.0
r - 3.33
s - 4.67
t - 4.0
u - 3.33
v - 0.0
w - 1.33
x - 0.0
y - 4.0
z - 0.0
=====>


Ada beberapa fungsi yang umumnya digunakan untuk operasi string, seperti join, replace, startswith, endswith dan lain sebagainya. Berikut beberapa fungsi yang berguna dalam operasi string. Fungsi-fungsi ini meliputi fungsi string, fungsi numerik dan fungsi list.

Fungsi Join

print("-".join(["sapi","kambing","harimau"]))
=====>
sapi-kambing-harimau
=====>

Fungsi Replace

print("Selamat Datang".replace("Datang","Ulang Tahun"))
=====>
Selamat Ulang Tahun
=====>

Fungsi Startswith

print("Nama saya adalah Zakky".startswith("Nama"))
=====>
True
=====>

Fungsi Endswith

print("Nama saya adalah Zakky".endswith("Zakky"))
=====>
True
=====>

Fungsi Upper

print("berubah jadi kapital".upper())
=====>
BERUBAH JADI KAPITAL
=====>

Fungsi Lower

print("BERUBAH JADI HURUF KECIL".lower())
=====>
berubah jadi huruf kecil
=====>

Fungsi Split

print("Apel, Jeruk, Semangka".split(","))
=====>
['Apel', ' Jeruk', ' Semangka']
=====>

Fungsi-Fungsi Numerik

# angka terendah
print(min(3,4,5,9,8,7,6))

# angka tertinggi
print(max([3,4,5,9,8,7,6]))

# jarak angka dari nol
print(abs(-77))
print(abs(51))

# jumlah total angka
print(sum([6,7,8,9]))

# pembulatan angka
print(round(99.12345,2))
print(round(99.12345,4))
=====>
3
9
77
51
30
99.12
99.1235
=====>

Fungsi-Fungsi List

angka = [50, 61, 25, 29, 37]

# bernilai True jika semua list sesuai kondisi
if all([i > 10 for i in angka]):
	print("semua angka bernilai lebih dari 10")

# bernilai True jika ada list sesuai kondisi
if any([i % 2 == 0 for i in angka]):
	print("terdapat angka yang habis dibagi 2")
# memberikan interasi pada list
for x in enumerate(angka):
	print(x)
=====>
semua angka bernilai lebih dari 10
terdapat angka yang habis dibagi 2
(0, 50)
(1, 61)
(2, 25)
(3, 29)
(4, 37)
=====>


Pada artikel-artikel sebelumnya, untuk menggabungkan tipe data string dan non-string yaitu dengan mengkonversi tipe data non-string menjadi string menggunakan fungsi str. Tetapi adanya pemformatan string akan lebih mempermudah kita dalam melakukan operasi string.

Contoh 1

nomor = [1,2,3]
tampil_nomor = "Nomor: {0} {1} {2}".format(nomor[0], nomor[1], nomor[2])

print(tampil_nomor)
=====>
Nomor: 1 2 3
=====>

Contoh 2

angka = "{a}, {b}".format(a=5, b=8)

print(angka)
=====>
5, 8
=====>

Contoh 3

nama = "Zakky Muhammad"
tampil_nama = "Hi, nama saya {}".format(nama)

print(tampil_nama)
=====>
Hi, nama saya Zakky Muhammad
=====>


List dapat dibuat dengan lebih cepat menggunakan aturan yang dibuat. Cara ini mempercepat pembuatan list daripada secara manual.

Contoh 1

pangkat3 = [i**3 for i in range(5)]

print(pangkat3)
=====>
[0, 1, 8, 27, 64]
=====>

Contoh di atas adalah membuat bilangan berpangkat 3 dari 0-4.

Contoh 2

pangkat3 = [i**2 for i in range(10) if i**2 % 2 == 0]

print(pangkat3)
=====>
[0, 4, 16, 36, 64]
=====>

Contoh di atas adalah membuat daftar bilangan berpangkat 2 dari 0-9 dimana bilangan tersebut adalah hanya bilangan yang genap.

Contoh 3 - MemoryError

pangkat = [2**i for i in range(10**1000)]

print(pangkat)

Contoh ini akan membuat MemoryError dikarenakan range yang sangat luas yaitu range 10 pangkat 1000. Memori komputer akan habis sehingga menyebabkan error tersebut.



1 2 3 4 5 6

Contact

  Address

Bantul, Yogyakarta - Indonesia

  Phone

ask by email or social media

  Mail

zkymuhammad@gmail.com