Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
0% found this document useful (0 votes)
17 views

CII3D4-SisTerPar-03-Struktur Data Python, Representasi Data Dan Marshalling

The document discusses Python data structures, data representation, and marshalling. It covers Python list, tuple, dictionary, and set data structures. It explains how to access, update, delete elements and add built-in functions. For data representation, it describes CORBA CDR, Java serialization, and XML. Marshalling encodes data for transmission while unmarshalling reconstructs data from streams.
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
17 views

CII3D4-SisTerPar-03-Struktur Data Python, Representasi Data Dan Marshalling

The document discusses Python data structures, data representation, and marshalling. It covers Python list, tuple, dictionary, and set data structures. It explains how to access, update, delete elements and add built-in functions. For data representation, it describes CORBA CDR, Java serialization, and XML. Marshalling encodes data for transmission while unmarshalling reconstructs data from streams.
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 40

CII3D4

SISTEM PARALEL DAN TERDISTRIBUSI

Materi 3 :
Struktur Data Python,
Representasi Data dan
Marshalling
REPRESENTASI DATA DAN
MARSHALLING

2 CSH3J3 – Sistem Paralel dan Terdistribusi


External Data Representation
• Transport layer is only concern with the
transmission of sequences of byte but what
about data type and data structures?

3 CSH3J3 – Sistem Paralel dan Terdistribusi


Marshalling and Unmarshalling
• Marshalling: encode data item so that they
can be written onto stream
• Unmarshalling: read an encoding from a
stream and reconstruct the original items
• Example: CORBA CDR, Java serialization, XML

4 CSH3J3 – Sistem Paralel dan Terdistribusi


Main issues in Marshalling/Unmarshalling
• Error-prone
• Compactness
• Type of contents

5 CSH3J3 – Sistem Paralel dan Terdistribusi


2. External Data Representation (con’t)
Three alternative approaches to external data representation and
marshalling:

a) CORBA’s common data representation, which is concerned with


an external representation for the structured and primitive types
b) Java’s object serialization, which is concerned with the flattening
and external data representation of any single object or tree of
objects
c) XML (Extensible Markup Language), which defines a textual
format for representing structured data.

6 CSH3J3 – Sistem Paralel dan Terdistribusi


a. CORBA

• CORBA’s Common Data Representation (CDR)


• These consist of 15 primitive types, which include short (16-bit), long
(32-bit), unsigned short, unsigned long, float (32-bit), double (64-bit),
char, boolean (TRUE, FALSE), octet (8-bit), and any (which can
represent any basic or constructed type)
• Marshalling in CORBA
struct Person {
string name;
string place;
unsigned long year;
};

7 CSH3J3 – Sistem Paralel dan Terdistribusi


Ex: CORBA CDR Message
Contains the three fields of a struct whose respective types are
string, string and unsigned long

8 CSH3J3 – Sistem Paralel dan Terdistribusi


b. Java Object Serialization

• In Java RMI, both objects and primitive data values may be passed as arguments and
results of method invocations.
• An object is an instance of a Java class

public class Person implements Serializable {


private String name;
private String place;
private int year;
public Person(String aName, String aPlace, int aYear) {
name = aName;
place = aPlace;
year = aYear;
}
// followed by methods for accessing the instance variables
}

9 CSH3J3 – Sistem Paralel dan Terdistribusi


Ex : Java Serialized Form

As an example, consider the serialization of the following object:

Person p = new Person("Smith", "London", 1984);

10 CSH3J3 – Sistem Paralel dan Terdistribusi


c. Extensible Markup Language (XML)
• XML is a markup language that was defined by the World Wide Web
Consortium (W3C) for general use on the Web.
• Both XML and HTML were derived from SGML (Standardized
Generalized Markup Language) [ISO 8879]

• XML data items are tagged with ‘markup’ strings.


<person id="123456789">
<name>Smith</name>
<place>London</place>
<year>1984</year>
<!-- a comment -->
</person >

11 CSH3J3 – Sistem Paralel dan Terdistribusi


STRUKTUR DATA PYTHON

12 CSH3J3 – Sistem Paralel dan Terdistribusi


Struktur Data

• 4 struktur data yang akan dibahas:


– List
– Tupple
– Dictionary
– Set
• Data stuktur yang paling dasar di phyton adalah
sequence
• Struktur data dapat melakukan penyimpanan,
pengurutan, pengelompakan dan menampilkan suatu
data
Struktur Data - List
• List merupakan struktur data pada python yang
mampu menyimpan lebih dari satu data, seperti
array.
• Dimulai dengan index 0. Ditulis menggunakan
square brackets []
List – Accessing Values
• Untuk mengakses nilai di list, gunakan kurung
siku [] bersamaan dengan indeks

Output
List – Updating List Output

List – Delete List Element


Output
List – Adding List
1. prepend(item)
menambahkan
item dari depan;
2. append(item)
menambahkan
item dari belakang.
3. insert(index, item)
menambahkan
item dari indeks
tertentu
List – Basic Operations
• + Penggabungan
• * Pengulangan
List – Multi Dimensi

Output
• List multi dimensi biasanya digunakan untuk menyimpan struktur data
yang kompleks seperti tabel, matriks, graph, tree, dsb.
List –
Contoh
Program
OUTPUT
List – Contoh Program
List – Built-in List Functions & Methods
Struktur Data - Tuples
• Tupples hampir sama dengan list. Perbedaannya
adalah tuples tidak dapat dirubah bahkan dihapus.
• Dibuat menggunakan tanda kurung ()

• Empty tuple dapat ditulis dengan 2 tanda kurung yang tidak mengandung
apapun
Tup1 = ();
• Untuk mengisi tuple dengan nilai tunggal harus memasukan dengan
menggunakan koma Tup1 = (50,);
Tuples – Accessing Values
• Seperti halnya list, kita bisa mengakses anggota tuple lewat
indeksnya menggunakan format namatuple[indeks]
• Indeks dimulai dari 0 untuk anggota pertama. Selain itu, indeks
negatif juga bisa dipakai mulai dari -1 untuk anggota terakhir tuple.
Tuples – Accessing Values
Tuples –Updating Values
• Tuples tidak dapat diubah yang artinya kita tidak dapat
memperbarui atau mengubah nilai elemen tuple.
• Kita dapat mengambil porsi tupel yang ada untuk membuat
tupel baru seperti yang diperlihatkan contoh berikut -
Tuples –Updating Values

• bila anggota tuple-nya adalah tuple


bersarang dengan anggota seperti list, maka
item pada list tersebut dapat diubah.
Jelasnya ada pada contoh berikut:
Tuples –Delete Element
• Menghapus elemen tuple secara individual tidak dimungkinkan.
• Kita dapat dengan menyusun tuple lain dengan elemen yang tidak diinginkan
dibuang.
• Untuk menghapus seluruh tuple secara eksplisit, cukup gunakan pernyataan del.
Sebagai contoh
Menguji Keanggotaan Tuple
• Seperti halnya string dan list, kita bisa menguji apakah
sebuah objek adalah anggota dari tuple atau tidak, yaitu
dengan menggunakan operator in atau out untuk
kebalikannya
Metode dan Fungsi Bawaan Tuple
• Metode count(x) berfungsi mengembalikan jumlah item yang
sesuai dengan x pada tuple
• Metode index(x) berfungsi mengembalikan indeks dari item
pertama yang sama dengan x.
Metode dan Fungsi Bawaan Tuple
Fungsi Deskripsi
all() Mengembalikan True jika semua anggota tuple adalah benar ( tidak ada yang kosong )

Mengembalikan True jika salah satu atau semua bernilai benar. Jika tuple kosong, maka akan
any()
mengambalikan False.

enumerate() Mengembalikan objek enumerasi. Objek enumerasi adalah objek yang terdiri dari pasangan
indeks dan nilai.

len() Mengembalikan panjang (jumlah anggota) tuple


max() Mengembalikan anggota terbesar di tuple
min() Mengembalikan anggota terkecil di tuple

sorted() Mengambil anggota tuple dan mengembalikan list baru yang sudah diurutkan

sum() Mengembalikan jumlah dari semua anggota tuple

tuple() Mengubah sequence (list, string, set, dictionary) menjadi tuple


Struktur Data - Dictionary
• Dictionary adalah stuktur data yang bentuknya seperti
kamus. Ada kata kunci kemudian ada nilaninya. Kata kunci
harus unik, sedangkan nilai boleh diisi denga apa saja.
• Setiap key dipisahkan dengan colon (:) , semuanya
tertutup dengan kurung kurawal
• Key harus unique sementara value tidak harus. Nilai bisa
terdiri dari berbagai tipe
Dictionary – Accessing Values
Output

Akan terjadi error jika mengakses data key yang tidak terdapat di
dictionary

Output
Dictionary – Updating List
Output

Dictionary – Delete List Element


Output
Dictionary –
Built-in List
Functions &
Methods
Struktur Data - Set
• Bersifat Unique. Apabila menginput sebuah nilai yang sama pada set, maka
salah satu akan di replace
• Unordered
• Unindexed – tidak ada indeks yang dilampirkan
• Immutable – Elemen-elemen dalam set tidak bisa dirubah, namun set
secara keseluruhan dapat dirubah

Output
Set – Accessing Values Output

Tidak bisa mengakses individual value suatu set.


Hanya bisa mengakses keseluruhan elemen.
Mendapatkan individual element dengan
menggunakan looping
Set – Adding

Output

Set – Removing
Ada beberapa cara yang digunakan untuk menghapus data di set:
1. remove () – menghapus suatu data pada set. Terjadi error jika
data yang ingin dihapus tidak terdapat di set
2. discard () - menghapus suatu data pada set. Tidak akan terjadi
error jika data yang ingin dihapus tidak terdapat di set
3. Pop () - data pertama dari set akan dihapus
Referensi
• https://courses.cognitiveclass.ai
• Mueller, John Paul. Beginning Programming with
Python for Dummies, John Wiley & Sons,
Incorporated, 2014
• Deitel. How to program Python
• https://www.petanikode.com
• https://www.tutorialspoint.com/python
• https://developers.google.com/edu/python/lists
• https://hiwijaya.com/
• https://www.pythonindo.com
THANK YOU

You might also like