How would I create a ribbon around a hat?
Alright!

I experimented quite a while for this. Cloth sim seemed to be a good alternative, especially this tutorial.

But eventually I found that modelling by hand the results are better, at least for the ribbon:



Start by selecting a portion of the hat:



Duplicate it Shift+D. Scale it along the normals Alt+S. Separate it P. Assign new material to it if you wish:



Add some edgeloops Ctrl+R. Deselect all A. In the vertex mode, go to 'Select' > 'Random'. Enter 15%. Deselect the top and bottom edgeloop, or the edges of the ribbon:



Slide the vertices all the way down GG. Select all A and in W select 'Remove doubles':



Add some horizontal edgeloops Ctrl+R:



Select all A and deselect the boundaries or edges of the ribbon:



Go to 'Mesh' > 'Transform' > 'Randomize'. I used these values:



Select all A, W > 'Smooth'

Then, select horizontal edgeloops in edge mode one by one and slide them GG in order to form tighter creases. Also scale them by their normal Alt+S in order to make nooks and crevices, or hills and valleys, or something like that:




Maybe add some more horizontal edgeloops Ctrl+R, maybe select all and smooth again A, W > 'Smooth'. Maybe select an edgeloop and add bevel Ctrl+B. This is the creative part, go nuts. Finally, add a Solidify modifier (and move it to be the topmost in the modifier stack) to give it some thickness:





That's it.

I hope this was helpful :)

.blend

In the .blend file there is also my simulation test, which doesn't look bad either (maybe it's even better for some situations), especially after you apply some of the methods mentioned here to the simulated mesh. Just play the timeline Alt+A to see the simulation in action. After that, it's handy to Apply the Cloth modifier and continue modelling from there: