(Pertemuan 07) Array

Array

Offline di Departemen Matematika
Author

Tim Dosen Praktikum Algoritma dan Pemrograman

Published

October 8, 2024

Kembali ke Mata Kuliah Praktikum Algoritma dan Pemrograman

8 Oktober 2024 - Pertemuan 7

Materi Pembahasan:

  1. Membuat Array

  2. Array 1 Dimensi

  3. Array Multidimensi

  4. Penjumlahan dan Pengurangan Vektor dengan Array

  5. Perkalian Skalar dan Vektor dengan Array

  6. Perkalian Titik (Dot Product) dengan Array

  7. Perkalian Matriks

  8. Membuat Matriks Identitas

  9. Membuat Matriks Nol

  10. Memanggil Elemen pada Array

  11. Menambahkan Elemen ke Posisi Paling Terakhir

  12. Menambahkan Elemen ke Indeks yang Diinginkan

  13. Menghapus Elemen Array

  14. Diskusi

Praktikum Algoritma dan Pemrograman PTA 2024-2025
Departemen Matematika FMIPA Universitas Indonesia

Array

Array memiliki bentuk yang serupa dengan list, tetapi bisa digunakan untuk operasi aljabar seperti perkalian skalar vektor, penjumlahan vektor, penjumlahan matriks, perkalian matriks, dll.

# REVIEW
# List

L = [12, 23, 10, 56]
L.sort()
L
[10, 12, 23, 56]
# Tuple
T = (24, 43, 17)
T[-1]
17
# Tuple (sifatnya immutable)
T = (24, 43, 17, 2)
T[0]=10
T
TypeError: 'tuple' object does not support item assignment
# List di Python itu bukan array

L = [1.2, True, (1,2), 5, "ini buku"]
L
[1.2, True, (1, 2), 5, 'ini buku']
L = [4, 5, 6, 7]
L.append(12)
L
[4, 5, 6, 7, 12]
A = [4, 5, 6, 7]
B = [8, 9, 10]
A+B
[4, 5, 6, 7, 8, 9, 10]
# List Comprehension

L = [1, 2, 3]
[x**3 for x in L]
[1, 8, 27]

Membuat Array

# Import module bernama numpy

import numpy as np
from numpy import * #ini tidak disarankan

Array 1 Dimensi

Untuk mendefinisikan array, digunakan fungsi array() dari module numpy yang di dalamnya akan dimasukkan suatu list.

x = np.array([1,2,3])
y = np.array([4,5,6])
print(x)
print(y)
[1 2 3]
[4 5 6]

Array Multidimensi

Array multidimensi merupakan array yang dibentuk dari list berisi list.

m = np.array([[1,2,3],[4,5,6],[7,8,9]])
n = np.array([[1,2,3],[7,8,9],[4,5,6]])
print(m)
print(n)
[[1 2 3]
 [4 5 6]
 [7 8 9]]
[[1 2 3]
 [7 8 9]
 [4 5 6]]

Penjumlahan dan Pengurangan Vektor dengan Array

Ingat bahwa dalam menjumlahkan atau mengurangkan dua vektor, haruslah ukuran kedua vektor tersebut sama. Jika kita mencoba untuk melakukan penjumlahan/pengurangan 2 vektor yang berbeda ukuran, maka akan terjadi error

  • Mencetak Array
print (x)
print (y)
[1 2 3]
[4 5 6]
  • Penjumlahan Vektor dengan Array
x+y
array([5, 7, 9])
  • Pengurangan Vektor dengan Array
x-y
array([-3, -3, -3])
  • Operasi Penjumlahan/Pengurangan dengan Ukuran Kedua Vektor Berbeda
#operasi penjumlahan yang error

z = np.array([1,1])
x+z
ValueError: operands could not be broadcast together with shapes (3,) (2,) 

Perkalian Skalar dengan Vektor dengan Array

Operasi aljabar dengan array hanya berlaku untuk array yang berisi tipe data integer atau float. Jika kita mencoba melakukan operasi aljabar pada array yang berisi string, maka akan terjadi error.

2*x

# contoh lain :
#1/4*x
array([2, 4, 6])

Jika kita mencoba melakukan operasi aljabar pada array yang berisi string, maka akan terjadi error.

z = np.array([1,2,3,"kambing"])
1/4*z
UFuncTypeError: ufunc 'multiply' did not contain a loop with signature matching types (dtype('float64'), dtype('<U21')) -> None

Perkalian Titik (Dot Product) dengan Array

Untuk melakukan perkalian titik (dot product) dengan array, digunakan fungsi dot() dari numpy yang menerima 2 input berupa array 1 dimensi. Ukuran vektor harus sama.

print(x)
print(y)
[1 2 3]
[4 5 6]
np.dot(x,y)
32

Perkalian Matriks

Untuk melakukan perkalian matriks (matrix multiplication) dengan array, digunakan fungsi matmul() dari numpy yang menerima 2 input berupa array multidimensi. Ukuran kolom matriks pertama harus sama dengan ukuran baris matriks kedua.

print (m)
print (n)
[[1 2 3]
 [4 5 6]
 [7 8 9]]
[[1 2 3]
 [7 8 9]
 [4 5 6]]
np.matmul(m,n)
array([[ 27,  33,  39],
       [ 63,  78,  93],
       [ 99, 123, 147]])

Membuat Matriks Identitas

Membuat matriks identitas digunakan fungsi identity() dari numpy yang menerima input ukuran matriks identitas tersebut.

I = np.identity(3)
I
array([[1., 0., 0.],
       [0., 1., 0.],
       [0., 0., 1.]])

Membuat Matriks Nol

Membuat matriks nol digunakan fungsi zeros() dari numpy yang menerima input ukutan matriks identitas tersebut.

Z = np.zeros((3,3))
Z
array([[0., 0., 0.],
       [0., 0., 0.],
       [0., 0., 0.]])

Memanggil Elemen pada Array

print (x)
print(x[1])
[1 2 3]
2

Menambahkan Elemen ke Posisi Paling Terakhir

# metode append()
# menambahkan 1 elemen

x = np.append(x, 7)
print(x)
[1 2 3 7]
#menambahkan lebih dari 1 elemen
x = np.append(x,[9,10,11])
print(x)
[ 1  2  3  7  9 10 11]

Menambahkan Elemen ke Indeks yang Diinginkan

#menambahkan 1 elemen pada indeks tertentu
y = np.insert(y,0,1)
print(y)
[1 4 5 6]
#menambahkan lebih dari 1 elemen pada indeks tertentu
y = np.insert(y,1,[2,3,4])
print(y)
[1 2 3 4 4 5 6]

Menghapus Elemen dari Array

Menghapus elemen dari array tidak menggunakan pop() atau remove(), melainkan fungsi delete() dari numpy. Cara kerja delete() mirip seperti pop(), yaitu menghapus elemen berdasarkan indeks.

x = np.delete(x,1)
print(x)
[ 1  3  7  9 10 11]

Diskusi 1

image.png
# Selesaikan soal Diskusi 1 menggunakan Python
import numpy as np
n=50
I=np.identity(n)
a=0
for i in range (1,n+1):
  if i%2==0:
    for j in range(i):
      a=a+I[j][j]
print(a)

650.0
import numpy as np
n=50
I=np.identity(n)
a=0
for i in range (n+1):
  if i%2==0:
    for j in range(i):
      a=a+I[j][j]
print(a)
650.0

Diskusi 2

Bilangan kuadrat adalah bilangan yang dapat dinyatakan sebagai perkalian dari dua bilangan bulat yang sama. Buatlah program menggunakan Python untuk menghitung banyaknya bilangan kuadrat yang lebih kecil atau sama dengan N (bilangan asli yang dimasukkan) dan mencetak bilangan-bilangan kuadrat tersebut yang sudah disimpan dalam array.

Contoh:
input N = 50
output 7 dan menampilkan bilangan-bilangan [1, 4, 9, 16, 25, 36, 49].

# Jawaban Diskusi 2


Diskusi 3

Balikkan urutan item di dalam array di bawah ini dan tuliskan ke dalam bentuk program python sederhana.

Screenshot 2024-10-05 at 09.23.08.png
# Jawaban Diskusi 3

UTS Praktikum Algoritma dan Pemrograman

  • Hari/Tanggal: Rabu, 16 Oktober 2024

  • Pukul: 15.00 - 15.50

  • Format Soal: 15 PG (75 poin) dan 1 Essay (Pilih 1 dari 3) (25 poin)

  • Sifat Ujian: Paper-based, closed-book dan sumber lainnya

  • Materi: Pekan 1 - 7