Blogger

  • RSS
  • Skype
  • Facebook
  • Yahoo

Twitter

Pengertian Queue (Antrian)

Struktur  data  linear  adalah  kumpulan  komponen-komponen  yang  tersusun membentuk satu garis linear. Bila komponen-komponenditambahkan (atau dikurangi), maka  struktur-struktur  tersebut  berkembang (atau  menyusut). Queue  merupakan struktur data linear dimana penambahan komponen dilakukan di satu ujung, sementara pengurangan dilakukan di ujung lain (yang satu lagi).

Queue (Antrian)  adalah  suatu  kumpulan  data  yang  penambahan  elemennya hanya  bisa  dilakukan pada  suatu  ujung  (disebut  dengan  sisi  belakang  atau  rear), dan penghapusan atau pengambilan elemen dilakukan lewatujung yang lain (disebut dengan sisi depan atau front). DEQUEUEadalah mengeluarkan satu elemen dari suatu Antrian. Antrian dapat dibuat dengan menggunakan: Liniear Arraydan Circular Array.

Kalau  tumpukan  menggunakan  prinsip  LIFO  (Last  Input  First  Output),  maka pada  antrian  prinsip yang  digunakan  adalah  FIFO  (First  Input  First  Output).  Antrian banyak  dijumpai  dalam  kehidupan sehari-hari,  misalnya  dalam  menonton  bioskop dimana melakukan antri dalam membeli tiket, mobil-mobil yang antri membeli karcis di pintu jalan tol akan membentuk antrian, para calon  mahasiswa yang mendaftarkan diri untuk  ikut  ujian  masuk  perguruan  tinggi  akan  membentuk  antrian  dan  contoh-contoh lain yang banyak dijumpai dalam kehidupan sehari-hari.

Contoh lain yang lebih relevan dalam bidang komputer adalah pemakaian sistem komputer berbagi waktu (time-sharing computer system) dimana ada sejumlah pemakai yang  menggunakan  sistem  tersebut  secara serempak.  Karena  sistem  ini  biasanya menggunakan  sebuah  prosesor  dan  sebuah  memori  utama, maka  jika  prosesor  sedang dipakai oleh seorang pemakai, pemakai-pemakai yang lain harus antri sampai gilirannya tiba.  Antrian  ini  mungkin  tidak  dilayani  secara  FIFO  murni,  tetapi  didasarkan  fase tertentu. Antrian  yang  mengandung  unsur  prioritas  dinamakan  dengan  antrian berprioritas (priority queue).

Queue Dengan Liniear Array
Terdapat  satu  buah  pintu  masuk  di  suatu  ujung  dan  satu  buah  pintu  keluar  di ujung satunya. Sehingga membutuhkan variabel Head dan Tail dengan aturan sebagai berikut :
1.  Elemen pertama (HEAD) dan elemen terakhirnya (TAIL),
2.  Aturan penyisipan dan penghapusan elemennya didefinisikan sebagai berikut:


  • Penyisipan selalu dilakukan setelah elemen terakhir
  • Penghapusan selalu dilakukan pada elemen pertama 

3.  Satu elemen dengan yang lain dapat diakses melalui informasi NEXT
4.  Struktur data ini banyak dipakai dalam informatika,misalnya untuk merepresentasi :


  • Antrian job yang harus ditangani oleh sistem operasi
  • Antrian dalam dunia nyata.

Abstraksi Tipe Data Queue
Seperti  halnya  stack (tumpukan)  spesifikasi  queue (antrian)  tersebutb  dapat diimplementasikan di level yang lebih rendah baik dengan array ataupun linear linked list.  Dalam  implementasi  array,  konsep  circular-array  dapat  diaplikasikan  untuk menghindari  operasi  penggeseran  isi  array  saat  dilakukan  pop(). Dalam  konsep circular array, inkrementasi indeks array yang panjangnya n, selalu di modulo dengan panjang array tsb. sehingga variabel indeks yang semula berharga n-1 jika diinkremen akan  "wrap-around"  ke  0. Untuk  mengetahui  posisi  ujung-ujung  dari  item  data  yang disimpan  dalam  array,  digunakan  variabel indeks  front (menunjuk  ke  posisi  item yang  akan  diambil  berikutnya)  dan  rear (posisi  elemen  array berikutnya  yang  akan ditempati). Suatu variabel  countdigunakan untuk mengetahui kasus khusus: apakah queue kosong atau penuh. Jika penuh maka mekanisme  memperbesar kapasitas queue dapat diaplikasikan.

Dalam implementasi struktur data linier, maka bagian muka dari queue adalah awal dari list (di-popdengan delete-first) dan bagian belakang adalah akhir dari list (dipush dengan  insert-last). Mengingat  operasi insert-last sering  dilakukan  maka digunakan dua variabel referensi  yang digunakan sebagai pointer:  frontuntuk node pertama dari list dan rearutuk node paling akhir.



Operasi-operasi pada Queue
1.  Membuat Queue Kosong
Untuk  menciptakan  dan  menginisialisasi  Queue,  dengan  cara  membuat  Head  dan Tail sama dengan NULL.



2.  Memeriksa Queue elemen kosong
Untuk memeriksa apakah Antrian sudah penuh atau belum, dengan cara memeriksa nilai Tail, jika Tail = -1 maka empty. Kita tidak memeriksa Head, karena Head adalah tanda  untuk  kepala  antrian  (elemen pertama  dalam  antrian)  yang  tidak  akan  berubahubah. Pergerakan pada Antrian terjadi dengan penambahan elemen antrian kebelakang, yaitu menggunakan nilai Tail



3.  Memeriksa Queue elemen penuh
Untuk mengecek  apakah Antrian sudah penuh  atau belum, dengan  cara  mengecek nilai  Tail,  jika  Tail  >=  MAX-1  (karena  MAX-1  adalah batas  elemen  array  pada  C) berarti sudah penuh.



4.  Menambah elemen Queue (Enqueue)
Untuk  menambahkan  elemen  ke  dalam  Antrian,  penambahan  elemen  selalu ditambahkan  di elemen paling  belakang.  Penambahan  elemen  selalu  menggerakan variabel  Tail  dengan  cara  increment  counter Tail.  Gambar  4  memperlihatkan penambahan elemen queue.





5.  Menghapus elemen Queue (Dequeue)
Digunakan  untuk  menghapus  elemen  terdepan/pertama  dari  antrian  dengan  cara mengurangi  counter Tail  dan  menggeser  semua  elemen  antrian  kedepan.  Penggeseran dilakukan  dengan  menggunakan looping.  Gambar  5  memperlihatkan  penghapusan elemen queue.





6.  Membersihkan indeks Queue
Untuk  menghapus  elemen-elemen  Antrian  dengan  cara  membuat  Tail  dan  Head sama dengan NULL. Penghapusan elemen-elemen Antriansebenarnya tidak menghapus arraynya,  namun  hanya  mengeset indeks pengaksesan-nya  ke  nilai  NULL  sehingga elemen-elemen Antrian tidak lagi terbaca.



7.  Menampilkan elemen Queue
Untuk  menampilkan  nilai-nilai  elemen  antrian  dengan menggunakan  looping dari head sampai dengan tail.



8.  PUSH elemen Queue
Salah satu algoritma untuk proses memasukkan data (PUSH) adalah sebagai berikut :


  1. Masukkan inputan data 
  2. Jika variabel i = MAX (nilai maksimum array), maka kerjakan langkah 3. Jika i≠MAX, maka kerjakan langkah 4.
  3. Tampilkan “Queue sudah penuh”.
  4. Selama i < MAX, maka i = i + 1 dan data [i] = data



9.  POP elemen Queue
Salah satu algoritma untuk proses mengeluarkan data(POP) adalah sebagai berikut :


  1. Jika i = 0, maka tampilkan “Queue kosong” lalu kerjakan langkah 4. Jika i ≠0, maka lakukanlah langkah 2.
  2. Mulai hapus ←data[0] dan data[i-1] ←data[i]
  3. i ←i – 1
  4. data[0] ←NULL 



Manfaat Queue
  • Digunakan sistem operasi untuk mengatur eksekusi taskdalam suatu sistem untuk mencapai perlakuan yang "adil" (seringkali queuedisebutwaiting line)
  • Untuk mailboxdalam komunikasi antar proses
  • Untuk bufferdalam mekanisme printspooler, komunikasi data
  • Untuk simulasi dan modeling (misalnya simulasi sistem pengendali lalu lintas udara) dalam memprediksi performansi



Suatu Keinginan Dapat Terwujud
Bukanlah Karena Adanya Waktu Untuk Mewujudkannnya
Tetapi Karena Ada Keinginan Yang Sangat Kuat Untuk Mewujudkannya

Pengertian Stack

Stack   atau   tumpukan   adalah   suatu   stuktur   data   yang   penting   dalam pemrograman, bersifat LIFO (Last In First Out) dimana benda yang terakhir masuk ke dalam  stack  akan  menjadi  benda  pertama  yang  dikeluarkan  dari  stack.  Contohnya, karena  kita  menumpuk  Compo  di  posisi  terakhir,  maka Compo  akan  menjadi  elemen teratas dalam tumpukan. Sebaliknya, karena kita menumpuk Televisi pada saat pertama kali,  maka  elemen  Televisi  menjadi  elemen  terbawah  dari  tumpukan.  Dan  jika  kita mengambil  elemen  dari  tumpukan,   maka   secara   otomatis   akan   terambil   elemen teratas, yaitu Compo juga.



Operasi-operasi/fungsi Stack
Push   : digunakan untuk menambah item pada stack pada tumpukan paling atas
pop   : digunakan untuk mengambil item pada stack pada tumpukan paling atas
Clear   : digunakan untuk mengosongkan stack
IsEmpty  : fungsi yang digunakan untuk mengecek apakah stack sudah kosong
IsFull   : fungsi yang digunakan untuk mengecekapakah stack sudah penuh

Stack dengan struktur array

1.  Mendefinisikan Stack dengan menggunakan struct 
2.  Mendefinisikan MAX_STACK untuk maksimum isi stack
3.  Membuatlah variabel array data sebagai implementasistack secara nyata
4.  Mendeklarasikan operasi-operasi/function di atas dan buat implemetasinya


Deklarasi MAX_STACK

#define MAX_STACK 10

Deklarasi STACK dengan struct dan array data

typedef struct STACK{
int top;
char data[10][10];
};

Deklarasi/buat variabel dari struct

STACK tumpuk;

Inisialisasi Stack
  • Pada mulanya isi top dengan -1, karena array dalam C dimulai dari 0, yang berarti stack adalah KOSONG!
  • Top adalah suatu variabel penanda dalam STACK yang menunjukkan elemen teratas Stack sekarang.  Top Of Stack akan selalu bergerak hingga mencapai MAX of STACK sehingga menyebabkan stack PENUH!

ilustrasi Stack pada saat inisialisasi!


Fungsi IsFull
  1. Untuk memeriksa apakah stack sudah penuh?
  2. Dengan cara memeriksa top of stack, jika sudah sama dengan MAX_STACK-1 maka full, jika belum (masih lebih kecil dari MAX_STACK-1)  maka belum full
Ilustrasi Stack pada kondisi Full


Fungsi IsEmpty
  • Untuk memeriksa apakah stack masih kosong?
  • Dengan cara memeriksa top of stack, jika masih -1 maka berarti stack masih kosong!

Fungsi Push
  1. Untuk memasukkan elemen ke stack, selalu menjadi elemen teratas stack (yang ditunjuk oleh TOS)
  2. Tambah satu (increment)  nilai top of stack lebih dahulu setiap kali ada penambahan elemen stack.
  3. Asalkan stack masih belum penuh, isikan data baru ke stack berdasarkan indeks top of stack setelah diincrement sebelumnya.

Fungsi Pop
  • Untuk mengambil elemen teratas (data yang ditunjuk oleh TOS) dari stack.
  • Ambil dahulu nilai elemen teratas stack dengan mengakses top of stack, tampilkan nilai yang akan dipop, baru dilakukan decrement nilai top of stack sehingga jumlah elemen stack berkurang 

Fungsi Print
  1. Untuk menampilkan semua elemen-elemen stack
  2. Dengan cara looping semua nilai array secara terbalik, karena kita harus mengakses dari indeks array tertinggi terlebih dahulu baru ke indeks yang kecil!

Studi Kasus Stack

Pembuatan Kalkulator SCIENTIFIC
   - Misalkan operasi: 3 + 2 * 5
   - Operasi di atas disebut notasi infiks, notasi infiks tersebut harus diubah lebih dahulu menjadi 
   - notasi postfix 3 + 2 * 5 
   - notasi postfiksnya adalah 2 5 * 3 +

Pop Stack Soal :
1. Jika berupa operand, maka masukkan ke Stack Hasil
2. Jika berupa operator, maka:
       - Pop nilai pertama dari Stack Hasil
       - Pop nilai kedua dari Stack Hasil
       - Lakukan operasi sesuai dengan operator yang didapat.


Operator * di pop dari Stack Soal, pop Stack Hasil dua kali, yaitu 5 dan 2 kemudian, simpan 5 ke dalam variabel misalnya a, dan 2 ke dalam variabel misalnya b.

Lalu lakukan operasi sesuai dengan operatornya, 
b <operator> a
Jadi b * a, yaitu 2 * 5 kemudian hasilnya disimpan lagi ke dalam StackHasil


  1. Kemudian lakukan langkah yang sama, sampai selesai.
  2. Pada contoh: operator + dipop dari Stack Soal, pop Stack Hasil dua kali, yaitu 3, disimpan pada variabel a, dan 2, disimpan pada variabel b.  Kemudian lakukan operasi sesuai dengan operatornya, b <operator> a
  3. Jadi b + a, yaitu 8 + 3 = 11.



Keinginan Manusia Akan Selalu Menumpuk
Bahkan Ketika Kepala Manusia Sudah Penuh Sekalipun
Manusia Akan Tetap Menciptakan Keinginan-Keinginan Baru

Searching Array

Yang dimaksud dengan Searching pada teknik pemrograman adalah berfungsi untuk mencari sebuah data dengan cara menelusuri tempat penyimpanan data tersebut. Tempat penyimpanan tersebut dapat berupa array dalam memory  atau dalam suatu file pada external storage.
Beberapa metode searching diantaranya adalah :

  • Sequential search
  • Binary search

Algoritma sequential search mencari ADA atau TIDAK ADA
Pada array 1 dimensi yang sudah ada isi/datanya,dicari sebuah nilai apakah ada atau tidak pada data array tersebut. Misalnya pada variabel array 1 dimensi A dengan jumlah N elemen berisi data-data dengan tipe data integer, dicari nilai yang diwakili variabel x (bisa berupa input) yang juga bertipe data integer. Diperiksa apakah data-data pada A ada atau tidak ada yang nilainya sama dengan nilai pada x, jika ada maka outputnya mencetak kata “Ada” jika tidak akan mencetak kata-kata “Tidak Ada”.

Metode Sequential Search

Pencarian beruntun dapat digunakan untuk melakukan pencarian data baik pada array yang terurut maupun yang belum terurut

Proses pencarian
  1. Membaca array data
  2. Menentukan data yang dicari
  3. Mulai dari data pertama sampai dengan data terakhir, data yang dicari dibandingkan dengan masing-masing data dalam array
  • Jika data yang dicari tidak ditemukan maka semua data dalam elemen dibandingkan sampai selesai
  • Jika data yang dicari ditemukan maka perbandingan akan dihentikan
Flowchart
 <cara 1>


<cara 2>


<Teknik Sentinel>


Algoritma sequential search mencari nilai MAXIMUM dan MINIMUM
Proses searching yang dilakukan adalah untuk mencari nilai yang terbesar (maximum) dan atau nilai yang terkecil (minimum) pada deret nilai suatu variabel array. Sama dengan pada proses searching sebelumnya algoritma untuk menjelaskan metode ini dimisalkan pada variabel array 1 dimensi A dengan jumlah N elemen berisi data-data dengan tipe data integer.

Flowchart
<cara 1>


Algoritma Sequential Search


Metode Binary Search
Pencarian biner hanya digunakan pada data yang sudah terurut. Proses pencarian binary search :
  1. Membaca array data
  2. Apabila array belum terurut maka diurutkan dahulu
  3. Menentukan data yang akan dicari
  4. Menentukan elemen tengah dari array
  5. Jika elemen tengah sama dengan data yang dicari maka pencarian selesai
  6. Jika nilai elemen tengah tidak sama dengan data yang dicari, maka
  • Jika nilai elemen tengah lebih besar daripada data yang dicari maka pencarian dilakukan pada setengah array pertama
  • Jika nilai elemen tengah lebih kecil daripada data yang dicari maka pencarian dilakukan pada setengah array berikutnya
Algoritma Binary Search


Sorting Array

Proses mengurutkan data yang berada dalam suatu tempat penyimpanan, dengan urutan tertentu yaitu urutan naik (ascending) dari nilai terkecil hingga terbesar atau urutan turun (descending) dari nilai terbesar hingga nilai terkecil.

Dilihat dari tempat penyimpanan data, sort dibedakan antara external sort bila datanya ada dalam media external atau external storage seperti harddisk dan internal sort bila datanya ada dalam internal storage atau memory computer. 

Tujuan Sorting
Mendapatkan kemudahan dalam pencarian anggota dari suatu himpunan, disamping dapat mempercepat mengetahui data terbesar dan data terkecil.

Metode Sorting
Proses yang terjadi pada pengurutan adalah :
  • Perbandingan data
  • Pertukaran data
metode sorting terdiri atas :
1. Bubble Sort
Bubble artinya gelembung dan gelembung selalu mengapung. Prinsip proses pengurutan dengan menggunakan metode bubble sort adalah menempatkan (mengapungkan) nilai terbesar (jika urut ascending) atau nilai terkecil (jika urut descending) pada elemen ujung paling kanan pada tahap per tahapnya. 

Sudah ada array satu dimensi sudah ada isinya, diilustrasikan sebagai berikut :

Akan diurutkan ascending sehingga dihasilkan urutan data seperti berikut:


Maka proses pengurutan tahap demi tahap dengan menggunakan metode bubble sort adalah sebagai berikut:


Dari array diatas yang terdiri dari 6 elemen dibutuhkan proses sebanyak 5 tahap maka untuk N elemen dibutuhkan (N-1) tahap proses pengurutan. Selanjutnya proses tahap per tahap akan diuraikan lebih rinci lagi.

Pada proses setiap tahap algoritma yang digunakan adalah proses banding (compare) dan tukar (swap). Bukan semata-mata meletakkan nilai terbesar ke ujung kanan, melainkan membandingkan nilai-nilai yang ada pada masing-masing elemen.
Flowchart

Rumus Bubble Sort

2. Selection Sort
Metode selection sort ini menggunakan proses pencarian (searching) kemudian tukar nilai yang dicari dengan nilai pada elemen awal.

Misalnya untuk pengurutan ascending, dicari nilai terkecil pertama kemudian tukar dengan elemen ke-0, selanjutnya dicari nilai terkecil kedua dan tukar dengan elemen ke-1 dan seterusnya. 
Flowchart

Rumus Selection Sort


3. Insertion Sort
Metode ini dilakukan dengan penyisipan nilai data untuk suatu array misal A, yang tidak terurut ke dalam suatu tempat kosong misal C dan memastikan nilai data C selalu dalam keadaan terurut.

Tahap 1 :
- Dimulai dari A[1]
- Simpan nilai A[1] pada sebuah variabel (misal x)
- Geser masing-masing satu langkah ke kanan semua nilai yang berada pada kiri A[1] satu per satu  jika nilai tersebut lebih besar dari x
- Insert (sisipkan) x di bekas tempat nilai yang terakhir digeser.
 
Tahap 2 :
- Simpan nilai A[2] pada variabel x.
- Geser masing-masing satu langkah ke kanan semua nilai yang berada pada kiri A[2] satu per satu  jika nilai tersebut lebih besar dari x
- Insert (sisipkan) x di bekas tempat nilai yang terakhir digeser.
 
Tahap berikutnya dan seterusnya hingga terakhir tahap ke N-1 (untuk array dengan N elemen).
Instruksi pergeseran ke kanan adalah A[i]=A[i - 1], sehingga nilai A[i] akan hilang (ditimpa oleh nilai A[i-1] oleh karena itu pada awal tahap A[i] disimpan pada sebuah variabel.
Flowchart

Rumus Insertion Sort


4. Quick Sort
  • Metode pembagian dan penguasaan
  • Array misal A yang tidak terurut dibagi menjadi 2 sub bagian yakni array kiri dan array kanan.
  • Proses pengurutan  kedua sub bagian array menggunakan rekursif dan kemudian menggabungkan kembali 2 sub bagian array yang terurut untuk menghasilkan keseluruhan array yang terurut
Rumus Quick Sort


5. Merge Sort
Pengurutan data yang jumlahnya besar, dimana tidak semuanya dapat dimuat dalam memori utama, sehingga harus disimpan dalam penyimpanan sekunder berupa berkas

Rumus Merge Sort


6. Heap Sort
Heap merupakan pohon biner tanpa pointer dan mirip seperti pohon biner yang hampir penuh. Semua simpul (daun) terletak pada dua cabang terbawah dan simpul daun pada cabang paling bawah terletak di sebelah kiri sejauh mungkin. Nilai dalam setiap simpul adalah lebih besar atau sama dengan anaknya

Rumus Heap Sort


7. Shell Sort
Metode pengurutan dengan cara penukaran sepasang elemen dengan jarak tertentu



Pengenalan Komputer

Sistem Komputer :
  1. Perangkat Keras (Hardware)
  2. Perangkat Lunak (Software)
  3. Pengguna (Brainware)
Paradigma Rekayasa Perangkat Lunak :
  1. Daur Hidup Klasik (The classic life cycle)
  2. Prototipe (Prototype)
  3. Model Spiral (The Spiral Model)
Paradigma RPL
Metode dalam menghasilkan suatu perangkat lunak atau dikenal dengan nama RPL
  1. Daur Hidup Klasik (The Classic  Life Cycle / Waterfall)
  2. Prototipe (Prototyping)
  3. Model Spiral (The Spiral Model)
Daur Hidup Klasik

  1. Pengumpulan Kebutuhan
  2. Analisa Kebutuhan
  3. Desain
  4. Pemrograman
  5. Pengujian
  6. Pemeliharaan
Prototipe

  1. Pengumpulan Kebutuhan
  2. Desain Cepat
  3. Bangun prototipe
  4. Evaluasi prototipe
  5. Perbaikan prototipe, jika prototipe belum selesai ulangilang kah b
  6. Produk Perangkat Lunak
Model Spiral

  1. Perencanaan oleh pengembang
  2. Analisa Resiko oleh pengembang dan pemesan
  3. Rekayasa Perangkat Lunak
  4. Evaluasi oleh pemesan, bila Rekayasa belum selesai ulangi langkah a.
Apa itu Struktur Data ?
Algoritma
deskripsi langkah-langkah penyelesaian masalah yang tersusun secara logis
  1. Ditulis dengan notasi khusus
  2. Notasi mudah dimengerti
  3. Notasi dapat diterjemahkan menjadi sintaks suatu bahasa pemrograman
Contoh Algoritma
  1. Mencari nilai maksimum
  2. Mengurutkan data
  3. Mencetak bilangan ganjil dari 1 – 19
  4. Menyimpan data mahasiswa baru
  5. Mencetak data absensi
  6. Mengirim email berdasarkan jadual
Contoh Algoritma Absensi
Is :Data Absensi terdiri dari 1 program studi
  1. Buka Data Absensi
  2. Tentukan Mata Kuliah
  3. Tentukan Kelas
  4. Tentukan Format Absensi (4 / 14 kolom)
  5. Tentukan banyak pencetakan
  6. Ambil data mhs ke-1, lalu cetak
  7. Ulangi langkah ke-6  sampai data habis
Struktur Data
model logika/matematik yang secara khusus mengorganisasi data 

PerbedaanTipe Data, Obyek Data, Struktur Data
  • Tipe data adalah jenis data yang mampu ditangani oleh suatu bahasa pemrograman pada komputer.
  • Tiap-tiap bahasa pemrograman memiliki tipe data yang memungkinkan :
1. Deklarasi terhadap variabel tipe data tersebut
2. Menyediakan kumpulan operasi yang mungkin terhadap variabel bertipe data tersebut
     -  Jenis obyek data yang mungkin
  • Obyek Data adalah kumpulan elemen yang mungkin untuk suatu tipe data tertentu. 
1. Mis : integer mengacu pada obyek data -32768 s/d 32767, byte 0 s/d 255, string adalah kumpulan karakter maks 255 huruf
  • Struktur Data adalah cara penyimpanan dan pengorganisasian data-data pada memori komputer maupun file secara efektif sehingga dapat digunakan secara efisien, termasuk operasi-operasi di dalamnya.
Aktivitas Struktur Data
  • Di dalam struktur data kita berhubungan dengan 2 aktivitas :
              -  Mendeskripsikan kumpulan obyek data yang sahsesuai dengan tipe data yang ada
              -  Menunjukkan mekanisme kerja operasi-operasinya
                         +  Contoh: integer (-32768 s/d 32767) dan jenis operasi yang diperbolehkan adalah +, -, *, /, mod, ceil, floor, <, >, != dsb.
  • Struktur data = obyek data  + [operasi manipulasi data]
Hubungan SD dan Algoritma
  1. Dengan pemilihan struktur data yang baik, maka problem yang kompleks dapat diselesaikan sehingga algoritma dapat digunakan secara efisien, operasi-operasi penting dapat dieksekusi dengan sumber daya yang lebih kecil, memori lebih kecil, dan waktu eksekusi yang lebih cepat.
  2. Tidak semua struktur data baik dan sesuai.  Contoh untuk problem data bank: peng update-an harus cepat, sedangkan penambahan/penghapusan data boleh lebih lambat.
Struktur Data
  • Struktur Data Statis– array/larik ,rekord, himpunan.
  • Struktur Data Dinamis- list/senarai, queue /antrian /giliran, tumpukan /stack /timbunan, pohon, graf. 
Contoh Struktur Data
List Berkait / Senarai
Struktur Data

  1. Traversal (Traversing) : mengunjungi setiap elemen SD
  2. Pencarian (Searching) : menemukan elemen/lokasi pada SD
  3. Penyisipan (Inserting) : menambah elemen baru pada SD
  4. Penghapusan (Deleting) : menghapus elemen dari SD
Mengapa Perlu SD
  • Mengenal bentuk organisasi penyimpanan data dan pengoperasiannya.
  • Menentukan kualitas informasi : akurat, tepat pada waktunya dan relevan. Informasi dapat dikatakan bernilai bila manfaatnya lebih efektif dibandingkan dengan biaya mendapatkannya.
  • Mengurangi duplikasi data (data redudancy)
  • Hubungan data dapat ditingkatkan (data relatability)
  • Mengurangi pemborosan tempat simpanan luar
Penarepan SD pada OS
Queue concept and handling

Usopp (ウソップ Usoppu?) adalah anggota kru dan penembak jitu dari kelompok Bajak Laut Topi Jerami. Ia dilahirkan di desa Syrup di East Blue. Ia dikenal jago berbohong dan sesuai arti namanya, "Uso" (うそ) yang berarti pembohong atau pembual. Ia adalah anggota kru ketiga yang bergabung dengan kelompok Bajak Laut Topi Jerami dan memiliki nilai bounty 30.000.000 berry atas nama aliasnya "Sogeking". Impiannya menjadi orang paling berani di lautan dan meskipun tidak disebutkan, ia ingin sekali bertemu dengan ayah kandungnya yaitu Yasopp, yang belum pernah ia jumpai saat memutuskan bergabung menjadi bajak laut.

 

                Usopp adalah remaja laki-laki yang tidak begitu tinggi, kurus dan berkulit gelap. Ia
memiliki rambut hitam keriting setengah panjang dan berhidung panjang yang menjadi ciri khasnya. Bentuk hidung panjangnya seperti mewarisi hidung ibunya sedangkan sisa wajah lainnya mirip dengan Yasopp ayahnya.

                  Ia biasanya mengenakan bandana warna hijau di kepala, sebuah kacamata khusus sniper yang dibeli di Loguetown (kadang-kadang ia mengenakan kacamata persegi panjang pada waktu tidak memiliki kacamata snipernya, seperti saat pertama kali bertemu kru topi jerami atau saat kacamata snipernya dicuri Mr. 2), gelang bergaris-garis biru putih di lengan kirinya, celana gantung coklat dengan kemeja putih di dalamnya (selama Cerita Skypiea kemejanya berwarna hijau) dan sepatu bot warna coklat. Ia juga selalu membawa sebuah tas kuning, tempat ia menyimpan semua peralatan senjatanya. Saat terpisah dari kru topi jerami di Hutan Gluttony, Usopp tumbuh menjadi sangat gemuk akibat terlalu rakus memakan makanan disana.




             Dua tahun setelah ia bertemu kembali dengan kru topi jerami lainnya, Usopp berhasil mengurangi tubuh gemuknya menjadi lebih berotot dan tumbuh menjadi sedikit lebih tinggi. Rambutnya juga menjadi lebih panjang. Ia kini memiliki sepasang kacamata baru berwarna coklat di lehernya (kacamata snipernya tidak ditunjukkan) dan menggunakan semacam pelindung telinga, serta mengenakan sebuah topi putih. Di dagunya tumbuh sedikit jenggot. Ia memakai celana gantung baru warna kuning gelap tanpa mengenakan baju yang memperlihatkan bagian dada berototnya serta sepasang sepatu bot. Tasnya juga diganti baru dengan yang berwarna merah. Selain itu, ia masih mengenakan gelang garis-garis biru putih yang sama di lengan kirinya.




                  Usopp adalah salah satu karakter yang paling sentimentil dalam kru topi jerami. Ia sangat penakut dan mudah menjadi cemas. Ia juga paling jago berbohong serta mempermainkan emosi orang lain. Saat sedang tertekan atau karena kehilangan emosinya, ia dapat menangis tersedu-sedu (seperti saat mengakui kenyataan kalau Going Merry tidak dapat diperbaiki lagi). Seperti Luffy dan Chopper, ia sangat periang dan suka bersenda gurau bersama mereka.


                Meski aslinya adalah seorang penakut, ia sering menutup-nutupinya agar terlihat terlihat lebih baik dimata rekan-rekannya. Ia juga yang pertama sering membuat suatu alasan yang dibuat-buat saat mereka berada ditempat baru yang menakutkan, seperti alasan ia tiba-tiba mendapat " penyakit tidak bisa pergi ke pulau ini". Ia juga pandai membual untuk membodohi Chopper yang percaya atau membuat gentar lawannya, seperti "mempunyai 8.000 pengikut" atau "juara tinju dari East Blue" dengan embel-embel "Kapteeeeeeen Usopp".


                 Setelah peristiwa kru topi jerami diserang Aokiji dan saat ia di rampok dan dipukuli Keluarga Franky hingga babak belur, didalam dirinya timbul rasa rendah diri yang mendalam. Ia khawatir kalau nantinya ia hanya akan menjadi beban bagi rekan-rekannya karena secara fisik ia tak sekuat mereka. Ditambah dengan ketidak relaannya berpisah dengan Going Merry, menyebabkan ia berseteru dengan Luffy dan memutuskan keluar dari kru topi jerami. Namun selama peristiwa di Enies Lobby seperti membuka matanya untuk menyadari kelebihan yang ia miliki sebagai seorang penembak jitu dan bergabung kembali dengan mereka.


                Usopp juga memiliki kebiasaan aneh berbicara dengan dirinya sendiri seperti saat di Thriller Bark. Selama bertarung dengan Perona, ia terlihat berdebat dengan dirinya sendiri sebagai sogeking tentang kesanggupannya untuk memenangkan pertarungan. Mungkin ini semacam cara mengatasi rasa ketakutannya.




               Setelah bertemu dengan raksasa Dorry dan Broggy, seperti memberinya inspirasi untuk menjadi prajurit yang berani dan penuh kebanggaan, hingga suatu saat nanti ia ingin pergi mengunjungi Elbaf, tempat para raksasa sebagai orang yang penuh keberanian. Saat di serang Perona dengan hantu negatif di Thriller Bark, ia tidak terpengaruh dengan serangan itu, dimana beberapa anggota kru topi jerami menjadi korban hingga terjatuh tanpa bisa bergerak. Usopp menyatakan ia tidak bisa menjadi lebih negatif lagi karena ia memang asalnya sudah negatif. Perona mengklaim bahwa ia satu-satunya orang di dunia yang kebal terhadap kekuatannya, bahkan Perona sendiri terjatuh menjadi lebih negatif lagi.


             Saat menerima kabar tentang Ace dan keterlibatan Luffy dalam perang, dalam dirinya timbul sifat keberanian untuk melarikan diri untuk membantu Luffy melalui masa-masa sulit. Dalam usahanya untuk pergi dari pulau dan bergabung kembali dengan Luffy, ia bahkan tidak ragu-ragu menghadapi seekor kumbang raksasa dan memiliki komitmen yang besar dalam mengendalikan nafsu makannya.


               Usopp memiliki trauma terhadap jamur karena ia pernah keracunan memakan jamur saat masih kecil.


                  Setelah timeskip, Usopp tampak lebih matang dan percaya diri. Ia tidak ragu-ragu saat menyerang kelompok Bajak Laut Topi Jerami Palsu demi membela Nami. Ia juga sangat membanggakan kemampuan barunya setelah berlatih keras selama dua tahun. Ia sambil bercanda mengatakan kalau ia bukan lagi trio lemah bersama Nami dan Chopper yang terus-terusan meminta bantuan kepada orang lain. Namun dalam beberapa kesempatan, kebiasaan lamanya belum hilang, seperti saat mendapat "penyakit tak bisa pergi ke pulau itu" saat mereka sampai di Punk Hazard.




            Usopp terinspirasi oleh Luffy, Zoro dan Nami saat memutuskan untuk pergi mengarungi lautan untuk menjadi "pejuang lautan nan pemberani". Ia dan Luffy memiliki keinginan yang sejalan untuk bertemu dengan Bajak Laut Rambut Merah selama perjalanan mereka nantinya, sebagai Luffy yang ingin bertemu dengan Shanks sekaligus Usopp yang dapat bertemu dengan ayahnya Yasopp. Usia mereka pun relatif sama, sehingga mereka berdua tumbuh menjadi kawan yang cocok. Ia sering menghabiskan waktunya bermain-main bersama Luffy dan Chopper diatas kapal. Chopper mudah percaya dengan bualan Usopp dan sangat menyukainya. Baik Luffy dan Chopper, keduanya sangat shock saat mendengar keputusan Usopp untuk keluar dari kru dan gembira ketika ia memohon untuk bergabung kembali.


            Usopp juga menjadi teman yang baik bagi Nami. Usopp dan Nami memiliki kedekatan karena mereka berdua sama-sama tidak sekuat seperti yang lainnya. Saat Cerita Alabasta, Nami mendekati Usopp dan meminta untuk membuatkan senjata baginya. Nami mengatakan kalau dia berbicara kepada Usopp karena ia lah satu-satunya orang yang dapat memahami perasaannya. Saat mereka bertemu kembali setelah timeskip, Nami memeluknya erat-erat tanpa merasa canggung.


             Usopp juga memiliki hubungan yang baik dengan Zoro dan Sanji walau mereka sering mempermainkannya karena ia sangat penakut. Usopp sering memanggil Zoro maupun Sanji dengan Istilah "Zoro-kun" ataupun "Sanji-kun" saat mengharapkan perlindungan mereka. Zoro menunjukkan sikap kepeduliannya seperti saat di Arlong Park, saat Nami berbohong kalau ia telah membunuh Usopp namun dapat dicegah oleh Sanji. Selama di Enies Lobby, Sanji turut membantu membuka matanya kalau ia memiliki kegunaannya tersendiri bagi kru.




         Pada awalnya, Usopp takut kepada Robin dan juga saat pertama kali kemunculan Brook. Namun ia mengubah pandangannya dari waktu ke waktu dan melihat mereka sebagai teman baik. Adapun Franky, awalnya ia menculik Usopp saat di Water 7. Kemudian diantara mereka timbul sikap saling memahami setelah mereka berbicara tentang kondisi Going Merry. Malah Franky yang kemudian menyadarkan Usopp dan bersedia membantunya bicara dengan Luffy untuk menerimanya kembali walau mereka baru saja bertemu saat itu. Usopp sangat mengagumi meriam buatan Franky dan memujinya. Kedekatan mereka sebagian besar karena kesamaan minat terhadap pertukangan dan senjata. Usopp juga cenderung bersama Franky saat membantunya merawat kapal.


              Sebuah lelucon yang diantara kru topi jerami mengenai seseorang yang memiliki ciri-ciri kepribadian seperti Usopp, mereka akan bersama-sama berpaling menatap Usopp dalam-dalam atau menyamakannya dengan ia, seperti saat kisah Norland si pembohong atau saat melihat pertama kali bertemu Kaku di Water 7.


Kaya

            Kaya adalah teman masa kecil Usopp. Mereka tumbuh bersama dan menjadi sangat dekat karena sama-sama kehilangan orang tua mereka. Kaya adalah gadis yang sering sakit-sakitan semenjak kematian kedua orang tuanya dan Usopp sering menghiburnya dengan menceritakan berbagai kebohongan. Meskipun sebenarnya tahu kalau Usopp hanya membual, tapi dia senang berlama-lama mendengarkan ceritanya.

             Kaya lah yang memberikan kapal pertama kru topi jerami Going Merry. Saat poster buronan "Sogeking" disebarkan untuk publik, Kaya mampu mengidentifikasikannya sebagai Usopp dengan hanya melihat hidungnya dan tampak bangga dengan prestasinya. Hal ini juga mengilhami dan menyemangati dia untuk terus melanjutkan pendidikan medisnya agar suatu saat nanti saat Usopp kembali ke desa mereka, dia dapat mengobati luka-lukanya.




           Semasa kecil, Usopp mendirikan kelompok Bajak Laut Usopp dengan teman-temannya yang lebih kecil; Ninjin,Tamanegi dan Piman. Kelompok ini tidak terlalu serius karena dalam kesehariannya, mereka hanya bermain-main dan berlagak seperti bajak laut sungguhan. Meski Usopp telah meninggalkan mereka dan bergabung dengan kru topi jerami, namun mereka tetap menganggapnya sebagai kapten. Saat poster buronan "sogeking" dikeluarkan, mereka tampak bangga dengan hal itu dan tetap berharap menunggu kepulangannya suatu hari nanti.


Oimo dan Kashi

          Usopp juga berteman baik dengan Oimo dan Kashi, dua raksasa yang telah ditipu pihak Angkatan Laut. Usopp (dengan samaran sogeking) berhasil menyadarkan mereka kalau mereka berdua selama ini telah ditipu oleh pihak Angkatan Laut karena ia mengenal betul para pemimpin mereka; Dorry dan Brogy, saat di Little Garden, bukannya ditahan marinir seperti yang diklaim mereka untuk memaksa mereka berdua bekerja bagi kepentingan Angkatan Laut. Setelah insiden di Enies Lobby, Usopp berjanji kepada mereka untuk mengunjungi Elbaf tempat asal para raksasa suatu hari nanti.



Heracles

            Saat terlempar di kepulauan Boin, Usopp bertemu Heracles dan banyak menerima bantuan darinya selama menghadapi kesulitan disana. Heracles turut membantunya agar ia tidak sampai dimakan oleh pulau tersebut, termasuk memotivasi Usopp untuk menurunkan berat badannya sekaligus mengajarinya berbagai keahlian yang diperlukan Usopp untuk menjadi penembak jitu yang sangat ahli. Saat Usopp kembali ke Sabaody, Heracles turut mengantarnya kesana dan melindunginya dari kejaran para marinir.



Kuro

             Usopp sangat marah kepada Kuro karena telah membuat hidup Kaya menderita. Kuro sering mengatai Usopp sebagai seekor serangga dan saat Usopp mengaku sebagai seorang bajak laut, ia mengolok-oloknya sebagai permainan anak-anak. Kuro juga telah berusaha menjauhkannya dari Kaya dengan mengadukannya sebagai seorang pembual yang tidak bisa dipercaya. Namun hal yang paling dibencinya adalah saat mengetahui kalau Kuro lah yang telah membunuh kedua orangtua Kaya, bahkan kemudian berencana membunuh Kaya untuk mendapatkan harta kekayaannya.



           Usopp menjadi buronan pihak Angkatan Laut dengan nama aliasnya "Sogeking". Meskipun identitas aslinya tidak terlalu dikenali marinir, namun sebagai seorang bajak laut mereka adalah musuh alaminya.




                  Saat di Enies Lobby, ia dengan samaran Sogeking telah berani membakar bendera simbol Pemerintah Dunia sekaligus bersama kru topi jerami lainnya mengobarkan perang terhadap Pemerintah Dunia. Ia bersama kru topi jerami lainnya saat ini mendapat perhatian khusus dari Pemerintahan Dunia atas beberapa tindakan mereka.


Yasopp

            Yasopp adalah ayah kandung Usopp. Yasopp meninggalkan ia dan ibunya saat ia masih bayi. Tidak diketahui seberapa besar Usopp mengenal ayahnya. Meski begitu, ia tetap bangga dengan status ayahnya yang seorang bajak laut. Yasopp juga tampaknya sangat peduli dengan anaknya walaupun tidak pernah melihatnya. Yasopp sering menyebut-nyebut anaknya seperti saat bercerita kepada Luffy. Salah satu harapan Usopp menjadi bajak laut dan mengarungi lautan agar dapat menjumpai ayahnya.



Banchina

            Banchina adalah ibu Usopp. Banchina telah meninggal saat ia masih kecil. Usopp sangat sayang kepada ibunya, sampai-sampai sering menciptakan kebohongan tentang kedatangan suatu kelompok bajak laut ke desa mereka untuk menggembirakan ibunya yang sakit-sakitan agar dapat pulih.



                  Menurut Oda dalam sebuah diskusi dengan Tanaka Mayumi (pengisi suara Luffy), tidak peduli siapapun yang nantinya bergabung dengan kru topi jerami, ia selalu ingin Usopp menjadi yang terlemah diantara mereka untuk menjaga keseimbangan cerita. Oda juga menyatakan bahwa ini karena Usopp adalah karakter dengan kekuatan fisik yang paling mendekati dengan kekuatan manusia biasa, sehingga penggambaran kekuatan karakter lainnya mudah untuk dibandingkan, meski kini kekuatan Usopp telah meningkat setelah timeskip.


              Karena tidak memiliki kekuatan fisik yang mumpuni, Usopp lebih menggunakan otak dan keahlian saat bertarung. Ia juga memiliki ketahanan tubuh yang lumayan tinggi. Ia pernah menyatakan kalau ia tidak pernah sakit selama hidupnya. Setiap dalam pertempuran besar, ia mampu bertahan meski menderita luka-luka yang cukup parah. Salah satu contoh saat wajahnya dipukul dengan tongkat 4 ton milik Mr. 4 dan dilanjutkan dengan berulang kali menghantam dinding beton akibat ulah Miss Merry Christmas disaat yang sama


            Keahlian utama Usopp dalam bertarung adalah sebagai penembak jitu, terutama menggunakan ketapel dengan berbagai macam peluru. Keahlian ini tampaknya diturunkan langsung dari ayahnya Yasopp yang terkenal sebagai penembak jitu dari kelompok Bajak Laut Rambut Merah. Keahliannya dalam menembak hampir tak tertandingi. Ia dapat mengenai Spandam dan beberapa marinir dengan ketapelnya dari Menara Kehakiman yang jauh, yang oleh para marinir dikatakan mustahil untuk dapat dilakukan karena kencangnya angin dan jauhnya jarak.


             Sebelum bergabungnya Franky, ia menjadi satu-satunya anggota kru yang terlihat mengurusi bidang mekanik seperti perbaikan kapal atau menggunakan meriam, meski hal itu dilakukan secara asal-asalan (seperti yang dinyatakan Franky kalau kemampuannya dalam menggunakan palu seperti amatiran). Selain itu, ia juga tampaknya memiliki beberapa pengetahuan tentang ilmu kimia dan sering bereksperimen untuk membuat berbagai senjata baru seperti "Kabuto" dan "Clima Tact". Setelah Franky bergabung, Usopp dengan senang hati membiarkan ia mengambil alih pengurusan kapal, bahkan setuju untuk ikut membantu. Sebagai gantinya, Franky sering menunjukkan karyanya dalam upaya memberikan Usopp ide untuk menciptakan alat-alat baru. Franky bahkan mengakui kalau Usopp memiliki bakat dalam menciptakan alat-alat. Setelah timeskip, inovasinya semakin bertambah dengan mampu menciptakan berbagai macam amunisi yang dinamakan "Pop Green".


Ketapel

              Sejak awal bergabung, Usopp memiliki sebuah ketapel kecil. Ketapel itu kemudian terus dimodifikasi seiring dengan perjalanan mereka. Ia memiliki berbagai macam amunisi yang tersimpan dalam tas yang selalu dibawanya. Amunisinya dapat berupa apa saja termasuk kelereng besi kecil, bahan peledak, bom asap, batu, bahkan ia pernah juga menggunakan telur seperti saat mengalihkan perhatian Richie, singa milik Mohji. Untuk meningkatkan daya penglihatannya, ia memakai sepasang kacamata khusus sniper.



Kabuto

         Selama di Enies Lobby, ia memperkenalkan senjata terbarunya "kabuto", sebuah ketapel yang dimodifikasi dengan lima cabang terhubung ke tongkat panjang. Kekuatannya diklaim menjadi lebih besar karena ia memodifikasinya dengan berbagai Dial pulau langit. Jangkauannya sangat jauh dan Usopp mampu menggunakannya secara akurat untuk menyerang target dari jarak yang mustahil dapat dilakukan orang biasa. Setelah timeskip, desain Kabuto nya dimodifikasi lagi menjadi lebih pendek dengan mempertahankan bentuk lima cabang dan salah satu cabang berubah menjadi warna hitam.



Pop Green

              Setelah timeskip, ia memperkaya variasi serangannya dengan menciptakan berbagai amunisi yang dinamakan Pop Green. Amunisi ini dibuat berdasarkan pengetahuan yang diperolehnya selama terdampar di kepulauan Boin. Saat menyelamatkan Nami di kepulauan Sabaody, ia menembakkan semacam tanaman karnivora yang dapat menggigit. Selain itu, saat mereka pergi ke Pulau Manusia Ikan, ia menyelamatkan Thousand Sunny dari reruntuhan batuan dengan menembakkan semacam tanaman merambat untuk menghambat bebatuan. Selama di Pulau Manusia Ikan, ia menggunakan pop green yang dapat menumbuhkan bunga bangkai dan juga saat menumbuhkan sekelompok tanaman bambu yang muncul tiba-tiba dari dalam tanah.



              Usopp dilahirkan di Desa Syrup di East Blue dengan ayahnya bernama Yasopp, seorang bajak laut yang bergabung dengan "Rambut Merah" Shanks dan ibunya bernama Banchina, penduduk lokal setempat. Saat ia masih bayi, Yasopp meninggalkan mereka dan pergi berlayar bersama Bajak Laut Rambut Merah. Tak sanggup menerima kepergian Yasopp, Banchina kemudian jatuh sakit dan terbaring lemah.


            Khawatir dengan keadaan ibunya, Usopp yang masih kecil mulai melakukan semacam trik kebohongan dengan berpura-pura kedatangan bajak laut ke desa mereka. Ia melakukan itu untuk menyemangati ibunya agar dapat sembuh. Namun sayang ibunya tak dapat bertahan dan meninggalkan ia untuk selama-lamanya.


                Setelah kematian ibunya, Usopp terus melakukan kebohongan semacam itu kepada penduduk desa. Ia melakukan hal itu hanya sebagai hiburan untuk mengisi kesehariannya. Penduduk desa sering terkecoh dengan ulahnya, dan beramai-ramai mengejar serta melemparkan berbagai benda walaupun tidak terlalu serius. Selain melakukan keisengan tersebut, Usopp berteman dengan Kaya, seorang gadis muda yang sedang sakit dan harus terbaring lemah ditempat tidur sepanjang hari. Ia sering mendatangi Kaya secara diam-diam untuk menghiburnya dengan berbagai macam cerita petualangan yang dikarangnya. Ia juga menyebut dirinya sebagai bajak laut dan bermain kelompok bajak laut bersama tiga bocah kecil; NinjinTamanegi dan Piman, sambil membentuk kelompok Bajak Laut Usopp dengan mengangkat dirinya sebagai kapten.




                Kru topi jerami mendarat di Desa Syrupp dengan maksud mencari donatur yang mau memberikan mereka kapal yang lebih besar. Usopp sangat gembira karena bajak laut sungguhan yang diharapkannya benar-benar datang dan bersama teman-temannya mencoba menakut-nakuti mereka agar segera pergi. Namun tipuan itu gagal, bahkan Usopp segera berteman dengan mereka karena Luffy mengenal ayahnya Yasopp dari kelompok Bajak Laut Rambut Merah. Luffy mengajaknya bergabung agar dapat menemui ayahnya. Diantar teman-teman Usopp, kru topi jerami kemudian pergi ke rumah Kaya untuk menyampaikan maksudnya.


              Di rumah Kaya, kru topi jerami bertemu Usopp kembali secara kebetulan. Namun mereka semua diusir oleh Kuro yang bertugas menjaga rumah tersebut. Kemudian terungkap bahwa Kuro sebenarnya adalah kapten Bajak Laut Kucing Hitam yang menyamar selama 3 tahun sebagai penjaga rumah dan berencana membunuh Kaya untuk mewarisi kekayaannya. Dalam menjalankan aksinya, Kuro kemudian memanggil anak buahnya untuk menyerang desa tersebut.


                  Mengetahui rencana jahat Kuro, Usopp berusaha memperingatkan penduduk desa. Namun tak ada satupun yang percaya kepadanya. Kru topi jerami memutuskan untuk membantu Usopp melawan Bajak Laut Kucing Hitam. Usopp dan kru topi jerami lalu menghadapi kedatangan kelompok Bajak Laut Kucing Hitam dan berhasil mengalahkan mereka semua.
Sebagai rasa terima kasih, Kaya dan pembantunya Merry dengan senang hati memberikan kru topi jerami kapal Going Merry untuk mereka berlayar. Akhirnya Usopp bersedia bergabung dan mereka lalu meninggalkan Desa Syrup untuk meneruskan perjalanan.

Pertarungan Usopp :
  • Usopp dan Nami vs. bajak laut kucing hitam
  • Usopp dan bajak laut usopp vs. Jango
  • Usopp vs. Chew
  • Usopp, Luffy dan Carue vs. Mr. 3, Miss Goldenweek, Mr. 5 dan Miss Valentine
  • Usopp dan Eyelashes vs. Mr. 2 Bon Kurei (tidak terlihat)
  • Usopp dan Chopper vs. Mr. 4 dan Miss Merry Christmas
  • Usopp, Luffy dan Sanji vs. Satori
  • Usopp dan Sanji vs. Enel
  • Usopp, Nami dan Sanji vs. Enel
  • Usopp vs. Keluarga Franky
  • Usopp vs. Monkey D. Luffy
  • Sogeking vs. Corgi
  • Sogeking, Sanji dan Franky vs. Lucci, Kaku, Kalifa dan Blueno
  • Sogeking dan Zoro vs. Kaku dan Jyabura
  • Sogeking vs. Jyabura
  • Sogeking vs. Spandam
  • Usopp vs. Kumashi
  • Usopp vs. Perona
  • Usopp vs. Gallant Hippo
  • Kru topi jerami dan Brook vs. zombie Oars dan Gecko Moriah
  • Kru topi jerami vs. Penunggang Ikan Terbang
  • Kru topi jerami vs. PX-4
  • Kru topi jerami dan Silvers Rayleigh vs. Kizaru, Sentomaru dan PX-1
  • Usopp dan Nami vs. kru topi jerami palsu
  • Usopp, Zoro, Nami dan Brook vs. penjaga istana Ryugu dan raja Neptune
  • Kru topi jerami dan Jinbe vs. bajak laut manusia ikan baru
  • Usopp vs. Daruma
  • Usopp, Luffy, Zoro, Robin dan Brook vs. Brownbeard dan kru
  • Usopp, Nami (dalam tubuh sanji) dan Brownbeard vs. Caesar Clown


Data Diri :
  • Namanya berasal dari kata "Uso", yang berarti pembohong (dalam bahasa jepang Uso = pembohong) dan kata "Isoppu", tokoh cerita sebuah dongeng yunani kuno ala jepang.
  • Lambang Bajak Laut Topi Jerami dibuat pertama kali oleh Usopp, sesaat setelah kemunculan kapal pertama mereka Going Merry.
  • Penampakan Usopp dapat dilihat pada poster buronan pertama Luffy dan Zoro. Pada poster Luffy, Ia terlihat jelas dibelakang Luffy. Sedangkan pada poster Zoro, siluet Usopp terlihat samar-samar bercampur asap di latar belakang sedang menirukan gaya Crocodile.
  • Menurut Mr. 2, Usopp memiliki hidung paling aneh di dunia.
  • Ironisnya, semua bualan yang pernah ia ceritakan pada Kaya menjadi kenyataan kemudian selama perjalanan mereka, seperti bertemu ikan emas raksasa (saat meninggalkan Little Garden) dan bertarung melawan tikus tanah besar (saat melawan Miss Merry Christmas di Alabasta).
  • Usopp mengklaim kalau ia tak pernah sakit selama hidupnya.
  • Ia adalah orang pertama yang memperkenalkan karet di Skypiea.
  • Hari kelahirannya 1 April, dikenal juga sebagai April Mop, hari yang diperingati orang-orang untuk membuat semacam lelucon kebohongan.
  • Ia adalah satu-satunya anggota Bajak Laut Topi Jerami yang penampilan aslinya tidak diketahui oleh Pemerintah Dunia. Ia mendapatkan poster buronan atas nama Sogeking dengan menggunakan topeng.
  • Makanan favoritnya adalah ikan pike dari pulau musim gugur.
  • Ia memiliki trauma memakan jamur, karena pernah keracunan jamur saat masih kecil.
  • Golongan darah Usopp adalah S, sama seperti Nico Robin.
  • Usopp mandi tiga hari sekali.





Ada Saatnya Seseorang Harus Berdiri Melawan
Yaitu Ketika Impian Sahabatnya Ditertawakan